diff --git a/disperser/dataapi/docs/v2/V2_docs.go b/disperser/dataapi/docs/v2/V2_docs.go index e5b5dee45..cd0ddc434 100644 --- a/disperser/dataapi/docs/v2/V2_docs.go +++ b/disperser/dataapi/docs/v2/V2_docs.go @@ -483,6 +483,58 @@ const docTemplateV2 = `{ "big.Int": { "type": "object" }, + "core.BlobHeader": { + "type": "object", + "properties": { + "accountID": { + "description": "AccountID is the account that is paying for the blob to be stored", + "type": "string" + }, + "commitment": { + "$ref": "#/definitions/encoding.G1Commitment" + }, + "length": { + "type": "integer" + }, + "length_commitment": { + "$ref": "#/definitions/encoding.G2Commitment" + }, + "length_proof": { + "$ref": "#/definitions/encoding.LengthProof" + }, + "quorumInfos": { + "description": "QuorumInfos contains the quorum specific parameters for the blob", + "type": "array", + "items": { + "$ref": "#/definitions/core.BlobQuorumInfo" + } + } + } + }, + "core.BlobQuorumInfo": { + "type": "object", + "properties": { + "adversaryThreshold": { + "description": "AdversaryThreshold is the maximum amount of stake that can be controlled by an adversary in the quorum as a percentage of the total stake in the quorum", + "type": "integer" + }, + "chunkLength": { + "description": "ChunkLength is the number of symbols in a chunk", + "type": "integer" + }, + "confirmationThreshold": { + "description": "ConfirmationThreshold is the amount of stake that must sign a message for it to be considered valid as a percentage of the total stake in the quorum", + "type": "integer" + }, + "quorumID": { + "type": "integer" + }, + "quorumRate": { + "description": "Rate Limit. This is a temporary measure until the node can derive rates on its own using rollup authentication. This is used\nfor restricting the rate at which retrievers are able to download data from the DA node to a multiple of the rate at which the\ndata was posted to the DA node.", + "type": "integer" + } + } + }, "core.G1Point": { "type": "object", "properties": { @@ -741,6 +793,23 @@ const docTemplateV2 = `{ } } }, + "github_com_Layr-Labs_eigenda_disperser_common_v2.BlobStatus": { + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ], + "x-enum-varnames": [ + "Queued", + "Encoded", + "Certified", + "Failed", + "InsufficientSignatures" + ] + }, "github_com_Layr-Labs_eigenda_disperser_dataapi_v2.SignedBatch": { "type": "object", "properties": { @@ -811,6 +880,64 @@ const docTemplateV2 = `{ } } }, + "v2.BlobFeedResponse": { + "type": "object", + "properties": { + "blobs": { + "type": "array", + "items": { + "$ref": "#/definitions/v2.BlobMetadata" + } + }, + "pagination_token": { + "type": "string" + } + } + }, + "v2.BlobMetadata": { + "type": "object", + "properties": { + "blobHeader": { + "$ref": "#/definitions/core.BlobHeader" + }, + "blobSize": { + "description": "BlobSize is the size of the blob in bytes", + "type": "integer" + }, + "blobStatus": { + "description": "BlobStatus indicates the current status of the blob", + "allOf": [ + { + "$ref": "#/definitions/github_com_Layr-Labs_eigenda_disperser_common_v2.BlobStatus" + } + ] + }, + "expiry": { + "description": "Expiry is Unix timestamp of the blob expiry in seconds from epoch", + "type": "integer" + }, + "fragmentSizeBytes": { + "description": "FragmentSizeBytes is the maximum fragment size used to store the chunk coefficients.", + "type": "integer" + }, + "numRetries": { + "description": "NumRetries is the number of times the blob has been retried", + "type": "integer" + }, + "requestedAt": { + "description": "RequestedAt is the Unix timestamp of when the blob was requested in seconds", + "type": "integer" + }, + "totalChunkSizeBytes": { + "description": "TotalChunkSizeBytes is the total size of the file containing all chunk coefficients for the blob.", + "type": "integer" + }, + "updatedAt": { + "description": "UpdatedAt is the Unix timestamp of when the blob was last updated in _nanoseconds_", + "type": "integer" + } + } + }, "v2.BlobResponse": { "type": "object", "properties": { diff --git a/disperser/dataapi/docs/v2/V2_swagger.json b/disperser/dataapi/docs/v2/V2_swagger.json index af154b811..9078308d1 100644 --- a/disperser/dataapi/docs/v2/V2_swagger.json +++ b/disperser/dataapi/docs/v2/V2_swagger.json @@ -480,6 +480,58 @@ "big.Int": { "type": "object" }, + "core.BlobHeader": { + "type": "object", + "properties": { + "accountID": { + "description": "AccountID is the account that is paying for the blob to be stored", + "type": "string" + }, + "commitment": { + "$ref": "#/definitions/encoding.G1Commitment" + }, + "length": { + "type": "integer" + }, + "length_commitment": { + "$ref": "#/definitions/encoding.G2Commitment" + }, + "length_proof": { + "$ref": "#/definitions/encoding.LengthProof" + }, + "quorumInfos": { + "description": "QuorumInfos contains the quorum specific parameters for the blob", + "type": "array", + "items": { + "$ref": "#/definitions/core.BlobQuorumInfo" + } + } + } + }, + "core.BlobQuorumInfo": { + "type": "object", + "properties": { + "adversaryThreshold": { + "description": "AdversaryThreshold is the maximum amount of stake that can be controlled by an adversary in the quorum as a percentage of the total stake in the quorum", + "type": "integer" + }, + "chunkLength": { + "description": "ChunkLength is the number of symbols in a chunk", + "type": "integer" + }, + "confirmationThreshold": { + "description": "ConfirmationThreshold is the amount of stake that must sign a message for it to be considered valid as a percentage of the total stake in the quorum", + "type": "integer" + }, + "quorumID": { + "type": "integer" + }, + "quorumRate": { + "description": "Rate Limit. This is a temporary measure until the node can derive rates on its own using rollup authentication. This is used\nfor restricting the rate at which retrievers are able to download data from the DA node to a multiple of the rate at which the\ndata was posted to the DA node.", + "type": "integer" + } + } + }, "core.G1Point": { "type": "object", "properties": { @@ -738,6 +790,23 @@ } } }, + "github_com_Layr-Labs_eigenda_disperser_common_v2.BlobStatus": { + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4 + ], + "x-enum-varnames": [ + "Queued", + "Encoded", + "Certified", + "Failed", + "InsufficientSignatures" + ] + }, "github_com_Layr-Labs_eigenda_disperser_dataapi_v2.SignedBatch": { "type": "object", "properties": { @@ -808,6 +877,64 @@ } } }, + "v2.BlobFeedResponse": { + "type": "object", + "properties": { + "blobs": { + "type": "array", + "items": { + "$ref": "#/definitions/v2.BlobMetadata" + } + }, + "pagination_token": { + "type": "string" + } + } + }, + "v2.BlobMetadata": { + "type": "object", + "properties": { + "blobHeader": { + "$ref": "#/definitions/core.BlobHeader" + }, + "blobSize": { + "description": "BlobSize is the size of the blob in bytes", + "type": "integer" + }, + "blobStatus": { + "description": "BlobStatus indicates the current status of the blob", + "allOf": [ + { + "$ref": "#/definitions/github_com_Layr-Labs_eigenda_disperser_common_v2.BlobStatus" + } + ] + }, + "expiry": { + "description": "Expiry is Unix timestamp of the blob expiry in seconds from epoch", + "type": "integer" + }, + "fragmentSizeBytes": { + "description": "FragmentSizeBytes is the maximum fragment size used to store the chunk coefficients.", + "type": "integer" + }, + "numRetries": { + "description": "NumRetries is the number of times the blob has been retried", + "type": "integer" + }, + "requestedAt": { + "description": "RequestedAt is the Unix timestamp of when the blob was requested in seconds", + "type": "integer" + }, + "totalChunkSizeBytes": { + "description": "TotalChunkSizeBytes is the total size of the file containing all chunk coefficients for the blob.", + "type": "integer" + }, + "updatedAt": { + "description": "UpdatedAt is the Unix timestamp of when the blob was last updated in _nanoseconds_", + "type": "integer" + } + } + }, "v2.BlobResponse": { "type": "object", "properties": { diff --git a/disperser/dataapi/docs/v2/V2_swagger.yaml b/disperser/dataapi/docs/v2/V2_swagger.yaml index 6a2b7c198..fd7bfc996 100644 --- a/disperser/dataapi/docs/v2/V2_swagger.yaml +++ b/disperser/dataapi/docs/v2/V2_swagger.yaml @@ -2,6 +2,49 @@ basePath: /api/v2 definitions: big.Int: type: object + core.BlobHeader: + properties: + accountID: + description: AccountID is the account that is paying for the blob to be stored + type: string + commitment: + $ref: '#/definitions/encoding.G1Commitment' + length: + type: integer + length_commitment: + $ref: '#/definitions/encoding.G2Commitment' + length_proof: + $ref: '#/definitions/encoding.LengthProof' + quorumInfos: + description: QuorumInfos contains the quorum specific parameters for the blob + items: + $ref: '#/definitions/core.BlobQuorumInfo' + type: array + type: object + core.BlobQuorumInfo: + properties: + adversaryThreshold: + description: AdversaryThreshold is the maximum amount of stake that can be + controlled by an adversary in the quorum as a percentage of the total stake + in the quorum + type: integer + chunkLength: + description: ChunkLength is the number of symbols in a chunk + type: integer + confirmationThreshold: + description: ConfirmationThreshold is the amount of stake that must sign a + message for it to be considered valid as a percentage of the total stake + in the quorum + type: integer + quorumID: + type: integer + quorumRate: + description: |- + Rate Limit. This is a temporary measure until the node can derive rates on its own using rollup authentication. This is used + for restricting the rate at which retrievers are able to download data from the DA node to a multiple of the rate at which the + data was posted to the DA node. + type: integer + type: object core.G1Point: properties: x: @@ -183,6 +226,20 @@ definitions: information (stakes, indexes, etc.) is taken from type: integer type: object + github_com_Layr-Labs_eigenda_disperser_common_v2.BlobStatus: + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + type: integer + x-enum-varnames: + - Queued + - Encoded + - Certified + - Failed + - InsufficientSignatures github_com_Layr-Labs_eigenda_disperser_dataapi_v2.SignedBatch: properties: attestation: @@ -228,6 +285,49 @@ definitions: blob_certificate: $ref: '#/definitions/github_com_Layr-Labs_eigenda_core_v2.BlobCertificate' type: object + v2.BlobFeedResponse: + properties: + blobs: + items: + $ref: '#/definitions/v2.BlobMetadata' + type: array + pagination_token: + type: string + type: object + v2.BlobMetadata: + properties: + blobHeader: + $ref: '#/definitions/core.BlobHeader' + blobSize: + description: BlobSize is the size of the blob in bytes + type: integer + blobStatus: + allOf: + - $ref: '#/definitions/github_com_Layr-Labs_eigenda_disperser_common_v2.BlobStatus' + description: BlobStatus indicates the current status of the blob + expiry: + description: Expiry is Unix timestamp of the blob expiry in seconds from epoch + type: integer + fragmentSizeBytes: + description: FragmentSizeBytes is the maximum fragment size used to store + the chunk coefficients. + type: integer + numRetries: + description: NumRetries is the number of times the blob has been retried + type: integer + requestedAt: + description: RequestedAt is the Unix timestamp of when the blob was requested + in seconds + type: integer + totalChunkSizeBytes: + description: TotalChunkSizeBytes is the total size of the file containing + all chunk coefficients for the blob. + type: integer + updatedAt: + description: UpdatedAt is the Unix timestamp of when the blob was last updated + in _nanoseconds_ + type: integer + type: object v2.BlobResponse: properties: blob_header: