OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay / packages / blind-protocol / wire-runtime-authority.js

1552 lines · javascript ref:
/* eslint-disable */
// Generated by scripts/generate-blind-protocol-draft.mjs. Do not edit.
function deepFreeze (value) {
  if (!value || typeof value !== 'object' || Object.isFrozen(value)) return value
  for (const child of Object.values(value)) deepFreeze(child)
  return Object.freeze(value)
}

export const PROTOCOL = deepFreeze({
  "family": "hiverelay-blind",
  "major": 1,
  "minor": 0,
  "mediaType": "application/vnd.hiverelay.blind-v1"
})
export const FRAME_KIND = deepFreeze({
  "REQUEST": 1,
  "RESPONSE": 2,
  "ERROR": 3,
  "STREAM": 4
})
export const FAMILY = deepFreeze({
  "DESCRIBE": 1,
  "CELL": 2,
  "INBOX": 3,
  "CORE": 4,
  "FORWARD": 5
})
export const FAMILY_ROUTES = deepFreeze({
  "1": "/api/blind/v1/describe",
  "2": "/api/blind/v1/cell",
  "3": "/api/blind/v1/inbox",
  "4": "/api/blind/v1/core",
  "5": "/api/blind/v1/forward"
})
export const OPERATION = deepFreeze({
  "DESCRIBE": {
    "GET": 1,
    "CHALLENGE": 2,
    "ADMISSION_PARAMETERS": 3
  },
  "CELL": {
    "PUT": 1,
    "GET": 2,
    "RENEW": 3,
    "DROP": 4,
    "PROVE": 5,
    "BATCH_GET": 6
  },
  "INBOX": {
    "CREATE": 1,
    "RENEW": 2,
    "CLOSE": 3,
    "APPEND": 4,
    "READ": 5,
    "WATCH": 6
  },
  "CORE": {
    "MIRROR": 1,
    "PROVE": 2,
    "OPEN_REPLICATION": 3
  },
  "FORWARD": {
    "OPEN": 1,
    "DATA": 2,
    "WINDOW": 3,
    "CLOSE": 4
  }
})
export const TRANSPORT_ID = deepFreeze({
  "HTTPS_DIRECT": 1,
  "DIRECT_PROTOMUX_NOISE": 2,
  "OHTTP_INGRESS": 3,
  "OHTTP_GATEWAY": 4,
  "SPLIT_PROTOMUX_NOISE": 5,
  "HTTP3_MASQUE": 6,
  "TOR_V3_ONION": 7,
  "WEBTRANSPORT_WEBSOCKET_TUNNEL": 8,
  "MIX_PACKET_INGRESS": 9
})
export const TRANSPORT_SUPPORT = deepFreeze({
  "DIRECT_HTTP": 1,
  "DIRECT_NATIVE": 2,
  "OHTTP": 4,
  "TOR_HTTP": 8,
  "TOR_NATIVE": 16,
  "MASQUE_NATIVE": 32
})
export const ENDPOINT_LIMITS = deepFreeze({
  "ROLE_BITS_MASK": 127,
  "PRIVACY_PROFILE_BITS_MASK": 255,
  "ENVELOPE_CLASS_BITS_MASK": 126,
  "WIRE_CLASS_BITS_MASK": 14
})
export const PUBLIC_PROFILE_LIMITS = deepFreeze({
  "CELL_SIZE_CLASS_BITS_MASK": 62,
  "LEASE_CLASS_BITS_MASK": 30,
  "ENABLED_OPERATION_BITS_MASK": 4194303,
  "TRANSPORT_BITS_MASK": 1022,
  "MAX_DESCRIPTOR_BYTES": 16384,
  "MAX_DHT_POINTER_BYTES": 1000,
  "MAX_RESPONSE_BYTES": 4194304,
  "MAX_BATCH_COUNT": 64,
  "MAX_ADMISSION_TOKEN_BYTES": 4096,
  "MAX_ADMISSION_RESOURCE_COST_ROWS": 512,
  "MAX_OHTTP_CONFIG_EPOCHS": 120
})
export const ADMISSION_CONFORMANCE_CLASS = deepFreeze({
  "OPEN": 1,
  "PRIVATE": 2
})
export const CELL_RECEIPT_RESULT = deepFreeze({
  "STORED": 1,
  "SERVED": 2,
  "RENEWED": 3,
  "DROPPED": 4
})
export const INBOX_MANAGE_OPERATION = deepFreeze({
  "RENEW": 1,
  "CLOSE": 2
})
export const INBOX_APPEND_AUTH_MODE = deepFreeze({
  "OPEN_CAPABILITY": 0,
  "SIGNATURE_REQUIRED": 1
})
export const INBOX_RECEIPT_RESULT = deepFreeze({
  "CREATED": 1,
  "RENEWED": 2,
  "CLOSED": 3
})
export const INBOX_APPEND_RESULT = deepFreeze({
  "STORED": 1
})
export const CORE_ACK_RESULT = deepFreeze({
  "MIRROR_ACCEPTED": 1,
  "RECENTLY_SERVED": 2
})
export const FORWARD_CLOSE_KIND = deepFreeze({
  "FIN": 1,
  "ABORT": 2
})
export const STORE_LIFECYCLE_STATE = deepFreeze({
  "ACTIVE": 1,
  "DRAINING": 2,
  "RETIRED": 3
})
export const HEALTH_CLOCK_STATE = deepFreeze({
  "READY": 1,
  "UNSAFE": 2,
  "VERIFYING": 3
})
export const HEALTH_INTEGRITY_STATE = deepFreeze({
  "VERIFIED": 1,
  "DEGRADED": 2,
  "FAILED": 3
})
export const HEALTH_REBALANCE_STATE = deepFreeze({
  "STABLE": 0,
  "COPYING": 1,
  "CATCHING_UP": 2,
  "FENCED": 3
})
export const STREAM_TRANSITION = deepFreeze({
  "UNARY": 0,
  "CORE_CHILD": 1,
  "FORWARD_OPEN": 2,
  "FORWARD_ACTIVE": 3
})
export const DOMAIN_PURPOSE = deepFreeze({
  "REQUEST_COMMITMENT": 1,
  "RESULT_SIGNATURE": 2,
  "AUXILIARY_SIGNATURE": 3
})
export const DOMAIN_RECIPE = deepFreeze({
  "OPERATION_DEFINED_COMMITMENT_PREIMAGE": 1,
  "ED25519_DOMAIN_LEN64_PAYLOAD": 2
})
export const REQUEST_COMMITMENT_DOMAIN_ID = deepFreeze({
  "CELL_PUT": 1,
  "CELL_GET": 2,
  "CELL_RENEW": 3,
  "CELL_DROP": 4,
  "CELL_PROVE": 5,
  "CELL_BATCH_GET": 6,
  "INBOX_CREATE": 7,
  "INBOX_RENEW": 8,
  "INBOX_CLOSE": 9,
  "INBOX_APPEND": 10,
  "INBOX_READ": 11,
  "INBOX_WATCH": 12,
  "CORE_MIRROR": 13,
  "CORE_SERVE": 14,
  "CORE_OPEN_REPLICATION": 15,
  "FORWARD_OPEN": 16
})
export const RESULT_SIGNATURE_DOMAIN_ID = deepFreeze({
  "DESCRIPTOR": 101,
  "HEALTH_RESULT": 102,
  "ADMISSION_PARAMETERS": 103,
  "CELL_RECEIPT": 104,
  "BATCH_GET_RESULT": 105,
  "INBOX_RECEIPT": 106,
  "INBOX_APPEND_ACK": 107,
  "INBOX_READ_RESULT": 108,
  "CORE_ACK": 109,
  "CORE_OPEN_RESULT": 110,
  "FORWARD_OPEN_RESULT": 111
})
export const AUXILIARY_SIGNATURE_DOMAIN_ID = deepFreeze({
  "OHTTP_KEY_CONFIG": 201,
  "IDENTITY_TRANSITION": 202,
  "DHT_POINTER": 203,
  "TRANSPORT_ROUTE": 204,
  "FORWARD_HOP_OPEN": 205,
  "FORWARD_HOP_ACCEPT": 206,
  "EXTERNAL_JOURNAL_TOPOLOGY": 207,
  "EXTERNAL_COMMIT_WITNESS": 208,
  "RESTORE_EVIDENCE_HEAD": 209,
  "BACKUP_MANIFEST": 210,
  "CLEAN_RESTORE_EVIDENCE": 211,
  "BACKUP_RETENTION_TRANSITION": 212,
  "FORWARD_ROUTE_SCOPE": 213
})
export const ERROR_PROFILE_ID = deepFreeze({
  "CANONICAL_V1": 1
})
export const ERROR_RETRY_AFTER_MODE = deepFreeze({
  "MUST_BE_ABSENT": 0,
  "MUST_BE_PRESENT": 1
})
export const DOMAIN_REGISTRY = deepFreeze([
  {
    "domainId": 1,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1cell-put"
  },
  {
    "domainId": 2,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1cell-get"
  },
  {
    "domainId": 3,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1cell-renew"
  },
  {
    "domainId": 4,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1cell-drop"
  },
  {
    "domainId": 5,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1cell-prove"
  },
  {
    "domainId": 6,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1cell-batch-get"
  },
  {
    "domainId": 7,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1inbox-create"
  },
  {
    "domainId": 8,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1inbox-renew"
  },
  {
    "domainId": 9,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1inbox-close"
  },
  {
    "domainId": 10,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1inbox-append"
  },
  {
    "domainId": 11,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1inbox-read"
  },
  {
    "domainId": 12,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1inbox-watch"
  },
  {
    "domainId": 13,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1core-mirror"
  },
  {
    "domainId": 14,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1core-serve"
  },
  {
    "domainId": 15,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.request.v1core-open-replication"
  },
  {
    "domainId": 16,
    "purpose": 1,
    "recipeId": 1,
    "exactAsciiBytes": "hiverelay.blind.forward-open.v1"
  },
  {
    "domainId": 101,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.descriptor.v1"
  },
  {
    "domainId": 102,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.health-result.v1"
  },
  {
    "domainId": 103,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.admission-parameters.v1"
  },
  {
    "domainId": 104,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.cell-receipt.v1"
  },
  {
    "domainId": 105,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.batch-get-result.v1"
  },
  {
    "domainId": 106,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.inbox-receipt.v1"
  },
  {
    "domainId": 107,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.inbox-append-ack.v1"
  },
  {
    "domainId": 108,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.inbox-read-result.v1"
  },
  {
    "domainId": 109,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.core-ack.v1"
  },
  {
    "domainId": 110,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.core-open-result.v1"
  },
  {
    "domainId": 111,
    "purpose": 2,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.forward-open-result.v1"
  },
  {
    "domainId": 201,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.ohttp-key-config.v1"
  },
  {
    "domainId": 202,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.identity-transition.v1"
  },
  {
    "domainId": 203,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.dht-pointer.v1"
  },
  {
    "domainId": 204,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.transport-route.v1"
  },
  {
    "domainId": 205,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.forward-hop-open.v1"
  },
  {
    "domainId": 206,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.forward-hop-accept.v1"
  },
  {
    "domainId": 207,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.external-journal-topology.v1"
  },
  {
    "domainId": 208,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.external-commit-witness.v1"
  },
  {
    "domainId": 209,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.restore-evidence-head.v1"
  },
  {
    "domainId": 210,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.backup-manifest.v1"
  },
  {
    "domainId": 211,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.clean-restore-evidence.v1"
  },
  {
    "domainId": 212,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.backup-retention-transition.v1"
  },
  {
    "domainId": 213,
    "purpose": 3,
    "recipeId": 2,
    "exactAsciiBytes": "hiverelay.blind.forward-route-scope.v1"
  }
])
export const ADMISSION_COST_RULES = deepFreeze([
  {
    "costClassRuleId": 1,
    "ruleKind": 1
  },
  {
    "costClassRuleId": 2,
    "ruleKind": 2
  },
  {
    "costClassRuleId": 3,
    "ruleKind": 3
  },
  {
    "costClassRuleId": 4,
    "ruleKind": 4
  },
  {
    "costClassRuleId": 5,
    "ruleKind": 5
  },
  {
    "costClassRuleId": 6,
    "ruleKind": 6
  },
  {
    "costClassRuleId": 7,
    "ruleKind": 7
  },
  {
    "costClassRuleId": 8,
    "ruleKind": 8
  },
  {
    "costClassRuleId": 9,
    "ruleKind": 9
  },
  {
    "costClassRuleId": 10,
    "ruleKind": 10
  },
  {
    "costClassRuleId": 11,
    "ruleKind": 11
  }
])
export const ERROR_PROFILE_ROWS = deepFreeze([
  {
    "errorProfileId": 1,
    "code": 1,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 2,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 3,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 4,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 5,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 6,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 7,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 8,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 9,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 1,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 10,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 11,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 12,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 13,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 14,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 15,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 16,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 1,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 17,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 1,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 18,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 1,
    "retryAfterMode": 1
  },
  {
    "errorProfileId": 1,
    "code": 19,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  },
  {
    "errorProfileId": 1,
    "code": 20,
    "directCorrelatedStatus": 200,
    "protectedInnerStatus": 200,
    "retryable": 0,
    "retryAfterMode": 0
  }
])
export const CELL_SIZE_CLASS = deepFreeze({
  "1": 4096,
  "2": 16384,
  "3": 65536,
  "4": 262144,
  "5": 1048576
})
export const INBOX_FRAME_CLASS = deepFreeze({
  "1": 4096,
  "2": 16384,
  "3": 65536
})
export const OUTER_CLASS = deepFreeze({
  "1": 4096,
  "2": 16384,
  "3": 65536,
  "4": 262144,
  "5": 1048576,
  "6": 8388608
})
export const STREAM_WIRE_CLASS = deepFreeze({
  "1": 4096,
  "2": 16384,
  "3": 65535
})
export const FORWARD_CIRCUIT_CLASS = deepFreeze({
  "1": {
    "grantedInitialWindow": 65536,
    "maxCircuitBytes": 16777216,
    "idleMillis": 30000,
    "lifetimeMillis": 600000
  },
  "2": {
    "grantedInitialWindow": 262144,
    "maxCircuitBytes": 67108864,
    "idleMillis": 60000,
    "lifetimeMillis": 1800000
  },
  "3": {
    "grantedInitialWindow": 1048576,
    "maxCircuitBytes": 268435456,
    "idleMillis": 120000,
    "lifetimeMillis": 3600000
  }
})
export const CORE_SESSION_CLASS = deepFreeze({
  "1": {
    "maxSessionBytes": 16777216,
    "idleMillis": 30000,
    "lifetimeMillis": 600000
  },
  "2": {
    "maxSessionBytes": 67108864,
    "idleMillis": 60000,
    "lifetimeMillis": 1800000
  },
  "3": {
    "maxSessionBytes": 268435456,
    "idleMillis": 120000,
    "lifetimeMillis": 3600000
  }
})
export const DISPATCH_LIMITS = deepFreeze({
  "PREFIX_BYTES": 4,
  "HEADER_BYTES": 41,
  "REQUEST_ID_BYTES": 16,
  "MAX_BODY_BYTES": 4194304,
  "MAX_FRAME_AFTER_PREFIX_BYTES": 4194368,
  "MAX_WIRE_BYTES": 4194372,
  "MAX_FORWARD_DATA_BYTES": 65535,
  "MAX_FORWARD_WINDOW_BYTES": 1048576
})
export const OPERATION_PROFILE_ROWS = deepFreeze([
  {
    "familyId": 1,
    "operationId": 1,
    "requestSchemaId": 16,
    "resultSchemaId": 39,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 101,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 1,
    "operationId": 2,
    "requestSchemaId": 31,
    "resultSchemaId": 32,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 102,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 1,
    "operationId": 3,
    "requestSchemaId": 9,
    "resultSchemaId": 2,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 103,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 1,
    "requestSchemaId": 68,
    "resultSchemaId": 36,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 1056768,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 1,
    "requestCommitmentDomainId": 1,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 2,
    "requestSchemaId": 54,
    "resultSchemaId": 53,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 1048832,
    "admissionMode": 1,
    "costClassRuleId": 2,
    "requestCommitmentDomainId": 2,
    "resultSignatureDomainId": 0,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 3,
    "requestSchemaId": 71,
    "resultSchemaId": 36,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 3,
    "requestCommitmentDomainId": 3,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 4,
    "requestSchemaId": 49,
    "resultSchemaId": 36,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 4,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 5,
    "requestSchemaId": 67,
    "resultSchemaId": 66,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 1049600,
    "admissionMode": 1,
    "costClassRuleId": 2,
    "requestCommitmentDomainId": 5,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 6,
    "requestSchemaId": 8,
    "resultSchemaId": 6,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 1,
    "costClassRuleId": 4,
    "requestCommitmentDomainId": 6,
    "resultSignatureDomainId": 105,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 1,
    "requestSchemaId": 57,
    "resultSchemaId": 62,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 5,
    "requestCommitmentDomainId": 7,
    "resultSignatureDomainId": 106,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 2,
    "requestSchemaId": 58,
    "resultSchemaId": 62,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 6,
    "requestCommitmentDomainId": 8,
    "resultSignatureDomainId": 106,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 3,
    "requestSchemaId": 58,
    "resultSchemaId": 62,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 9,
    "resultSignatureDomainId": 106,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 4,
    "requestSchemaId": 56,
    "resultSchemaId": 55,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 70656,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 7,
    "requestCommitmentDomainId": 10,
    "resultSignatureDomainId": 107,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 5,
    "requestSchemaId": 61,
    "resultSchemaId": 59,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 1,
    "costClassRuleId": 4,
    "requestCommitmentDomainId": 11,
    "resultSignatureDomainId": 108,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 6,
    "requestSchemaId": 63,
    "resultSchemaId": 59,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 2,
    "costClassRuleId": 8,
    "requestCommitmentDomainId": 12,
    "resultSignatureDomainId": 108,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 4,
    "operationId": 1,
    "requestSchemaId": 43,
    "resultSchemaId": 15,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 9,
    "requestCommitmentDomainId": 13,
    "resultSignatureDomainId": 109,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 4,
    "operationId": 2,
    "requestSchemaId": 46,
    "resultSchemaId": 47,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 1,
    "costClassRuleId": 4,
    "requestCommitmentDomainId": 14,
    "resultSignatureDomainId": 109,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 4,
    "operationId": 3,
    "requestSchemaId": 45,
    "resultSchemaId": 44,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 1,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 10,
    "requestCommitmentDomainId": 15,
    "resultSignatureDomainId": 110,
    "errorProfileId": 1,
    "transportSupportBits": 18
  },
  {
    "familyId": 5,
    "operationId": 1,
    "requestSchemaId": 27,
    "resultSchemaId": 26,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 2,
    "maxRequestBodyBytes": 131072,
    "maxResultBodyBytes": 131072,
    "admissionMode": 2,
    "costClassRuleId": 11,
    "requestCommitmentDomainId": 16,
    "resultSignatureDomainId": 111,
    "errorProfileId": 1,
    "transportSupportBits": 50
  },
  {
    "familyId": 5,
    "operationId": 2,
    "requestSchemaId": 23,
    "resultSchemaId": 0,
    "allowedRequestKindBits": 8,
    "allowedResultKindBits": 8,
    "streamTransition": 3,
    "maxRequestBodyBytes": 66000,
    "maxResultBodyBytes": 66000,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 0,
    "errorProfileId": 1,
    "transportSupportBits": 50
  },
  {
    "familyId": 5,
    "operationId": 3,
    "requestSchemaId": 30,
    "resultSchemaId": 0,
    "allowedRequestKindBits": 8,
    "allowedResultKindBits": 8,
    "streamTransition": 3,
    "maxRequestBodyBytes": 1024,
    "maxResultBodyBytes": 1024,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 0,
    "errorProfileId": 1,
    "transportSupportBits": 50
  },
  {
    "familyId": 5,
    "operationId": 4,
    "requestSchemaId": 22,
    "resultSchemaId": 0,
    "allowedRequestKindBits": 8,
    "allowedResultKindBits": 12,
    "streamTransition": 3,
    "maxRequestBodyBytes": 1024,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 0,
    "errorProfileId": 1,
    "transportSupportBits": 50
  }
])
export const ADVERTISED_OPERATION_PROFILE_ROWS = deepFreeze([
  {
    "familyId": 1,
    "operationId": 1,
    "requestSchemaId": 16,
    "resultSchemaId": 39,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 101,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 1,
    "operationId": 2,
    "requestSchemaId": 31,
    "resultSchemaId": 32,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 102,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 1,
    "operationId": 3,
    "requestSchemaId": 9,
    "resultSchemaId": 2,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 0,
    "resultSignatureDomainId": 103,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 1,
    "requestSchemaId": 68,
    "resultSchemaId": 36,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 1056768,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 1,
    "requestCommitmentDomainId": 1,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 2,
    "requestSchemaId": 54,
    "resultSchemaId": 53,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 1048832,
    "admissionMode": 1,
    "costClassRuleId": 2,
    "requestCommitmentDomainId": 2,
    "resultSignatureDomainId": 0,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 3,
    "requestSchemaId": 71,
    "resultSchemaId": 36,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 3,
    "requestCommitmentDomainId": 3,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 4,
    "requestSchemaId": 49,
    "resultSchemaId": 36,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 4,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 5,
    "requestSchemaId": 67,
    "resultSchemaId": 66,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 1049600,
    "admissionMode": 1,
    "costClassRuleId": 2,
    "requestCommitmentDomainId": 5,
    "resultSignatureDomainId": 104,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 2,
    "operationId": 6,
    "requestSchemaId": 8,
    "resultSchemaId": 6,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 1,
    "costClassRuleId": 4,
    "requestCommitmentDomainId": 6,
    "resultSignatureDomainId": 105,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 1,
    "requestSchemaId": 57,
    "resultSchemaId": 62,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 5,
    "requestCommitmentDomainId": 7,
    "resultSignatureDomainId": 106,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 2,
    "requestSchemaId": 58,
    "resultSchemaId": 62,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 6,
    "requestCommitmentDomainId": 8,
    "resultSignatureDomainId": 106,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 3,
    "requestSchemaId": 58,
    "resultSchemaId": 62,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 0,
    "costClassRuleId": 0,
    "requestCommitmentDomainId": 9,
    "resultSignatureDomainId": 106,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 4,
    "requestSchemaId": 56,
    "resultSchemaId": 55,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 70656,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 7,
    "requestCommitmentDomainId": 10,
    "resultSignatureDomainId": 107,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 5,
    "requestSchemaId": 61,
    "resultSchemaId": 59,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 1,
    "costClassRuleId": 4,
    "requestCommitmentDomainId": 11,
    "resultSignatureDomainId": 108,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 3,
    "operationId": 6,
    "requestSchemaId": 63,
    "resultSchemaId": 59,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 2,
    "costClassRuleId": 8,
    "requestCommitmentDomainId": 12,
    "resultSignatureDomainId": 108,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 4,
    "operationId": 1,
    "requestSchemaId": 43,
    "resultSchemaId": 15,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 16384,
    "admissionMode": 2,
    "costClassRuleId": 9,
    "requestCommitmentDomainId": 13,
    "resultSignatureDomainId": 109,
    "errorProfileId": 1,
    "transportSupportBits": 31
  },
  {
    "familyId": 4,
    "operationId": 2,
    "requestSchemaId": 46,
    "resultSchemaId": 47,
    "allowedRequestKindBits": 1,
    "allowedResultKindBits": 6,
    "streamTransition": 0,
    "maxRequestBodyBytes": 16384,
    "maxResultBodyBytes": 4194304,
    "admissionMode": 1,
    "costClassRuleId": 4,
    "requestCommitmentDomainId": 14,
    "resultSignatureDomainId": 109,
    "errorProfileId": 1,
    "transportSupportBits": 31
  }
])
export const RESERVED_OPERATION_PAIRS = deepFreeze([
  {
    "familyId": 4,
    "operationId": 3
  },
  {
    "familyId": 5,
    "operationId": 1
  },
  {
    "familyId": 5,
    "operationId": 2
  },
  {
    "familyId": 5,
    "operationId": 3
  },
  {
    "familyId": 5,
    "operationId": 4
  }
])
export const ADVERTISED_OPERATION_BITS = 131071
export const RESERVED_OPERATION_BITS = 4063232
export const CLOCK_UNSAFE_OPERATION_BITS = 38440

export function domainRegistryEntry (domainId) {
  return DOMAIN_REGISTRY.find(entry => entry.domainId === domainId) || null
}

export function admissionCostRule (costClassRuleId) {
  return ADMISSION_COST_RULES.find(entry => entry.costClassRuleId === costClassRuleId) || null
}

export function errorProfileEntry (errorProfileId, code) {
  return ERROR_PROFILE_ROWS.find(entry =>
    entry.errorProfileId === errorProfileId && entry.code === code) || null
}

export function operationOrdinal (familyId, operationId) {
  return OPERATION_PROFILE_ROWS.findIndex(row =>
    row.familyId === familyId && row.operationId === operationId)
}

export function operationBit (familyId, operationId) {
  const ordinal = operationOrdinal(familyId, operationId)
  return ordinal < 0 ? 0 : 1 << ordinal
}

export function operationProfile (familyId, operationId) {
  return OPERATION_PROFILE_ROWS.find(row =>
    row.familyId === familyId && row.operationId === operationId) || null
}

export function isKnownOperation (familyId, operationId) {
  return operationProfile(familyId, operationId) !== null
}

export function isReservedOperation (familyId, operationId) {
  return RESERVED_OPERATION_PAIRS.some(row => row.familyId === familyId && row.operationId === operationId)
}

export function isAdvertisedOperation (familyId, operationId) {
  return isKnownOperation(familyId, operationId) && !isReservedOperation(familyId, operationId)
}

export function assertAdvertisedOperation (familyId, operationId) {
  const profile = operationProfile(familyId, operationId)
  if (profile && !isReservedOperation(familyId, operationId)) return profile
  const error = new Error('operation is unknown or reserved by the active release profile')
  error.code = 'UNSUPPORTED_OPERATION'
  throw error
}

export function familyName (familyId) {
  return Object.entries(FAMILY).find(([, id]) => id === familyId)?.[0] || null
}

export function routeForFamily (familyId) {
  return FAMILY_ROUTES[familyId] || null
}

export const WIRE_RUNTIME_AUTHORITY = deepFreeze({
  "profile": "wire-authority-v1",
  "protocolFamily": "hiverelay-blind",
  "protocolMajor": 1,
  "protocolMinor": 0,
  "specArtifact": "docs/protocol/HIVERELAY-BLIND-WIRE-V1.md",
  "abiArtifact": "packages/blind-protocol/hiverelay-blind-abi-v1.cenc",
  "vectorManifestArtifact": "packages/blind-protocol/vector-manifest-v1.cenc",
  "specHash": "c9ddd235c3963461174e3de13c25a4c995b53ff320be822d8304f870766b6592",
  "abiHash": "199ba15d94d4d112cfac520a67055ce15ec870f0f6f7bd9adaaf47d552334567",
  "vectorSetHash": "fa54012cd0d7e4e620878c67e61f435ecb31ddec05a6283917987cc84279ee05",
  "wireSchemaCount": 73,
  "operationCount": 22,
  "advertisedOperationCount": 17,
  "reservedOperationCount": 5,
  "advertisedOperationBits": 131071,
  "reservedOperationBits": 4063232,
  "errorCount": 20,
  "domainCount": 40,
  "vectorCount": 237
})
export const WIRE_RUNTIME_AUTHORITY_STATUS = deepFreeze({
  profile: WIRE_RUNTIME_AUTHORITY.profile,
  specHash: WIRE_RUNTIME_AUTHORITY.specHash,
  abiHash: WIRE_RUNTIME_AUTHORITY.abiHash,
  vectorSetHash: WIRE_RUNTIME_AUTHORITY.vectorSetHash,
  wireSchemaCount: WIRE_RUNTIME_AUTHORITY.wireSchemaCount,
  operationCount: WIRE_RUNTIME_AUTHORITY.operationCount,
  advertisedOperationCount: WIRE_RUNTIME_AUTHORITY.advertisedOperationCount,
  reservedOperationCount: WIRE_RUNTIME_AUTHORITY.reservedOperationCount,
  advertisedOperationBits: WIRE_RUNTIME_AUTHORITY.advertisedOperationBits,
  reservedOperationBits: WIRE_RUNTIME_AUTHORITY.reservedOperationBits,
  errorCount: WIRE_RUNTIME_AUTHORITY.errorCount,
  domainCount: WIRE_RUNTIME_AUTHORITY.domainCount,
  vectorCount: WIRE_RUNTIME_AUTHORITY.vectorCount,
  releaseBlockers: [],
  releaseReady: true
})

export function assertWireAuthorityReady () {
  if (WIRE_RUNTIME_AUTHORITY_STATUS.releaseReady &&
      WIRE_RUNTIME_AUTHORITY_STATUS.releaseBlockers.length === 0) {
    return WIRE_RUNTIME_AUTHORITY_STATUS
  }
  const error = new Error('blind public WIRE authority is incomplete')
  error.code = 'BLIND_WIRE_AUTHORITY_INCOMPLETE'
  error.releaseBlockers = [...WIRE_RUNTIME_AUTHORITY_STATUS.releaseBlockers]
  throw error
}

export const assertReleaseReady = assertWireAuthorityReady