From 05475e7d3b4be33d8ae2149d4f7ea5f50f4656ed Mon Sep 17 00:00:00 2001 From: Shane O'Brien Date: Mon, 22 Apr 2024 15:30:15 -0400 Subject: [PATCH] Gen orchestration side --- Makefile | 2 +- docs/openapi/orchestration.swagger.json | 1552 +++++++++++++++ .../coinbase/staking/orchestration/v1/doc.go | 177 ++ .../orchestration/v1/staking_client.go | 1207 ++++++++++++ .../staking/orchestration/v1/action.pb.go | 302 +++ .../staking/orchestration/v1/action_aip.go | 106 ++ .../staking/orchestration/v1/api.pb.go | 356 ++++ .../staking/orchestration/v1/api.pb.gw.go | 1031 ++++++++++ .../staking/orchestration/v1/api_grpc.pb.go | 423 +++++ .../staking/orchestration/v1/common.pb.go | 169 ++ .../staking/orchestration/v1/ethereum.pb.go | 296 +++ .../orchestration/v1/ethereum_kiln.pb.go | 760 ++++++++ .../staking/orchestration/v1/network.pb.go | 302 +++ .../staking/orchestration/v1/network_aip.go | 78 + .../staking/orchestration/v1/protocol.pb.go | 283 +++ .../staking/orchestration/v1/protocol_aip.go | 54 + .../staking/orchestration/v1/solana.pb.go | 1038 ++++++++++ .../orchestration/v1/staking_context.pb.go | 396 ++++ .../orchestration/v1/staking_target.pb.go | 573 ++++++ .../orchestration/v1/staking_target_aip.go | 198 ++ .../staking/orchestration/v1/workflow.pb.go | 1667 +++++++++++++++++ .../staking/orchestration/v1/workflow_aip.go | 63 + 22 files changed, 11032 insertions(+), 1 deletion(-) create mode 100644 docs/openapi/orchestration.swagger.json create mode 100644 gen/client/coinbase/staking/orchestration/v1/doc.go create mode 100644 gen/client/coinbase/staking/orchestration/v1/staking_client.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/action.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/action_aip.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/api.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/api.pb.gw.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/api_grpc.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/common.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/ethereum.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/ethereum_kiln.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/network.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/network_aip.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/protocol.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/protocol_aip.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/solana.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/staking_context.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/staking_target.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/staking_target_aip.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/workflow.pb.go create mode 100644 gen/go/coinbase/staking/orchestration/v1/workflow_aip.go diff --git a/Makefile b/Makefile index 6ae7d19..806f4ff 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ validation_deps: .PHONY: buf_gen buf_gen: - # @ buf generate --template protos/buf.gen.orchestration.yaml buf.build/cdp/rewards --path coinbase/staking/orchestration/v1 + @ buf generate --template protos/buf.gen.orchestration.yaml buf.build/cdp/orchestration --path coinbase/staking/orchestration/v1 @ buf generate --template protos/buf.gen.rewards.yaml buf.build/cdp/rewards --path coinbase/staking/rewards/v1 # We don't need internal snippets and test files generated by gapic plugin. diff --git a/docs/openapi/orchestration.swagger.json b/docs/openapi/orchestration.swagger.json new file mode 100644 index 0000000..4c65091 --- /dev/null +++ b/docs/openapi/orchestration.swagger.json @@ -0,0 +1,1552 @@ +{ + "swagger": "2.0", + "info": { + "title": "Orchestration Service", + "description": "Service that can power non-custodial staking experiences for your users.", + "version": "v1" + }, + "tags": [ + { + "name": "Protocol", + "description": "Protocols details" + }, + { + "name": "Network", + "description": "Networks details" + }, + { + "name": "Action", + "description": "Actions details" + }, + { + "name": "StakingTarget", + "description": "Staking targets details" + }, + { + "name": "StakingContext", + "description": "Staking context details" + }, + { + "name": "Workflow", + "description": "Workflow management details" + }, + { + "name": "StakingService" + } + ], + "host": "api.developer.coinbase.com", + "basePath": "/staking", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/protocols": { + "get": { + "summary": "List supported protocols", + "description": "List supported protocols", + "operationId": "listProtocols", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1ListProtocolsResponse" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "Protocol" + ] + } + }, + "/v1/viewStakingContext:view": { + "get": { + "summary": "Returns point-in-time context of staking data for an address", + "description": "Returns point-in-time context of staking data for an address", + "operationId": "ViewStakingContext", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1ViewStakingContextResponse" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "address", + "description": "The address to fetch staking context for.", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "network", + "description": "The network to fetch staking context for.", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "ethereumKilnStakingContextParameters.integratorContractAddress", + "description": "Integrator contract address.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "StakingContext" + ] + } + }, + "/v1/{name}": { + "get": { + "summary": "Get workflow", + "operationId": "getWorkflow", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1Workflow" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name", + "description": "The resource name of the workflow.\nFormat: projects/{project}/workflows/{workflow}", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/workflows/[^/]+" + } + ], + "tags": [ + "Workflow" + ] + } + }, + "/v1/{name}/step": { + "post": { + "summary": "Perform the next step in a workflow", + "description": "Perform the next step in a workflow", + "operationId": "updateWorkflow", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1Workflow" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "name", + "description": "The resource name of the workflow.\nFormat: projects/{project}/workflows/{workflow}", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+/workflows/[^/]+" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/StakingServicePerformWorkflowStepBody" + } + } + ], + "tags": [ + "Workflow" + ] + } + }, + "/v1/{parent}/actions": { + "get": { + "summary": "List supported actions", + "description": "List supported actions", + "operationId": "listActions", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1ListActionsResponse" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The resource name of the parent that owns\nthe collection of actions.\nFormat: protocols/{protocol}/networks/{network}", + "in": "path", + "required": true, + "type": "string", + "pattern": "protocols/[^/]+/networks/[^/]+" + } + ], + "tags": [ + "Action" + ] + } + }, + "/v1/{parent}/networks": { + "get": { + "summary": "List supported networks", + "description": "List supported networks", + "operationId": "listNetworks", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1ListNetworksResponse" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The resource name of the parent that owns\nthe collection of networks.\nFormat: protocols/{protocol}", + "in": "path", + "required": true, + "type": "string", + "pattern": "protocols/[^/]+" + } + ], + "tags": [ + "Network" + ] + } + }, + "/v1/{parent}/stakingTargets": { + "get": { + "summary": "List supported staking targets", + "description": "List supported staking targets", + "operationId": "listStakingTargets", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1ListStakingTargetsResponse" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The resource name of the parent that owns\nthe collection of staking targets.\nFormat: protocols/{protocol}/networks/{network}", + "in": "path", + "required": true, + "type": "string", + "pattern": "protocols/[^/]+/networks/[^/]+" + }, + { + "name": "pageSize", + "description": "The maximum number of staking targets to return. The service may\nreturn fewer than this value.\n\nIf unspecified, 100 staking targets will be returned.\nThe maximum value is 1000; values over 1000 will be floored to 1000.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pageToken", + "description": "A page token as part of the response of a previous call.\nProvide this to retrieve the next page.\n\nWhen paginating, all other parameters must match the previous\nrequest to list resources.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "StakingTarget" + ] + } + }, + "/v1/{parent}/workflows": { + "get": { + "summary": "List supported workflows", + "operationId": "listWorkflows", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1ListWorkflowsResponse" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The resource name of the parent that owns\nthe collection of networks.\nFormat: projects/{project}", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + }, + { + "name": "filter", + "description": "[AIP-160](https://google.aip.dev/160) filter\nSupported fields:\n- string action: \"stake\", \"unstake\"\n- string protocol: \"ethereum_kiln\"\n- string network: \"holesky\", \"mainnet\"", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "pageSize", + "description": "The maximum number of workflows to return. The service may\nreturn fewer than this value.\n\nIf unspecified, 100 workflows will be returned.\nThe maximum value is 1000; values over 1000 will be floored to 1000.", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pageToken", + "description": "A page token as part of the response of a previous call.\nProvide this to retrieve the next page.\n\nWhen paginating, all other parameters must match the previous\nrequest to list resources.", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Workflow" + ] + }, + "post": { + "summary": "Create workflow", + "operationId": "createWorkflow", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1Workflow" + } + }, + "400": { + "description": "The request attempted has invalid parameters", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "401": { + "description": "Returned if authentication information is invalid", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "403": { + "description": "Returned when a user does not have permission to the resource.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "404": { + "description": "Returned when a resource is not found.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "429": { + "description": "Returned when a resource limit has been reached.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "500": { + "description": "Returned when an internal server error happens.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "parent", + "description": "The resource name of the parent that owns\nthe workflow.\nFormat: projects/{project}", + "in": "path", + "required": true, + "type": "string", + "pattern": "projects/[^/]+" + }, + { + "name": "workflow", + "description": "The workflow to create.", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1Workflow", + "required": [ + "workflow" + ] + } + } + ], + "tags": [ + "Workflow" + ] + } + } + }, + "definitions": { + "StakeAccountBalanceState": { + "type": "string", + "enum": [ + "BALANCE_STATE_UNSPECIFIED", + "BALANCE_STATE_INACTIVE", + "BALANCE_STATE_ACTIVATING", + "BALANCE_STATE_ACTIVE", + "BALANCE_STATE_DEACTIVATING" + ], + "default": "BALANCE_STATE_UNSPECIFIED", + "description": "Represents the different states a stake account balance can have.\nUsed to check to see if stake is actively earning rewards or ready to be withdrawn.\n\n - BALANCE_STATE_UNSPECIFIED: The balance is not known.\n - BALANCE_STATE_INACTIVE: The balance is not actively staking.\n - BALANCE_STATE_ACTIVATING: The balance is in a warm up period and will activate in the next epoch.\n - BALANCE_STATE_ACTIVE: The balance is actively staking and earning rewards.\n - BALANCE_STATE_DEACTIVATING: The balance is in a cool down period and will be deactivated in the next epoch." + }, + "StakingServicePerformWorkflowStepBody": { + "type": "object", + "properties": { + "step": { + "type": "integer", + "format": "int32", + "description": "The index of the step to be performed." + }, + "data": { + "type": "string", + "description": "Transaction metadata. This is either the signed transaction or transaction hash depending on the workflow's broadcast method." + } + }, + "description": "The request message for PerformWorkflowStep.", + "required": [ + "step", + "data" + ] + }, + "WaitStepOutputWaitUnit": { + "type": "string", + "enum": [ + "WAIT_UNIT_UNSPECIFIED", + "WAIT_UNIT_SECONDS", + "WAIT_UNIT_BLOCKS", + "WAIT_UNIT_EPOCHS", + "WAIT_UNIT_CHECKPOINTS" + ], + "default": "WAIT_UNIT_UNSPECIFIED", + "description": "The unit of wait time.\n\n - WAIT_UNIT_UNSPECIFIED: Unspecified wait time.\n - WAIT_UNIT_SECONDS: Wait time measured in seconds.\n - WAIT_UNIT_BLOCKS: Wait time measured in blocks.\n - WAIT_UNIT_EPOCHS: Wait time measured in epochs.\n - WAIT_UNIT_CHECKPOINTS: Wait time measured in checkpoints." + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1Action": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The resource name of the Action.\nFormat: protocols/{protocolName}/networks/{networkName}/actions/{actionName}\nEx: protocols/ethereum_kiln/networks/holesky/validators/stake" + } + }, + "description": "An Action resource represents an action you may take on a network (e.g. stake, unstake)." + }, + "v1Amount": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The total value of the token." + }, + "currency": { + "type": "string", + "description": "The currency of the token" + } + }, + "description": "The amount of a token you wish to perform an action\nwith." + }, + "v1Contract": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The resource name of the Contract Address.\nFormat: protocols/{protocolName}/networks/{networkName}/stakingTargets/{contractName}\nEx: protocols/ethereum_kiln/networks/holesky/stakingTargets/0xA55416de5DE61A0AC1aa8970a280E04388B1dE4b" + }, + "address": { + "type": "string", + "description": "The contract address you may submit actions to." + } + }, + "description": "A Contract resource, which represents an active contract\nfor the given protocol network which you can submit an action\nto." + }, + "v1EthereumKilnClaimStakeParameters": { + "type": "object", + "properties": { + "stakerAddress": { + "type": "string", + "description": "The address you wish to claim stake for." + }, + "integratorContractAddress": { + "type": "string", + "title": "The address of the integrator contract" + } + }, + "description": "The parameters required for the claim stake action on Ethereum Kiln.", + "title": "EthereumKiln: Claim Stake Parameters", + "required": [ + "stakerAddress", + "integratorContractAddress" + ] + }, + "v1EthereumKilnStakeParameters": { + "type": "object", + "properties": { + "stakerAddress": { + "type": "string", + "description": "The address you wish to stake from." + }, + "integratorContractAddress": { + "type": "string", + "description": "The address of the integrator contract." + }, + "amount": { + "$ref": "#/definitions/v1Amount", + "description": "The amount of Ethereum to stake in wei." + } + }, + "description": "The parameters required for the stake action on Ethereum Kiln.", + "title": "EthereumKiln: Stake Parameters", + "required": [ + "stakerAddress", + "integratorContractAddress", + "amount" + ] + }, + "v1EthereumKilnStakingContextDetails": { + "type": "object", + "properties": { + "ethereumBalance": { + "$ref": "#/definitions/v1Amount", + "description": "The Ethereum balance of the address.\nThis can be used to gate the stake action to make sure the requested stake amount\nis less than ethereum_balance." + }, + "integratorShareBalance": { + "$ref": "#/definitions/v1Amount", + "description": "The number of integrator shares owned by the address." + }, + "integratorShareUnderlyingBalance": { + "$ref": "#/definitions/v1Amount", + "title": "The total Ethereum you can exchange for your integrator shares.\nThis can be used to gate the unstake action to make sure the requested unstake amount\nis less than integrator_share_underlying_balance" + }, + "totalExitableEth": { + "$ref": "#/definitions/v1Amount", + "description": "The total amount of Ethereum you can redeem for all non-claimed vPool shares.\nThis along with the condition total_shares_pending_exit == fulfillable_share_count\ncan be used to gate the claim_stake action." + }, + "totalSharesPendingExit": { + "$ref": "#/definitions/v1Amount", + "description": "The number of vPool shares are eligible to receive now or at a later point in time." + }, + "fulfillableShareCount": { + "$ref": "#/definitions/v1Amount", + "description": "The number of vPool shares you are able to claim now." + } + }, + "description": "The protocol specific details for an Ethereum Kiln staking context.", + "title": "EthereumKiln: Staking context details" + }, + "v1EthereumKilnStakingContextParameters": { + "type": "object", + "properties": { + "integratorContractAddress": { + "type": "string", + "description": "Integrator contract address." + } + }, + "description": "The protocol specific parameters required for fetching a staking context.", + "title": "EthereumKiln: Staking Context Parameters" + }, + "v1EthereumKilnStakingParameters": { + "type": "object", + "properties": { + "stakeParameters": { + "$ref": "#/definitions/v1EthereumKilnStakeParameters", + "description": "The parameters for stake action on Ethereum Kiln." + }, + "unstakeParameters": { + "$ref": "#/definitions/v1EthereumKilnUnstakeParameters", + "description": "The parameters for unstake action on Ethereum Kiln." + }, + "claimStakeParameters": { + "$ref": "#/definitions/v1EthereumKilnClaimStakeParameters", + "description": "The parameters for claim stake action on Ethereum Kiln." + } + }, + "description": "The parameters needed for staking on Ethereum via Kiln.", + "title": "EthereumKiln: Staking Parameters" + }, + "v1EthereumKilnUnstakeParameters": { + "type": "object", + "properties": { + "stakerAddress": { + "type": "string", + "description": "The address you wish to unstake from." + }, + "integratorContractAddress": { + "type": "string", + "description": "The address of the integrator contract." + }, + "amount": { + "$ref": "#/definitions/v1Amount", + "description": "The amount of Ethereum to unstake in wei." + } + }, + "description": "The parameters required for the unstake action on Ethereum Kiln.", + "title": "EthereumKiln: Unstake Parameters", + "required": [ + "stakerAddress", + "integratorContractAddress", + "amount" + ] + }, + "v1EthereumNativeStakeParameters": { + "type": "object", + "properties": { + "withdrawalAddress": { + "type": "string", + "title": "Ethereum address used to withdrawal funds" + }, + "feeRecipient": { + "type": "string", + "title": "Ethereum address used to accumulate fees" + }, + "amount": { + "$ref": "#/definitions/v1Amount", + "title": "Amount of ETH to stake in increments of 32" + } + }, + "title": "Ethereum: Native Stake Parameters", + "required": [ + "withdrawalAddress", + "feeRecipient", + "amount" + ] + }, + "v1EthereumStakingParameters": { + "type": "object", + "properties": { + "nativeStakeParameters": { + "$ref": "#/definitions/v1EthereumNativeStakeParameters", + "title": "Native staking parameters" + } + }, + "title": "Ethereum: Staking Parameters" + }, + "v1ListActionsResponse": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Action" + }, + "description": "The list of actions." + } + }, + "description": "The response message for ListActions." + }, + "v1ListNetworksResponse": { + "type": "object", + "properties": { + "networks": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Network" + }, + "description": "The list of networks." + } + }, + "description": "The response message for ListNetworks." + }, + "v1ListProtocolsResponse": { + "type": "object", + "properties": { + "protocols": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Protocol" + }, + "description": "The list of protocols." + } + }, + "description": "The response message for ListProtocols." + }, + "v1ListStakingTargetsResponse": { + "type": "object", + "properties": { + "stakingTargets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1StakingTarget" + }, + "description": "The list of staking targets." + }, + "nextPageToken": { + "type": "string", + "description": "A token which can be provided as `page_token` to retrieve the next page.\nIf this field is omitted, there are no additional pages." + } + }, + "description": "The response message for ListStakingTargets." + }, + "v1ListWorkflowsResponse": { + "type": "object", + "properties": { + "workflows": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Workflow" + }, + "description": "The list of workflows." + }, + "nextPageToken": { + "type": "string", + "description": "A token which can be provided as `page_token` to retrieve the next page.\nIf this field is omitted, there are no additional pages." + } + }, + "description": "The response message for ListWorkflows." + }, + "v1Network": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The resource name of the Network.\nFormat: protocols/{protocolName}/networks/{networkName}\nEx: protocols/ethereum_kiln/networks/holesky" + } + }, + "description": "A Network resource represents a blockchain network e.g. mainnet, testnet, etc." + }, + "v1PriorityFee": { + "type": "object", + "properties": { + "computeUnitLimit": { + "type": "string", + "format": "int64", + "description": "The maximum number of compute units a transaction is allowed to consume." + }, + "unitPrice": { + "type": "string", + "format": "int64", + "description": "The price to pay per compute unit." + } + }, + "description": "A prioritization fee that can be added to a Solana transaction." + }, + "v1Protocol": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The resource name of the Protocol.\nFormat: protocols/{protocolName}\nEx: protocols/ethereum_kiln" + } + }, + "description": "A Protocol resource (e.g. ethereum_kiln, solana etc.)." + }, + "v1ProvisionInfraStepOutput": { + "type": "object", + "properties": { + "state": { + "$ref": "#/definitions/v1ProvisionInfraStepOutputState", + "description": "The state of the provision infra step.", + "readOnly": true + } + }, + "description": "The details for an infrastructure provision request." + }, + "v1ProvisionInfraStepOutputState": { + "type": "string", + "enum": [ + "STATE_UNSPECIFIED", + "STATE_IN_PROGRESS", + "STATE_COMPLETED", + "STATE_FAILED" + ], + "default": "STATE_UNSPECIFIED", + "description": "State defines an enumeration of states for provisioning infra.\n\n - STATE_UNSPECIFIED: Unspecified step state.\n - STATE_IN_PROGRESS: Provision step is in-progress.\n - STATE_COMPLETED: Provision step completed.\n - STATE_FAILED: Provision step failed." + }, + "v1SolanaClaimStakeParameters": { + "type": "object", + "properties": { + "walletAddress": { + "type": "string", + "description": "The address which is the signing authority to claim stake." + }, + "stakeAccountAddress": { + "type": "string", + "description": "The address of the stake account to claim stake from." + }, + "priorityFee": { + "$ref": "#/definitions/v1PriorityFee", + "description": "The option to set a priority fee for the transaction." + } + }, + "description": "The parameters required to perform a claim stake operation on Solana.", + "title": "Solana: Claim Stake Parameters" + }, + "v1SolanaStakeParameters": { + "type": "object", + "properties": { + "walletAddress": { + "type": "string", + "description": "The address where the funds are coming from to stake." + }, + "validatorAddress": { + "type": "string", + "description": "The address of the validator." + }, + "amount": { + "$ref": "#/definitions/v1Amount", + "title": "The amount of Solana to stake in lamports. (1 lamport = 0.000000001 SOL)" + }, + "priorityFee": { + "$ref": "#/definitions/v1PriorityFee", + "description": "The option to set a priority fee for the transaction." + } + }, + "description": "The parameters required to perform a stake operation on Solana.", + "title": "Solana: Stake Parameters" + }, + "v1SolanaStakingContextDetails": { + "type": "object", + "properties": { + "balance": { + "$ref": "#/definitions/v1Amount", + "description": "The total balance of the main wallet address (system account).\nUsed to check the balance for any future staking or transaction to send." + }, + "currentEpoch": { + "type": "string", + "format": "int64", + "description": "The current epoch that the Solana blockchain is in.\nUsed as a frame of reference for future stake activations and deactivations." + }, + "epochCompletionPercentage": { + "type": "string", + "description": "How much of the epoch has passed as a percentage.\nUsed to inform how much time is left before a stake is activated or deactivated." + }, + "stakeAccounts": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1StakeAccount" + }, + "description": "The list of staking accounts that are linked to the main wallet address (system account).\nUsed to check for statuses and balances of all stake accounts related to the main wallet address that\nthey're linked to." + } + }, + "description": "The protocol specific details for a Solana staking context.", + "title": "Solana: Staking Context Details" + }, + "v1SolanaStakingContextParameters": { + "type": "object", + "description": "The protocol specific parameters required for fetching a staking context.", + "title": "Solana: Staking Context Parameters" + }, + "v1SolanaStakingParameters": { + "type": "object", + "properties": { + "stakeParameters": { + "$ref": "#/definitions/v1SolanaStakeParameters", + "description": "The parameters for stake action on Solana." + }, + "unstakeParameters": { + "$ref": "#/definitions/v1SolanaUnstakeParameters", + "description": "The parameters for unstake action on Solana." + }, + "claimStakeParameters": { + "$ref": "#/definitions/v1SolanaClaimStakeParameters", + "description": "The parameters for claim stake action on Solana." + } + }, + "description": "The parameters needed for staking on Solana.", + "title": "Solana: Staking Parameters" + }, + "v1SolanaUnstakeParameters": { + "type": "object", + "properties": { + "walletAddress": { + "type": "string", + "description": "The address which is the signing authority to unstake." + }, + "stakeAccountAddress": { + "type": "string", + "description": "The address of the stake account to unstake from." + }, + "amount": { + "$ref": "#/definitions/v1Amount", + "title": "The amount of Solana to unstake in lamports. (1 lamport = 0.000000001 SOL)" + }, + "priorityFee": { + "$ref": "#/definitions/v1PriorityFee", + "description": "The option to set a priority fee for the transaction." + } + }, + "description": "The parameters required to perform a unstake operation on Solana.", + "title": "Solana: Unstake Parameters" + }, + "v1StakeAccount": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The address of the stake account.\nUsed to hold the staked funds transferred over from the main wallet." + }, + "bondedStake": { + "$ref": "#/definitions/v1Amount", + "description": "The bonded balance in lamports on the stake account (rent is not included in bonded amount).\nUsed to check the amount that is currently staked." + }, + "rentReserve": { + "$ref": "#/definitions/v1Amount", + "description": "The rent amount for the stake account in lamports.\nUsed to highlight the amount used as the rent to maintain the address on the Solana blockchain." + }, + "balance": { + "$ref": "#/definitions/v1Amount", + "description": "The total balance on the address in lamports.\nUsed to check the total balance for the stake account." + }, + "balanceState": { + "$ref": "#/definitions/StakeAccountBalanceState", + "description": "The balance state of the stake account.\nUsed to show what state the currently staked funds are in.", + "readOnly": true + }, + "validator": { + "type": "string", + "description": "The validator (vote account) that the stake account is assigned to stake to.\nUsed to show where the staked funds are staked to." + } + }, + "description": "The balance information for a stake account." + }, + "v1StakingTarget": { + "type": "object", + "properties": { + "validator": { + "$ref": "#/definitions/v1Validator", + "description": "A validator to stake to." + }, + "contract": { + "$ref": "#/definitions/v1Contract", + "description": "A contract to send a staking action to." + } + }, + "description": "A Staking Target represents a destination that you perform an action on related to staking." + }, + "v1TxStepOutput": { + "type": "object", + "properties": { + "unsignedTx": { + "type": "string", + "description": "The unsigned transaction which was signed in order to be broadcasted.", + "readOnly": true + }, + "signedTx": { + "type": "string", + "description": "The signed transaction which was asked to be broadcasted.", + "readOnly": true + }, + "txHash": { + "type": "string", + "description": "The hash of the broadcasted transaction.", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/v1TxStepOutputState", + "description": "The state of the transaction step.", + "readOnly": true + }, + "errorMessage": { + "type": "string", + "description": "The error message if the transaction step failed.", + "readOnly": true + } + }, + "description": "The details of a transaction being constructed and broadcasted to the network." + }, + "v1TxStepOutputState": { + "type": "string", + "enum": [ + "STATE_UNSPECIFIED", + "STATE_NOT_CONSTRUCTED", + "STATE_CONSTRUCTED", + "STATE_PENDING_EXT_BROADCAST", + "STATE_SIGNED", + "STATE_BROADCASTING", + "STATE_CONFIRMING", + "STATE_CONFIRMED", + "STATE_FINALIZED", + "STATE_FAILED", + "STATE_SUCCESS" + ], + "default": "STATE_UNSPECIFIED", + "description": "State defines an enumeration of states for a staking transaction.\n\n - STATE_UNSPECIFIED: Unspecified transaction state, this is for backwards compatibility.\n - STATE_NOT_CONSTRUCTED: Tx has not yet been constructed in the backend.\n - STATE_CONSTRUCTED: Tx construction is over in the backend.\n - STATE_PENDING_EXT_BROADCAST: Tx is waiting to be externally broadcasted by the customer.\n - STATE_SIGNED: Tx has been signed and returned to the backend.\n - STATE_BROADCASTING: Tx is being broadcasted to the network.\n - STATE_CONFIRMING: Tx is waiting for confirmation.\n - STATE_CONFIRMED: Tx has been confirmed to be included in a block.\n - STATE_FINALIZED: Tx has been finalized.\n - STATE_FAILED: Tx construction or broadcasting failed.\n - STATE_SUCCESS: Tx has been successfully executed." + }, + "v1Validator": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The resource name of the Validator.\nFormat: protocols/{protocolName}/networks/{networkName}/stakingTargets/{validatorName}\nEx: protocols/solana/networks/testnet/stakingTargets/GkqYQysEGmuL6V2AJoNnWZUz2ZBGWhzQXsJiXm2CLKAN" + }, + "address": { + "type": "string", + "description": "The public address of the validator." + }, + "commissionRate": { + "type": "number", + "format": "float", + "title": "The rate of commission for the validator" + } + }, + "description": "A Validator resource represents an active validator for the given protocol network." + }, + "v1ViewStakingContextResponse": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The address you are getting a staking context for." + }, + "ethereumKilnStakingContextDetails": { + "$ref": "#/definitions/v1EthereumKilnStakingContextDetails", + "description": "EthereumKiln staking context details." + }, + "solanaStakingContextDetails": { + "$ref": "#/definitions/v1SolanaStakingContextDetails", + "description": "Solana staking context details." + } + }, + "description": "The response message for the ViewStakingContext request.", + "required": [ + "address", + "ethereumKilnStakingContextDetails", + "solanaStakingContextDetails" + ] + }, + "v1WaitStepOutput": { + "type": "object", + "properties": { + "start": { + "type": "string", + "format": "int64", + "description": "The beginning of wait period.", + "readOnly": true + }, + "current": { + "type": "string", + "format": "int64", + "description": "The current wait progress.", + "readOnly": true + }, + "target": { + "type": "string", + "format": "int64", + "description": "The target wait end point.", + "readOnly": true + }, + "unit": { + "$ref": "#/definitions/WaitStepOutputWaitUnit", + "description": "The wait unit (like checkpoint, block, epoch etc).", + "readOnly": true + }, + "state": { + "$ref": "#/definitions/v1WaitStepOutputState", + "description": "The state of the wait step.", + "readOnly": true + } + }, + "description": "The output details of a step where we wait for some kind of on-chain activity to finish like reaching a certain checkpoint, epoch or block." + }, + "v1WaitStepOutputState": { + "type": "string", + "enum": [ + "STATE_UNSPECIFIED", + "STATE_NOT_STARTED", + "STATE_IN_PROGRESS", + "STATE_COMPLETED" + ], + "default": "STATE_UNSPECIFIED", + "description": "WaitStepState defines an enumeration of states for a wait step.\n\n - STATE_UNSPECIFIED: Unspecified wait step state.\n - STATE_NOT_STARTED: Wait step has not started.\n - STATE_IN_PROGRESS: Wait step is in-progress.\n - STATE_COMPLETED: Wait step completed." + }, + "v1Workflow": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The resource name of the workflow.\nFormat: projects/{projectUUID}/workflows/{workflowUUID}\nEx: projects/ 123e4567-e89b-12d3-a456-426614174000/workflows/123e4567-e89b-12d3-a456-426614174000", + "readOnly": true + }, + "action": { + "type": "string", + "title": "The resource name of the action being\nperformed.\nFormat: protocols/{protocol}/networks/{network}/actions/{action}" + }, + "solanaStakingParameters": { + "$ref": "#/definitions/v1SolanaStakingParameters", + "description": "Solana staking parameters." + }, + "ethereumKilnStakingParameters": { + "$ref": "#/definitions/v1EthereumKilnStakingParameters", + "description": "EthereumKiln staking parameters." + }, + "ethereumStakingParameters": { + "$ref": "#/definitions/v1EthereumStakingParameters", + "description": "Ethereum staking parameters." + }, + "state": { + "$ref": "#/definitions/v1WorkflowState", + "description": "The current state of the workflow.", + "readOnly": true + }, + "currentStepId": { + "type": "integer", + "format": "int32", + "description": "The index of the current step.", + "readOnly": true + }, + "steps": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1WorkflowStep" + }, + "description": "The list of steps for this workflow.", + "readOnly": true + }, + "createTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp the workflow was created.", + "readOnly": true + }, + "updateTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp the workflow was last updated.", + "readOnly": true + }, + "completeTime": { + "type": "string", + "format": "date-time", + "description": "The timestamp the workflow completed.", + "readOnly": true + } + }, + "description": "A Workflow resource.", + "required": [ + "action", + "solanaStakingParameters", + "ethereumKilnStakingParameters", + "ethereumStakingParameters" + ] + }, + "v1WorkflowState": { + "type": "string", + "enum": [ + "STATE_UNSPECIFIED", + "STATE_IN_PROGRESS", + "STATE_WAITING_FOR_EXT_BROADCAST", + "STATE_COMPLETED", + "STATE_FAILED" + ], + "default": "STATE_UNSPECIFIED", + "description": "Example flows:\n A workflow leading to a successful completion.\n IN_PROGRESS -\u003e WAITING_FOR_EXT_BROADCAST -\u003e IN_PROGRESS -\u003e COMPLETED\n A workflow leading to a failure.\n IN_PROGRESS -\u003e WAITING_FOR_EXT_BROADCAST -\u003e IN_PROGRESS -\u003e FAILED\n\n - STATE_UNSPECIFIED: Unspecified workflow state, this is for backwards compatibility.\n - STATE_IN_PROGRESS: In Progress represents a workflow that is currently in progress.\n - STATE_WAITING_FOR_EXT_BROADCAST: Waiting for external broadcast represents the workflow is waiting for the customer to broadcast a tx and return its corresponding tx hash.\n - STATE_COMPLETED: Completed represents the workflow has completed.\n - STATE_FAILED: Failed represents the workflow has failed.", + "title": "The state of a workflow" + }, + "v1WorkflowStep": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The human readable name of the step.", + "readOnly": true + }, + "txStepOutput": { + "$ref": "#/definitions/v1TxStepOutput", + "description": "The tx step output (e.g. transaction metadata such as unsigned tx, signed tx etc).", + "readOnly": true + }, + "waitStepOutput": { + "$ref": "#/definitions/v1WaitStepOutput", + "description": "The waiting details for any kind like how many checkpoints away for unbonding etc.", + "readOnly": true + }, + "provisionInfraStepOutput": { + "$ref": "#/definitions/v1ProvisionInfraStepOutput", + "description": "The details for provisioned infrastructure.", + "readOnly": true + } + }, + "description": "The information for a step in the workflow.", + "title": "The information for a step in the workflow" + } + } +} diff --git a/gen/client/coinbase/staking/orchestration/v1/doc.go b/gen/client/coinbase/staking/orchestration/v1/doc.go new file mode 100644 index 0000000..82cde6d --- /dev/null +++ b/gen/client/coinbase/staking/orchestration/v1/doc.go @@ -0,0 +1,177 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// +// General documentation +// +// For information about setting deadlines, reusing contexts, and more +// please visit https://pkg.go.dev/cloud.google.com/go. +// +// Example usage +// +// To get started with this package, create a client. +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := v1.NewStakingClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// Using the Client +// +// The following is an example of making an API call with the newly created client. +// +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := v1.NewStakingClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// req := &stakingpb.ListProtocolsRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/github.com/coinbase/staking-client-library-go/gen/go/coinbase/staking/orchestration/v1#ListProtocolsRequest. +// } +// resp, err := c.ListProtocols(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// Use of Context +// +// The ctx passed to NewStakingClient is used for authentication requests and +// for creating the underlying connection, but is not used for subsequent calls. +// Individual methods on the client use the ctx given to them. +// +// To close the open connection, use the Close() method. +package v1 // import "github.com/coinbase/staking-client-library-go/gen/client/coinbase/staking/orchestration/v1" + +import ( + "context" + "fmt" + "net/http" + "runtime" + "strings" + "unicode" + + "google.golang.org/api/option" + "google.golang.org/grpc/metadata" +) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} + +func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { + out, _ := metadata.FromOutgoingContext(ctx) + out = out.Copy() + for _, md := range mds { + for k, v := range md { + out[k] = append(out[k], v...) + } + } + return metadata.NewOutgoingContext(ctx, out) +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "", + } +} + +// versionGo returns the Go runtime version. The returned string +// has no whitespace, suitable for reporting in header. +func versionGo() string { + const develPrefix = "devel +" + + s := runtime.Version() + if strings.HasPrefix(s, develPrefix) { + s = s[len(develPrefix):] + if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 { + s = s[:p] + } + return s + } + + notSemverRune := func(r rune) bool { + return !strings.ContainsRune("0123456789.", r) + } + + if strings.HasPrefix(s, "go1") { + s = s[2:] + var prerelease string + if p := strings.IndexFunc(s, notSemverRune); p >= 0 { + s, prerelease = s[:p], s[p:] + } + if strings.HasSuffix(s, ".") { + s += "0" + } else if strings.Count(s, ".") < 2 { + s += ".0" + } + if prerelease != "" { + s += "-" + prerelease + } + return s + } + return "UNKNOWN" +} + +// maybeUnknownEnum wraps the given proto-JSON parsing error if it is the result +// of receiving an unknown enum value. +func maybeUnknownEnum(err error) error { + if strings.Contains(err.Error(), "invalid value for enum type") { + err = fmt.Errorf("received an unknown enum value; a later version of the library may support it: %w", err) + } + return err +} + +// buildHeaders extracts metadata from the outgoing context, joins it with any other +// given metadata, and converts them into a http.Header. +func buildHeaders(ctx context.Context, mds ...metadata.MD) http.Header { + if cmd, ok := metadata.FromOutgoingContext(ctx); ok { + mds = append(mds, cmd) + } + md := metadata.Join(mds...) + return http.Header(md) +} + diff --git a/gen/client/coinbase/staking/orchestration/v1/staking_client.go b/gen/client/coinbase/staking/orchestration/v1/staking_client.go new file mode 100644 index 0000000..c14db70 --- /dev/null +++ b/gen/client/coinbase/staking/orchestration/v1/staking_client.go @@ -0,0 +1,1207 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + + +package v1 + +import ( + "bytes" + "context" + "fmt" + "io/ioutil" + "math" + "net/http" + "net/url" + + stakingpb "github.com/coinbase/staking-client-library-go/gen/go/coinbase/staking/orchestration/v1" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newStakingClientHook clientHook + +// StakingCallOptions contains the retry settings for each method of StakingClient. +type StakingCallOptions struct { + ListProtocols []gax.CallOption + ListNetworks []gax.CallOption + ListStakingTargets []gax.CallOption + ListActions []gax.CallOption + CreateWorkflow []gax.CallOption + GetWorkflow []gax.CallOption + ListWorkflows []gax.CallOption + PerformWorkflowStep []gax.CallOption + ViewStakingContext []gax.CallOption +} + +func defaultStakingGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("api.developer.coinbase.com:443"), + internaloption.WithDefaultMTLSEndpoint("api.developer.coinbase.com:443"), + internaloption.WithDefaultAudience("https://api.developer.coinbase.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultStakingCallOptions() *StakingCallOptions { + return &StakingCallOptions{ + ListProtocols: []gax.CallOption{ + }, + ListNetworks: []gax.CallOption{ + }, + ListStakingTargets: []gax.CallOption{ + }, + ListActions: []gax.CallOption{ + }, + CreateWorkflow: []gax.CallOption{ + }, + GetWorkflow: []gax.CallOption{ + }, + ListWorkflows: []gax.CallOption{ + }, + PerformWorkflowStep: []gax.CallOption{ + }, + ViewStakingContext: []gax.CallOption{ + }, + } +} + +func defaultStakingRESTCallOptions() *StakingCallOptions { + return &StakingCallOptions{ + ListProtocols: []gax.CallOption{ + }, + ListNetworks: []gax.CallOption{ + }, + ListStakingTargets: []gax.CallOption{ + }, + ListActions: []gax.CallOption{ + }, + CreateWorkflow: []gax.CallOption{ + }, + GetWorkflow: []gax.CallOption{ + }, + ListWorkflows: []gax.CallOption{ + }, + PerformWorkflowStep: []gax.CallOption{ + }, + ViewStakingContext: []gax.CallOption{ + }, + } +} + +// internalStakingClient is an interface that defines the methods available from . +type internalStakingClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListProtocols(context.Context, *stakingpb.ListProtocolsRequest, ...gax.CallOption) (*stakingpb.ListProtocolsResponse, error) + ListNetworks(context.Context, *stakingpb.ListNetworksRequest, ...gax.CallOption) (*stakingpb.ListNetworksResponse, error) + ListStakingTargets(context.Context, *stakingpb.ListStakingTargetsRequest, ...gax.CallOption) *StakingTargetIterator + ListActions(context.Context, *stakingpb.ListActionsRequest, ...gax.CallOption) (*stakingpb.ListActionsResponse, error) + CreateWorkflow(context.Context, *stakingpb.CreateWorkflowRequest, ...gax.CallOption) (*stakingpb.Workflow, error) + GetWorkflow(context.Context, *stakingpb.GetWorkflowRequest, ...gax.CallOption) (*stakingpb.Workflow, error) + ListWorkflows(context.Context, *stakingpb.ListWorkflowsRequest, ...gax.CallOption) *WorkflowIterator + PerformWorkflowStep(context.Context, *stakingpb.PerformWorkflowStepRequest, ...gax.CallOption) (*stakingpb.Workflow, error) + ViewStakingContext(context.Context, *stakingpb.ViewStakingContextRequest, ...gax.CallOption) (*stakingpb.ViewStakingContextResponse, error) +} + +// StakingClient is a client for interacting with . +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// StakingService manages staking related resources such as protocols, networks, validators and workflows. +type StakingClient struct { + // The internal transport-dependent client. + internalClient internalStakingClient + + // The call options for this service. + CallOptions *StakingCallOptions + +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *StakingClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *StakingClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *StakingClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListProtocols list supported protocols. +func (c *StakingClient) ListProtocols(ctx context.Context, req *stakingpb.ListProtocolsRequest, opts ...gax.CallOption) (*stakingpb.ListProtocolsResponse, error) { + return c.internalClient.ListProtocols(ctx, req, opts...) +} + +// ListNetworks list supported staking networks for a given protocol. +func (c *StakingClient) ListNetworks(ctx context.Context, req *stakingpb.ListNetworksRequest, opts ...gax.CallOption) (*stakingpb.ListNetworksResponse, error) { + return c.internalClient.ListNetworks(ctx, req, opts...) +} + +// ListStakingTargets list supported staking targets for a given protocol and network. +func (c *StakingClient) ListStakingTargets(ctx context.Context, req *stakingpb.ListStakingTargetsRequest, opts ...gax.CallOption) *StakingTargetIterator { + return c.internalClient.ListStakingTargets(ctx, req, opts...) +} + +// ListActions list supported actions for a given protocol and network. +func (c *StakingClient) ListActions(ctx context.Context, req *stakingpb.ListActionsRequest, opts ...gax.CallOption) (*stakingpb.ListActionsResponse, error) { + return c.internalClient.ListActions(ctx, req, opts...) +} + +// CreateWorkflow create a workflow to perform an action. +func (c *StakingClient) CreateWorkflow(ctx context.Context, req *stakingpb.CreateWorkflowRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + return c.internalClient.CreateWorkflow(ctx, req, opts...) +} + +// GetWorkflow get the current state of an active workflow. +func (c *StakingClient) GetWorkflow(ctx context.Context, req *stakingpb.GetWorkflowRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + return c.internalClient.GetWorkflow(ctx, req, opts...) +} + +// ListWorkflows list all workflows in a project. +func (c *StakingClient) ListWorkflows(ctx context.Context, req *stakingpb.ListWorkflowsRequest, opts ...gax.CallOption) *WorkflowIterator { + return c.internalClient.ListWorkflows(ctx, req, opts...) +} + +// PerformWorkflowStep perform the next step in a workflow. +func (c *StakingClient) PerformWorkflowStep(ctx context.Context, req *stakingpb.PerformWorkflowStepRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + return c.internalClient.PerformWorkflowStep(ctx, req, opts...) +} + +// ViewStakingContext view Staking context information given a specific network address. +func (c *StakingClient) ViewStakingContext(ctx context.Context, req *stakingpb.ViewStakingContextRequest, opts ...gax.CallOption) (*stakingpb.ViewStakingContextResponse, error) { + return c.internalClient.ViewStakingContext(ctx, req, opts...) +} + +// stakingGRPCClient is a client for interacting with over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type stakingGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing StakingClient + CallOptions **StakingCallOptions + + // The gRPC API client. + stakingClient stakingpb.StakingServiceClient + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD +} + +// NewStakingClient creates a new staking service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// StakingService manages staking related resources such as protocols, networks, validators and workflows. +func NewStakingClient(ctx context.Context, opts ...option.ClientOption) (*StakingClient, error) { + clientOpts := defaultStakingGRPCClientOptions() + if newStakingClientHook != nil { + hookOpts, err := newStakingClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := StakingClient{CallOptions: defaultStakingCallOptions()} + + c := &stakingGRPCClient{ + connPool: connPool, + stakingClient: stakingpb.NewStakingServiceClient(connPool), + CallOptions: &client.CallOptions, + + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *stakingGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *stakingGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", versionGo()}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *stakingGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type stakingRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD + + // Points back to the CallOptions field of the containing StakingClient + CallOptions **StakingCallOptions +} + +// NewStakingRESTClient creates a new staking service rest client. +// +// StakingService manages staking related resources such as protocols, networks, validators and workflows. +func NewStakingRESTClient(ctx context.Context, opts ...option.ClientOption) (*StakingClient, error) { + clientOpts := append(defaultStakingRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultStakingRESTCallOptions() + c := &stakingRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &StakingClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultStakingRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://api.developer.coinbase.com"), + internaloption.WithDefaultMTLSEndpoint("https://api.developer.coinbase.com"), + internaloption.WithDefaultAudience("https://api.developer.coinbase.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + } +} +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *stakingRESTClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", versionGo()}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") + c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *stakingRESTClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *stakingRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *stakingGRPCClient) ListProtocols(ctx context.Context, req *stakingpb.ListProtocolsRequest, opts ...gax.CallOption) (*stakingpb.ListProtocolsResponse, error) { + ctx = insertMetadata(ctx, c.xGoogMetadata) + opts = append((*c.CallOptions).ListProtocols[0:len((*c.CallOptions).ListProtocols):len((*c.CallOptions).ListProtocols)], opts...) + var resp *stakingpb.ListProtocolsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.ListProtocols(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *stakingGRPCClient) ListNetworks(ctx context.Context, req *stakingpb.ListNetworksRequest, opts ...gax.CallOption) (*stakingpb.ListNetworksResponse, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListNetworks[0:len((*c.CallOptions).ListNetworks):len((*c.CallOptions).ListNetworks)], opts...) + var resp *stakingpb.ListNetworksResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.ListNetworks(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *stakingGRPCClient) ListStakingTargets(ctx context.Context, req *stakingpb.ListStakingTargetsRequest, opts ...gax.CallOption) *StakingTargetIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListStakingTargets[0:len((*c.CallOptions).ListStakingTargets):len((*c.CallOptions).ListStakingTargets)], opts...) + it := &StakingTargetIterator{} + req = proto.Clone(req).(*stakingpb.ListStakingTargetsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*stakingpb.StakingTarget, string, error) { + resp := &stakingpb.ListStakingTargetsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.ListStakingTargets(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetStakingTargets(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *stakingGRPCClient) ListActions(ctx context.Context, req *stakingpb.ListActionsRequest, opts ...gax.CallOption) (*stakingpb.ListActionsResponse, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListActions[0:len((*c.CallOptions).ListActions):len((*c.CallOptions).ListActions)], opts...) + var resp *stakingpb.ListActionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.ListActions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *stakingGRPCClient) CreateWorkflow(ctx context.Context, req *stakingpb.CreateWorkflowRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateWorkflow[0:len((*c.CallOptions).CreateWorkflow):len((*c.CallOptions).CreateWorkflow)], opts...) + var resp *stakingpb.Workflow + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.CreateWorkflow(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *stakingGRPCClient) GetWorkflow(ctx context.Context, req *stakingpb.GetWorkflowRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetWorkflow[0:len((*c.CallOptions).GetWorkflow):len((*c.CallOptions).GetWorkflow)], opts...) + var resp *stakingpb.Workflow + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.GetWorkflow(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *stakingGRPCClient) ListWorkflows(ctx context.Context, req *stakingpb.ListWorkflowsRequest, opts ...gax.CallOption) *WorkflowIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListWorkflows[0:len((*c.CallOptions).ListWorkflows):len((*c.CallOptions).ListWorkflows)], opts...) + it := &WorkflowIterator{} + req = proto.Clone(req).(*stakingpb.ListWorkflowsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*stakingpb.Workflow, string, error) { + resp := &stakingpb.ListWorkflowsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.ListWorkflows(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetWorkflows(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *stakingGRPCClient) PerformWorkflowStep(ctx context.Context, req *stakingpb.PerformWorkflowStepRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).PerformWorkflowStep[0:len((*c.CallOptions).PerformWorkflowStep):len((*c.CallOptions).PerformWorkflowStep)], opts...) + var resp *stakingpb.Workflow + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.PerformWorkflowStep(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *stakingGRPCClient) ViewStakingContext(ctx context.Context, req *stakingpb.ViewStakingContextRequest, opts ...gax.CallOption) (*stakingpb.ViewStakingContextResponse, error) { + ctx = insertMetadata(ctx, c.xGoogMetadata) + opts = append((*c.CallOptions).ViewStakingContext[0:len((*c.CallOptions).ViewStakingContext):len((*c.CallOptions).ViewStakingContext)], opts...) + var resp *stakingpb.ViewStakingContextResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.stakingClient.ViewStakingContext(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// ListProtocols list supported protocols. +func (c *stakingRESTClient) ListProtocols(ctx context.Context, req *stakingpb.ListProtocolsRequest, opts ...gax.CallOption) (*stakingpb.ListProtocolsResponse, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/protocols") + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).ListProtocols[0:len((*c.CallOptions).ListProtocols):len((*c.CallOptions).ListProtocols)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &stakingpb.ListProtocolsResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} +// ListNetworks list supported staking networks for a given protocol. +func (c *stakingRESTClient) ListNetworks(ctx context.Context, req *stakingpb.ListNetworksRequest, opts ...gax.CallOption) (*stakingpb.ListNetworksResponse, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/networks", req.GetParent()) + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).ListNetworks[0:len((*c.CallOptions).ListNetworks):len((*c.CallOptions).ListNetworks)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &stakingpb.ListNetworksResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} +// ListStakingTargets list supported staking targets for a given protocol and network. +func (c *stakingRESTClient) ListStakingTargets(ctx context.Context, req *stakingpb.ListStakingTargetsRequest, opts ...gax.CallOption) *StakingTargetIterator { + it := &StakingTargetIterator{} + req = proto.Clone(req).(*stakingpb.ListStakingTargetsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*stakingpb.StakingTarget, string, error) { + resp := &stakingpb.ListStakingTargetsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/stakingTargets", req.GetParent()) + + params := url.Values{} + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetStakingTargets(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} +// ListActions list supported actions for a given protocol and network. +func (c *stakingRESTClient) ListActions(ctx context.Context, req *stakingpb.ListActionsRequest, opts ...gax.CallOption) (*stakingpb.ListActionsResponse, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/actions", req.GetParent()) + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).ListActions[0:len((*c.CallOptions).ListActions):len((*c.CallOptions).ListActions)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &stakingpb.ListActionsResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} +// CreateWorkflow create a workflow to perform an action. +func (c *stakingRESTClient) CreateWorkflow(ctx context.Context, req *stakingpb.CreateWorkflowRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetWorkflow() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/workflows", req.GetParent()) + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).CreateWorkflow[0:len((*c.CallOptions).CreateWorkflow):len((*c.CallOptions).CreateWorkflow)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &stakingpb.Workflow{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} +// GetWorkflow get the current state of an active workflow. +func (c *stakingRESTClient) GetWorkflow(ctx context.Context, req *stakingpb.GetWorkflowRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetWorkflow[0:len((*c.CallOptions).GetWorkflow):len((*c.CallOptions).GetWorkflow)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &stakingpb.Workflow{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} +// ListWorkflows list all workflows in a project. +func (c *stakingRESTClient) ListWorkflows(ctx context.Context, req *stakingpb.ListWorkflowsRequest, opts ...gax.CallOption) *WorkflowIterator { + it := &WorkflowIterator{} + req = proto.Clone(req).(*stakingpb.ListWorkflowsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*stakingpb.Workflow, string, error) { + resp := &stakingpb.ListWorkflowsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/workflows", req.GetParent()) + + params := url.Values{} + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetWorkflows(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} +// PerformWorkflowStep perform the next step in a workflow. +func (c *stakingRESTClient) PerformWorkflowStep(ctx context.Context, req *stakingpb.PerformWorkflowStepRequest, opts ...gax.CallOption) (*stakingpb.Workflow, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/step", req.GetName()) + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).PerformWorkflowStep[0:len((*c.CallOptions).PerformWorkflowStep):len((*c.CallOptions).PerformWorkflowStep)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &stakingpb.Workflow{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} +// ViewStakingContext view Staking context information given a specific network address. +func (c *stakingRESTClient) ViewStakingContext(ctx context.Context, req *stakingpb.ViewStakingContextRequest, opts ...gax.CallOption) (*stakingpb.ViewStakingContextResponse, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/viewStakingContext:view") + + params := url.Values{} + params.Add("address", fmt.Sprintf("%v", req.GetAddress())) + if req.GetEthereumKilnStakingContextParameters().GetIntegratorContractAddress() != "" { + params.Add("ethereumKilnStakingContextParameters.integratorContractAddress", fmt.Sprintf("%v", req.GetEthereumKilnStakingContextParameters().GetIntegratorContractAddress())) + } + params.Add("network", fmt.Sprintf("%v", req.GetNetwork())) + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).ViewStakingContext[0:len((*c.CallOptions).ViewStakingContext):len((*c.CallOptions).ViewStakingContext)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &stakingpb.ViewStakingContextResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil{ + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := ioutil.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return maybeUnknownEnum(err) + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} +// StakingTargetIterator manages a stream of *stakingpb.StakingTarget. +type StakingTargetIterator struct { + items []*stakingpb.StakingTarget + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*stakingpb.StakingTarget, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *StakingTargetIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *StakingTargetIterator) Next() (*stakingpb.StakingTarget, error) { + var item *stakingpb.StakingTarget + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *StakingTargetIterator) bufLen() int { + return len(it.items) +} + +func (it *StakingTargetIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// WorkflowIterator manages a stream of *stakingpb.Workflow. +type WorkflowIterator struct { + items []*stakingpb.Workflow + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*stakingpb.Workflow, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *WorkflowIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *WorkflowIterator) Next() (*stakingpb.Workflow, error) { + var item *stakingpb.Workflow + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *WorkflowIterator) bufLen() int { + return len(it.items) +} + +func (it *WorkflowIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/gen/go/coinbase/staking/orchestration/v1/action.pb.go b/gen/go/coinbase/staking/orchestration/v1/action.pb.go new file mode 100644 index 0000000..e1bbb2a --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/action.pb.go @@ -0,0 +1,302 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/action.proto + +package v1 + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// An Action resource represents an action you may take on a network (e.g. stake, unstake). +type Action struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the Action. + // Format: protocols/{protocolName}/networks/{networkName}/actions/{actionName} + // Ex: protocols/ethereum_kiln/networks/holesky/validators/stake + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Action) Reset() { + *x = Action{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_action_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Action) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Action) ProtoMessage() {} + +func (x *Action) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_action_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Action.ProtoReflect.Descriptor instead. +func (*Action) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_action_proto_rawDescGZIP(), []int{0} +} + +func (x *Action) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request message for ListActions. +type ListActionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the parent that owns + // the collection of actions. + // Format: protocols/{protocol}/networks/{network} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` +} + +func (x *ListActionsRequest) Reset() { + *x = ListActionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_action_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListActionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListActionsRequest) ProtoMessage() {} + +func (x *ListActionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_action_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListActionsRequest.ProtoReflect.Descriptor instead. +func (*ListActionsRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_action_proto_rawDescGZIP(), []int{1} +} + +func (x *ListActionsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +// The response message for ListActions. +type ListActionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of actions. + Actions []*Action `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` +} + +func (x *ListActionsResponse) Reset() { + *x = ListActionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_action_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListActionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListActionsResponse) ProtoMessage() {} + +func (x *ListActionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_action_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListActionsResponse.ProtoReflect.Descriptor instead. +func (*ListActionsResponse) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_action_proto_rawDescGZIP(), []int{2} +} + +func (x *ListActionsResponse) GetActions() []*Action { + if x != nil { + return x.Actions + } + return nil +} + +var File_coinbase_staking_orchestration_v1_action_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_action_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x89, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x6b, + 0xea, 0x41, 0x68, 0x0a, 0x1b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x69, + 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x38, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, + 0x7b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2a, 0x07, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x32, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x12, 0x1b, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x5a, + 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, + 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_action_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_action_proto_rawDescData = file_coinbase_staking_orchestration_v1_action_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_action_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_action_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_action_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_action_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_action_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_action_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_coinbase_staking_orchestration_v1_action_proto_goTypes = []interface{}{ + (*Action)(nil), // 0: coinbase.staking.orchestration.v1.Action + (*ListActionsRequest)(nil), // 1: coinbase.staking.orchestration.v1.ListActionsRequest + (*ListActionsResponse)(nil), // 2: coinbase.staking.orchestration.v1.ListActionsResponse +} +var file_coinbase_staking_orchestration_v1_action_proto_depIdxs = []int32{ + 0, // 0: coinbase.staking.orchestration.v1.ListActionsResponse.actions:type_name -> coinbase.staking.orchestration.v1.Action + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_action_proto_init() } +func file_coinbase_staking_orchestration_v1_action_proto_init() { + if File_coinbase_staking_orchestration_v1_action_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_action_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_action_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListActionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_action_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListActionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_action_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_action_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_action_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_action_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_action_proto = out.File + file_coinbase_staking_orchestration_v1_action_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_action_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_action_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/action_aip.go b/gen/go/coinbase/staking/orchestration/v1/action_aip.go new file mode 100644 index 0000000..a008935 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/action_aip.go @@ -0,0 +1,106 @@ +// Code generated by protoc-gen-go-aip. DO NOT EDIT. +// +// versions: +// protoc-gen-go-aip development +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/action.proto + +package v1 + +import ( + fmt "fmt" + resourcename "go.einride.tech/aip/resourcename" + strings "strings" +) + +type ActionResourceName struct { + Protocol string + Network string + Action string +} + +func (n ProtocolResourceName) ActionResourceName( + network string, + action string, +) ActionResourceName { + return ActionResourceName{ + Protocol: n.Protocol, + Network: network, + Action: action, + } +} + +func (n NetworkResourceName) ActionResourceName( + action string, +) ActionResourceName { + return ActionResourceName{ + Protocol: n.Protocol, + Network: n.Network, + Action: action, + } +} + +func (n ActionResourceName) Validate() error { + if n.Protocol == "" { + return fmt.Errorf("protocol: empty") + } + if strings.IndexByte(n.Protocol, '/') != -1 { + return fmt.Errorf("protocol: contains illegal character '/'") + } + if n.Network == "" { + return fmt.Errorf("network: empty") + } + if strings.IndexByte(n.Network, '/') != -1 { + return fmt.Errorf("network: contains illegal character '/'") + } + if n.Action == "" { + return fmt.Errorf("action: empty") + } + if strings.IndexByte(n.Action, '/') != -1 { + return fmt.Errorf("action: contains illegal character '/'") + } + return nil +} + +func (n ActionResourceName) ContainsWildcard() bool { + return false || n.Protocol == "-" || n.Network == "-" || n.Action == "-" +} + +func (n ActionResourceName) String() string { + return resourcename.Sprint( + "protocols/{protocol}/networks/{network}/actions/{action}", + n.Protocol, + n.Network, + n.Action, + ) +} + +func (n ActionResourceName) MarshalString() (string, error) { + if err := n.Validate(); err != nil { + return "", err + } + return n.String(), nil +} + +func (n *ActionResourceName) UnmarshalString(name string) error { + return resourcename.Sscan( + name, + "protocols/{protocol}/networks/{network}/actions/{action}", + &n.Protocol, + &n.Network, + &n.Action, + ) +} + +func (n ActionResourceName) ProtocolResourceName() ProtocolResourceName { + return ProtocolResourceName{ + Protocol: n.Protocol, + } +} + +func (n ActionResourceName) NetworkResourceName() NetworkResourceName { + return NetworkResourceName{ + Protocol: n.Protocol, + Network: n.Network, + } +} diff --git a/gen/go/coinbase/staking/orchestration/v1/api.pb.go b/gen/go/coinbase/staking/orchestration/v1/api.pb.go new file mode 100644 index 0000000..9508c1d --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/api.pb.go @@ -0,0 +1,356 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/api.proto + +package v1 + +import ( + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var File_coinbase_staking_orchestration_v1_api_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_api_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, + 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x30, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x37, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x86, 0x14, + 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0xf9, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x73, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, 0x5a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x1a, 0x18, + 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x4a, 0x0b, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, + 0x0a, 0x02, 0x4f, 0x4b, 0xda, 0x41, 0x00, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x8d, 0x02, 0x0a, + 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x36, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, + 0x01, 0x92, 0x41, 0x56, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x4c, + 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x1a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2a, + 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x4a, 0x0b, 0x0a, + 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, 0x0a, 0x02, 0x4f, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0xca, 0x02, 0x0a, + 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x73, 0x12, 0x3c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3d, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xb6, 0x01, 0x92, 0x41, 0x70, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x2a, 0x12, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x4a, 0x0b, 0x0a, 0x03, 0x32, 0x30, 0x30, + 0x12, 0x04, 0x0a, 0x02, 0x4f, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x90, 0x02, 0x0a, 0x0b, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x36, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x91, 0x01, 0x92, 0x41, 0x52, 0x0a, 0x06, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x4a, 0x0b, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, 0x0a, 0x02, 0x4f, 0x4b, + 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, + 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xfa, 0x01, 0x0a, + 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, + 0x38, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, + 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x80, 0x01, 0x92, 0x41, 0x38, 0x0a, 0x08, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4a, 0x0b, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, + 0x0a, 0x02, 0x4f, 0x4b, 0xda, 0x41, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x08, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0xd8, 0x01, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x65, 0x92, + 0x41, 0x32, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x0c, 0x47, 0x65, + 0x74, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2a, 0x0b, 0x67, 0x65, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4a, 0x0b, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, + 0x0a, 0x02, 0x4f, 0x4b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf9, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x75, 0x92, 0x41, 0x40, 0x0a, 0x08, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x20, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x73, 0x2a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x4a, 0x0b, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, 0x0a, 0x02, 0x4f, 0x4b, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x12, 0xa9, 0x02, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x12, 0x3d, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, + 0x66, 0x6f, 0x72, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xa5, 0x01, 0x92, 0x41, 0x71, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x23, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x61, + 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x1a, 0x23, 0x50, 0x65, 0x72, 0x66, 0x6f, + 0x72, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x73, 0x74, 0x65, 0x70, + 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2a, 0x0e, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x4a, 0x0b, + 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, 0x0a, 0x02, 0x4f, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2b, 0x3a, 0x01, 0x2a, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x65, 0x70, 0x12, 0xe8, 0x02, 0x0a, + 0x12, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x3c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3d, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xd4, 0x01, 0x92, 0x41, 0xad, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, + 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2d, 0x69, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x3c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x2d, 0x69, 0x6e, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x2a, 0x12, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4a, 0x0b, 0x0a, 0x03, 0x32, 0x30, 0x30, 0x12, 0x04, + 0x0a, 0x02, 0x4f, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, + 0x76, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x1a, 0x1d, 0xca, 0x41, 0x1a, 0x61, 0x70, 0x69, 0x2e, + 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0xe5, 0x07, 0x92, 0x41, 0x99, 0x07, 0x12, 0x65, 0x0a, + 0x15, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x6e, + 0x6f, 0x6e, 0x2d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x69, 0x61, 0x6c, 0x20, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2e, + 0x32, 0x02, 0x76, 0x31, 0x1a, 0x1a, 0x61, 0x70, 0x69, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, + 0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x22, 0x08, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, + 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, + 0x6e, 0x52, 0x52, 0x0a, 0x03, 0x34, 0x30, 0x30, 0x12, 0x4b, 0x0a, 0x2c, 0x54, 0x68, 0x65, 0x20, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x65, + 0x64, 0x20, 0x68, 0x61, 0x73, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x19, 0x1a, 0x17, 0x23, 0x2f, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x57, 0x0a, 0x03, 0x34, 0x30, 0x31, 0x12, 0x50, 0x0a, 0x31, + 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x12, 0x1b, 0x0a, 0x19, 0x1a, 0x17, 0x23, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x64, + 0x0a, 0x03, 0x34, 0x30, 0x33, 0x12, 0x5d, 0x0a, 0x3e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, + 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x64, 0x6f, + 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x70, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x12, 0x1b, 0x0a, 0x19, 0x1a, 0x17, 0x23, 0x2f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x4c, 0x0a, 0x03, 0x34, 0x30, 0x34, 0x12, 0x45, 0x0a, 0x26, 0x52, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x20, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, + 0x6f, 0x75, 0x6e, 0x64, 0x2e, 0x12, 0x1b, 0x0a, 0x19, 0x1a, 0x17, 0x23, 0x2f, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x56, 0x0a, 0x03, 0x34, 0x32, 0x39, 0x12, 0x4f, 0x0a, 0x30, 0x52, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x20, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x68, 0x61, 0x73, 0x20, + 0x62, 0x65, 0x65, 0x6e, 0x20, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x2e, 0x12, 0x1b, 0x0a, + 0x19, 0x1a, 0x17, 0x23, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x72, 0x70, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x55, 0x0a, 0x03, 0x35, 0x30, + 0x30, 0x12, 0x4e, 0x0a, 0x2f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x68, + 0x65, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x68, 0x61, 0x70, 0x70, + 0x65, 0x6e, 0x73, 0x2e, 0x12, 0x1b, 0x0a, 0x19, 0x1a, 0x17, 0x23, 0x2f, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x6a, 0x1d, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x11, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x6a, 0x1b, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x10, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x6a, 0x19, 0x0a, + 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x6a, 0x28, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x53, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x6a, 0x29, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x12, 0x17, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x6a, 0x27, 0x0a, + 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x1b, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x62, 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, + 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, + 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_coinbase_staking_orchestration_v1_api_proto_goTypes = []interface{}{ + (*ListProtocolsRequest)(nil), // 0: coinbase.staking.orchestration.v1.ListProtocolsRequest + (*ListNetworksRequest)(nil), // 1: coinbase.staking.orchestration.v1.ListNetworksRequest + (*ListStakingTargetsRequest)(nil), // 2: coinbase.staking.orchestration.v1.ListStakingTargetsRequest + (*ListActionsRequest)(nil), // 3: coinbase.staking.orchestration.v1.ListActionsRequest + (*CreateWorkflowRequest)(nil), // 4: coinbase.staking.orchestration.v1.CreateWorkflowRequest + (*GetWorkflowRequest)(nil), // 5: coinbase.staking.orchestration.v1.GetWorkflowRequest + (*ListWorkflowsRequest)(nil), // 6: coinbase.staking.orchestration.v1.ListWorkflowsRequest + (*PerformWorkflowStepRequest)(nil), // 7: coinbase.staking.orchestration.v1.PerformWorkflowStepRequest + (*ViewStakingContextRequest)(nil), // 8: coinbase.staking.orchestration.v1.ViewStakingContextRequest + (*ListProtocolsResponse)(nil), // 9: coinbase.staking.orchestration.v1.ListProtocolsResponse + (*ListNetworksResponse)(nil), // 10: coinbase.staking.orchestration.v1.ListNetworksResponse + (*ListStakingTargetsResponse)(nil), // 11: coinbase.staking.orchestration.v1.ListStakingTargetsResponse + (*ListActionsResponse)(nil), // 12: coinbase.staking.orchestration.v1.ListActionsResponse + (*Workflow)(nil), // 13: coinbase.staking.orchestration.v1.Workflow + (*ListWorkflowsResponse)(nil), // 14: coinbase.staking.orchestration.v1.ListWorkflowsResponse + (*ViewStakingContextResponse)(nil), // 15: coinbase.staking.orchestration.v1.ViewStakingContextResponse +} +var file_coinbase_staking_orchestration_v1_api_proto_depIdxs = []int32{ + 0, // 0: coinbase.staking.orchestration.v1.StakingService.ListProtocols:input_type -> coinbase.staking.orchestration.v1.ListProtocolsRequest + 1, // 1: coinbase.staking.orchestration.v1.StakingService.ListNetworks:input_type -> coinbase.staking.orchestration.v1.ListNetworksRequest + 2, // 2: coinbase.staking.orchestration.v1.StakingService.ListStakingTargets:input_type -> coinbase.staking.orchestration.v1.ListStakingTargetsRequest + 3, // 3: coinbase.staking.orchestration.v1.StakingService.ListActions:input_type -> coinbase.staking.orchestration.v1.ListActionsRequest + 4, // 4: coinbase.staking.orchestration.v1.StakingService.CreateWorkflow:input_type -> coinbase.staking.orchestration.v1.CreateWorkflowRequest + 5, // 5: coinbase.staking.orchestration.v1.StakingService.GetWorkflow:input_type -> coinbase.staking.orchestration.v1.GetWorkflowRequest + 6, // 6: coinbase.staking.orchestration.v1.StakingService.ListWorkflows:input_type -> coinbase.staking.orchestration.v1.ListWorkflowsRequest + 7, // 7: coinbase.staking.orchestration.v1.StakingService.PerformWorkflowStep:input_type -> coinbase.staking.orchestration.v1.PerformWorkflowStepRequest + 8, // 8: coinbase.staking.orchestration.v1.StakingService.ViewStakingContext:input_type -> coinbase.staking.orchestration.v1.ViewStakingContextRequest + 9, // 9: coinbase.staking.orchestration.v1.StakingService.ListProtocols:output_type -> coinbase.staking.orchestration.v1.ListProtocolsResponse + 10, // 10: coinbase.staking.orchestration.v1.StakingService.ListNetworks:output_type -> coinbase.staking.orchestration.v1.ListNetworksResponse + 11, // 11: coinbase.staking.orchestration.v1.StakingService.ListStakingTargets:output_type -> coinbase.staking.orchestration.v1.ListStakingTargetsResponse + 12, // 12: coinbase.staking.orchestration.v1.StakingService.ListActions:output_type -> coinbase.staking.orchestration.v1.ListActionsResponse + 13, // 13: coinbase.staking.orchestration.v1.StakingService.CreateWorkflow:output_type -> coinbase.staking.orchestration.v1.Workflow + 13, // 14: coinbase.staking.orchestration.v1.StakingService.GetWorkflow:output_type -> coinbase.staking.orchestration.v1.Workflow + 14, // 15: coinbase.staking.orchestration.v1.StakingService.ListWorkflows:output_type -> coinbase.staking.orchestration.v1.ListWorkflowsResponse + 13, // 16: coinbase.staking.orchestration.v1.StakingService.PerformWorkflowStep:output_type -> coinbase.staking.orchestration.v1.Workflow + 15, // 17: coinbase.staking.orchestration.v1.StakingService.ViewStakingContext:output_type -> coinbase.staking.orchestration.v1.ViewStakingContextResponse + 9, // [9:18] is the sub-list for method output_type + 0, // [0:9] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_api_proto_init() } +func file_coinbase_staking_orchestration_v1_api_proto_init() { + if File_coinbase_staking_orchestration_v1_api_proto != nil { + return + } + file_coinbase_staking_orchestration_v1_protocol_proto_init() + file_coinbase_staking_orchestration_v1_network_proto_init() + file_coinbase_staking_orchestration_v1_action_proto_init() + file_coinbase_staking_orchestration_v1_staking_target_proto_init() + file_coinbase_staking_orchestration_v1_workflow_proto_init() + file_coinbase_staking_orchestration_v1_staking_context_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_coinbase_staking_orchestration_v1_api_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_api_proto_depIdxs, + }.Build() + File_coinbase_staking_orchestration_v1_api_proto = out.File + file_coinbase_staking_orchestration_v1_api_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_api_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_api_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/api.pb.gw.go b/gen/go/coinbase/staking/orchestration/v1/api.pb.gw.go new file mode 100644 index 0000000..644a627 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/api.pb.gw.go @@ -0,0 +1,1031 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: coinbase/staking/orchestration/v1/api.proto + +/* +Package v1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package v1 + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_StakingService_ListProtocols_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListProtocolsRequest + var metadata runtime.ServerMetadata + + msg, err := client.ListProtocols(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_ListProtocols_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListProtocolsRequest + var metadata runtime.ServerMetadata + + msg, err := server.ListProtocols(ctx, &protoReq) + return msg, metadata, err + +} + +func request_StakingService_ListNetworks_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNetworksRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.ListNetworks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_ListNetworks_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNetworksRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.ListNetworks(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_StakingService_ListStakingTargets_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_StakingService_ListStakingTargets_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListStakingTargetsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StakingService_ListStakingTargets_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListStakingTargets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_ListStakingTargets_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListStakingTargetsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StakingService_ListStakingTargets_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListStakingTargets(ctx, &protoReq) + return msg, metadata, err + +} + +func request_StakingService_ListActions_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListActionsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.ListActions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_ListActions_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListActionsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.ListActions(ctx, &protoReq) + return msg, metadata, err + +} + +func request_StakingService_CreateWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateWorkflowRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Workflow); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := client.CreateWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_CreateWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateWorkflowRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Workflow); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + msg, err := server.CreateWorkflow(ctx, &protoReq) + return msg, metadata, err + +} + +func request_StakingService_GetWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWorkflowRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_GetWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWorkflowRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetWorkflow(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_StakingService_ListWorkflows_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_StakingService_ListWorkflows_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListWorkflowsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StakingService_ListWorkflows_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_ListWorkflows_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListWorkflowsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StakingService_ListWorkflows_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListWorkflows(ctx, &protoReq) + return msg, metadata, err + +} + +func request_StakingService_PerformWorkflowStep_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PerformWorkflowStepRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.PerformWorkflowStep(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_PerformWorkflowStep_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PerformWorkflowStepRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.PerformWorkflowStep(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_StakingService_ViewStakingContext_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_StakingService_ViewStakingContext_0(ctx context.Context, marshaler runtime.Marshaler, client StakingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ViewStakingContextRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StakingService_ViewStakingContext_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ViewStakingContext(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_StakingService_ViewStakingContext_0(ctx context.Context, marshaler runtime.Marshaler, server StakingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ViewStakingContextRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StakingService_ViewStakingContext_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ViewStakingContext(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterStakingServiceHandlerServer registers the http handlers for service StakingService to "mux". +// UnaryRPC :call StakingServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterStakingServiceHandlerFromEndpoint instead. +func RegisterStakingServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server StakingServiceServer) error { + + mux.Handle("GET", pattern_StakingService_ListProtocols_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListProtocols", runtime.WithHTTPPathPattern("/v1/protocols")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_ListProtocols_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListProtocols_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListNetworks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListNetworks", runtime.WithHTTPPathPattern("/v1/{parent=protocols/*}/networks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_ListNetworks_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListNetworks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListStakingTargets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListStakingTargets", runtime.WithHTTPPathPattern("/v1/{parent=protocols/*/networks/*}/stakingTargets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_ListStakingTargets_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListStakingTargets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListActions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListActions", runtime.WithHTTPPathPattern("/v1/{parent=protocols/*/networks/*}/actions")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_ListActions_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListActions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_StakingService_CreateWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/CreateWorkflow", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/workflows")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_CreateWorkflow_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_CreateWorkflow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_GetWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/GetWorkflow", runtime.WithHTTPPathPattern("/v1/{name=projects/*/workflows/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_GetWorkflow_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_GetWorkflow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListWorkflows_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListWorkflows", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/workflows")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_ListWorkflows_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListWorkflows_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_StakingService_PerformWorkflowStep_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/PerformWorkflowStep", runtime.WithHTTPPathPattern("/v1/{name=projects/*/workflows/*}/step")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_PerformWorkflowStep_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_PerformWorkflowStep_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ViewStakingContext_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ViewStakingContext", runtime.WithHTTPPathPattern("/v1/viewStakingContext:view")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_StakingService_ViewStakingContext_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ViewStakingContext_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterStakingServiceHandlerFromEndpoint is same as RegisterStakingServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterStakingServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterStakingServiceHandler(ctx, mux, conn) +} + +// RegisterStakingServiceHandler registers the http handlers for service StakingService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterStakingServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterStakingServiceHandlerClient(ctx, mux, NewStakingServiceClient(conn)) +} + +// RegisterStakingServiceHandlerClient registers the http handlers for service StakingService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "StakingServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "StakingServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "StakingServiceClient" to call the correct interceptors. +func RegisterStakingServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client StakingServiceClient) error { + + mux.Handle("GET", pattern_StakingService_ListProtocols_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListProtocols", runtime.WithHTTPPathPattern("/v1/protocols")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_ListProtocols_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListProtocols_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListNetworks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListNetworks", runtime.WithHTTPPathPattern("/v1/{parent=protocols/*}/networks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_ListNetworks_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListNetworks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListStakingTargets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListStakingTargets", runtime.WithHTTPPathPattern("/v1/{parent=protocols/*/networks/*}/stakingTargets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_ListStakingTargets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListStakingTargets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListActions_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListActions", runtime.WithHTTPPathPattern("/v1/{parent=protocols/*/networks/*}/actions")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_ListActions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListActions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_StakingService_CreateWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/CreateWorkflow", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/workflows")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_CreateWorkflow_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_CreateWorkflow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_GetWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/GetWorkflow", runtime.WithHTTPPathPattern("/v1/{name=projects/*/workflows/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_GetWorkflow_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_GetWorkflow_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ListWorkflows_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ListWorkflows", runtime.WithHTTPPathPattern("/v1/{parent=projects/*}/workflows")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_ListWorkflows_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ListWorkflows_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_StakingService_PerformWorkflowStep_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/PerformWorkflowStep", runtime.WithHTTPPathPattern("/v1/{name=projects/*/workflows/*}/step")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_PerformWorkflowStep_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_PerformWorkflowStep_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_StakingService_ViewStakingContext_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/coinbase.staking.orchestration.v1.StakingService/ViewStakingContext", runtime.WithHTTPPathPattern("/v1/viewStakingContext:view")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_StakingService_ViewStakingContext_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_StakingService_ViewStakingContext_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_StakingService_ListProtocols_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "protocols"}, "")) + + pattern_StakingService_ListNetworks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "protocols", "parent", "networks"}, "")) + + pattern_StakingService_ListStakingTargets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3, 2, 4}, []string{"v1", "protocols", "networks", "parent", "stakingTargets"}, "")) + + pattern_StakingService_ListActions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3, 2, 4}, []string{"v1", "protocols", "networks", "parent", "actions"}, "")) + + pattern_StakingService_CreateWorkflow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "projects", "parent", "workflows"}, "")) + + pattern_StakingService_GetWorkflow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "projects", "workflows", "name"}, "")) + + pattern_StakingService_ListWorkflows_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "projects", "parent", "workflows"}, "")) + + pattern_StakingService_PerformWorkflowStep_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3, 2, 4}, []string{"v1", "projects", "workflows", "name", "step"}, "")) + + pattern_StakingService_ViewStakingContext_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "viewStakingContext"}, "view")) +) + +var ( + forward_StakingService_ListProtocols_0 = runtime.ForwardResponseMessage + + forward_StakingService_ListNetworks_0 = runtime.ForwardResponseMessage + + forward_StakingService_ListStakingTargets_0 = runtime.ForwardResponseMessage + + forward_StakingService_ListActions_0 = runtime.ForwardResponseMessage + + forward_StakingService_CreateWorkflow_0 = runtime.ForwardResponseMessage + + forward_StakingService_GetWorkflow_0 = runtime.ForwardResponseMessage + + forward_StakingService_ListWorkflows_0 = runtime.ForwardResponseMessage + + forward_StakingService_PerformWorkflowStep_0 = runtime.ForwardResponseMessage + + forward_StakingService_ViewStakingContext_0 = runtime.ForwardResponseMessage +) diff --git a/gen/go/coinbase/staking/orchestration/v1/api_grpc.pb.go b/gen/go/coinbase/staking/orchestration/v1/api_grpc.pb.go new file mode 100644 index 0000000..672788c --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/api_grpc.pb.go @@ -0,0 +1,423 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) +// source: coinbase/staking/orchestration/v1/api.proto + +package v1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + StakingService_ListProtocols_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/ListProtocols" + StakingService_ListNetworks_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/ListNetworks" + StakingService_ListStakingTargets_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/ListStakingTargets" + StakingService_ListActions_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/ListActions" + StakingService_CreateWorkflow_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/CreateWorkflow" + StakingService_GetWorkflow_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/GetWorkflow" + StakingService_ListWorkflows_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/ListWorkflows" + StakingService_PerformWorkflowStep_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/PerformWorkflowStep" + StakingService_ViewStakingContext_FullMethodName = "/coinbase.staking.orchestration.v1.StakingService/ViewStakingContext" +) + +// StakingServiceClient is the client API for StakingService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type StakingServiceClient interface { + // List supported protocols. + ListProtocols(ctx context.Context, in *ListProtocolsRequest, opts ...grpc.CallOption) (*ListProtocolsResponse, error) + // List supported staking networks for a given protocol. + ListNetworks(ctx context.Context, in *ListNetworksRequest, opts ...grpc.CallOption) (*ListNetworksResponse, error) + // List supported staking targets for a given protocol and network. + ListStakingTargets(ctx context.Context, in *ListStakingTargetsRequest, opts ...grpc.CallOption) (*ListStakingTargetsResponse, error) + // List supported actions for a given protocol and network. + ListActions(ctx context.Context, in *ListActionsRequest, opts ...grpc.CallOption) (*ListActionsResponse, error) + // Create a workflow to perform an action. + CreateWorkflow(ctx context.Context, in *CreateWorkflowRequest, opts ...grpc.CallOption) (*Workflow, error) + // Get the current state of an active workflow. + GetWorkflow(ctx context.Context, in *GetWorkflowRequest, opts ...grpc.CallOption) (*Workflow, error) + // List all workflows in a project. + ListWorkflows(ctx context.Context, in *ListWorkflowsRequest, opts ...grpc.CallOption) (*ListWorkflowsResponse, error) + // Perform the next step in a workflow. + PerformWorkflowStep(ctx context.Context, in *PerformWorkflowStepRequest, opts ...grpc.CallOption) (*Workflow, error) + // View Staking context information given a specific network address. + ViewStakingContext(ctx context.Context, in *ViewStakingContextRequest, opts ...grpc.CallOption) (*ViewStakingContextResponse, error) +} + +type stakingServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewStakingServiceClient(cc grpc.ClientConnInterface) StakingServiceClient { + return &stakingServiceClient{cc} +} + +func (c *stakingServiceClient) ListProtocols(ctx context.Context, in *ListProtocolsRequest, opts ...grpc.CallOption) (*ListProtocolsResponse, error) { + out := new(ListProtocolsResponse) + err := c.cc.Invoke(ctx, StakingService_ListProtocols_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) ListNetworks(ctx context.Context, in *ListNetworksRequest, opts ...grpc.CallOption) (*ListNetworksResponse, error) { + out := new(ListNetworksResponse) + err := c.cc.Invoke(ctx, StakingService_ListNetworks_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) ListStakingTargets(ctx context.Context, in *ListStakingTargetsRequest, opts ...grpc.CallOption) (*ListStakingTargetsResponse, error) { + out := new(ListStakingTargetsResponse) + err := c.cc.Invoke(ctx, StakingService_ListStakingTargets_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) ListActions(ctx context.Context, in *ListActionsRequest, opts ...grpc.CallOption) (*ListActionsResponse, error) { + out := new(ListActionsResponse) + err := c.cc.Invoke(ctx, StakingService_ListActions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) CreateWorkflow(ctx context.Context, in *CreateWorkflowRequest, opts ...grpc.CallOption) (*Workflow, error) { + out := new(Workflow) + err := c.cc.Invoke(ctx, StakingService_CreateWorkflow_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) GetWorkflow(ctx context.Context, in *GetWorkflowRequest, opts ...grpc.CallOption) (*Workflow, error) { + out := new(Workflow) + err := c.cc.Invoke(ctx, StakingService_GetWorkflow_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) ListWorkflows(ctx context.Context, in *ListWorkflowsRequest, opts ...grpc.CallOption) (*ListWorkflowsResponse, error) { + out := new(ListWorkflowsResponse) + err := c.cc.Invoke(ctx, StakingService_ListWorkflows_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) PerformWorkflowStep(ctx context.Context, in *PerformWorkflowStepRequest, opts ...grpc.CallOption) (*Workflow, error) { + out := new(Workflow) + err := c.cc.Invoke(ctx, StakingService_PerformWorkflowStep_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *stakingServiceClient) ViewStakingContext(ctx context.Context, in *ViewStakingContextRequest, opts ...grpc.CallOption) (*ViewStakingContextResponse, error) { + out := new(ViewStakingContextResponse) + err := c.cc.Invoke(ctx, StakingService_ViewStakingContext_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// StakingServiceServer is the server API for StakingService service. +// All implementations must embed UnimplementedStakingServiceServer +// for forward compatibility +type StakingServiceServer interface { + // List supported protocols. + ListProtocols(context.Context, *ListProtocolsRequest) (*ListProtocolsResponse, error) + // List supported staking networks for a given protocol. + ListNetworks(context.Context, *ListNetworksRequest) (*ListNetworksResponse, error) + // List supported staking targets for a given protocol and network. + ListStakingTargets(context.Context, *ListStakingTargetsRequest) (*ListStakingTargetsResponse, error) + // List supported actions for a given protocol and network. + ListActions(context.Context, *ListActionsRequest) (*ListActionsResponse, error) + // Create a workflow to perform an action. + CreateWorkflow(context.Context, *CreateWorkflowRequest) (*Workflow, error) + // Get the current state of an active workflow. + GetWorkflow(context.Context, *GetWorkflowRequest) (*Workflow, error) + // List all workflows in a project. + ListWorkflows(context.Context, *ListWorkflowsRequest) (*ListWorkflowsResponse, error) + // Perform the next step in a workflow. + PerformWorkflowStep(context.Context, *PerformWorkflowStepRequest) (*Workflow, error) + // View Staking context information given a specific network address. + ViewStakingContext(context.Context, *ViewStakingContextRequest) (*ViewStakingContextResponse, error) + mustEmbedUnimplementedStakingServiceServer() +} + +// UnimplementedStakingServiceServer must be embedded to have forward compatible implementations. +type UnimplementedStakingServiceServer struct { +} + +func (UnimplementedStakingServiceServer) ListProtocols(context.Context, *ListProtocolsRequest) (*ListProtocolsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListProtocols not implemented") +} +func (UnimplementedStakingServiceServer) ListNetworks(context.Context, *ListNetworksRequest) (*ListNetworksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNetworks not implemented") +} +func (UnimplementedStakingServiceServer) ListStakingTargets(context.Context, *ListStakingTargetsRequest) (*ListStakingTargetsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListStakingTargets not implemented") +} +func (UnimplementedStakingServiceServer) ListActions(context.Context, *ListActionsRequest) (*ListActionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListActions not implemented") +} +func (UnimplementedStakingServiceServer) CreateWorkflow(context.Context, *CreateWorkflowRequest) (*Workflow, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateWorkflow not implemented") +} +func (UnimplementedStakingServiceServer) GetWorkflow(context.Context, *GetWorkflowRequest) (*Workflow, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetWorkflow not implemented") +} +func (UnimplementedStakingServiceServer) ListWorkflows(context.Context, *ListWorkflowsRequest) (*ListWorkflowsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListWorkflows not implemented") +} +func (UnimplementedStakingServiceServer) PerformWorkflowStep(context.Context, *PerformWorkflowStepRequest) (*Workflow, error) { + return nil, status.Errorf(codes.Unimplemented, "method PerformWorkflowStep not implemented") +} +func (UnimplementedStakingServiceServer) ViewStakingContext(context.Context, *ViewStakingContextRequest) (*ViewStakingContextResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ViewStakingContext not implemented") +} +func (UnimplementedStakingServiceServer) mustEmbedUnimplementedStakingServiceServer() {} + +// UnsafeStakingServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to StakingServiceServer will +// result in compilation errors. +type UnsafeStakingServiceServer interface { + mustEmbedUnimplementedStakingServiceServer() +} + +func RegisterStakingServiceServer(s grpc.ServiceRegistrar, srv StakingServiceServer) { + s.RegisterService(&StakingService_ServiceDesc, srv) +} + +func _StakingService_ListProtocols_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListProtocolsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).ListProtocols(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_ListProtocols_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).ListProtocols(ctx, req.(*ListProtocolsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_ListNetworks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListNetworksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).ListNetworks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_ListNetworks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).ListNetworks(ctx, req.(*ListNetworksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_ListStakingTargets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListStakingTargetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).ListStakingTargets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_ListStakingTargets_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).ListStakingTargets(ctx, req.(*ListStakingTargetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_ListActions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListActionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).ListActions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_ListActions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).ListActions(ctx, req.(*ListActionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_CreateWorkflow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateWorkflowRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).CreateWorkflow(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_CreateWorkflow_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).CreateWorkflow(ctx, req.(*CreateWorkflowRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_GetWorkflow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWorkflowRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).GetWorkflow(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_GetWorkflow_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).GetWorkflow(ctx, req.(*GetWorkflowRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_ListWorkflows_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWorkflowsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).ListWorkflows(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_ListWorkflows_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).ListWorkflows(ctx, req.(*ListWorkflowsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_PerformWorkflowStep_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PerformWorkflowStepRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).PerformWorkflowStep(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_PerformWorkflowStep_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).PerformWorkflowStep(ctx, req.(*PerformWorkflowStepRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StakingService_ViewStakingContext_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ViewStakingContextRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StakingServiceServer).ViewStakingContext(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: StakingService_ViewStakingContext_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StakingServiceServer).ViewStakingContext(ctx, req.(*ViewStakingContextRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// StakingService_ServiceDesc is the grpc.ServiceDesc for StakingService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var StakingService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "coinbase.staking.orchestration.v1.StakingService", + HandlerType: (*StakingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListProtocols", + Handler: _StakingService_ListProtocols_Handler, + }, + { + MethodName: "ListNetworks", + Handler: _StakingService_ListNetworks_Handler, + }, + { + MethodName: "ListStakingTargets", + Handler: _StakingService_ListStakingTargets_Handler, + }, + { + MethodName: "ListActions", + Handler: _StakingService_ListActions_Handler, + }, + { + MethodName: "CreateWorkflow", + Handler: _StakingService_CreateWorkflow_Handler, + }, + { + MethodName: "GetWorkflow", + Handler: _StakingService_GetWorkflow_Handler, + }, + { + MethodName: "ListWorkflows", + Handler: _StakingService_ListWorkflows_Handler, + }, + { + MethodName: "PerformWorkflowStep", + Handler: _StakingService_PerformWorkflowStep_Handler, + }, + { + MethodName: "ViewStakingContext", + Handler: _StakingService_ViewStakingContext_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "coinbase/staking/orchestration/v1/api.proto", +} diff --git a/gen/go/coinbase/staking/orchestration/v1/common.pb.go b/gen/go/coinbase/staking/orchestration/v1/common.pb.go new file mode 100644 index 0000000..adc42ff --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/common.pb.go @@ -0,0 +1,169 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/common.proto + +package v1 + +import ( + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The amount of a token you wish to perform an action +// with. +type Amount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The total value of the token. + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The name of the token. + Currency string `protobuf:"bytes,2,opt,name=currency,proto3" json:"currency,omitempty"` +} + +func (x *Amount) Reset() { + *x = Amount{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Amount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Amount) ProtoMessage() {} + +func (x *Amount) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_common_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Amount.ProtoReflect.Descriptor instead. +func (*Amount) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_common_proto_rawDescGZIP(), []int{0} +} + +func (x *Amount) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *Amount) GetCurrency() string { + if x != nil { + return x.Currency + } + return "" +} + +var File_coinbase_staking_orchestration_v1_common_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_common_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, + 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x5a, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1e, 0x92, 0x41, 0x1b, 0x32, 0x19, 0x54, 0x68, 0x65, 0x20, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x42, + 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, 0x68, 0x71, 0x2e, 0x6e, + 0x65, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_common_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_common_proto_rawDescData = file_coinbase_staking_orchestration_v1_common_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_common_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_common_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_common_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_common_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_coinbase_staking_orchestration_v1_common_proto_goTypes = []interface{}{ + (*Amount)(nil), // 0: coinbase.staking.orchestration.v1.Amount +} +var file_coinbase_staking_orchestration_v1_common_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_common_proto_init() } +func file_coinbase_staking_orchestration_v1_common_proto_init() { + if File_coinbase_staking_orchestration_v1_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Amount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_common_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_common_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_common_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_common_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_common_proto = out.File + file_coinbase_staking_orchestration_v1_common_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_common_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_common_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/ethereum.pb.go b/gen/go/coinbase/staking/orchestration/v1/ethereum.pb.go new file mode 100644 index 0000000..8ea6b25 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/ethereum.pb.go @@ -0,0 +1,296 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/ethereum.proto + +package v1 + +import ( + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Parameters required for ethereum staking +type EthereumStakingParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Parameters used for staking - dependant on type + // + // Types that are assignable to Parameters: + // + // *EthereumStakingParameters_NativeStakeParameters + Parameters isEthereumStakingParameters_Parameters `protobuf_oneof:"parameters"` +} + +func (x *EthereumStakingParameters) Reset() { + *x = EthereumStakingParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumStakingParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumStakingParameters) ProtoMessage() {} + +func (x *EthereumStakingParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumStakingParameters.ProtoReflect.Descriptor instead. +func (*EthereumStakingParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescGZIP(), []int{0} +} + +func (m *EthereumStakingParameters) GetParameters() isEthereumStakingParameters_Parameters { + if m != nil { + return m.Parameters + } + return nil +} + +func (x *EthereumStakingParameters) GetNativeStakeParameters() *EthereumNativeStakeParameters { + if x, ok := x.GetParameters().(*EthereumStakingParameters_NativeStakeParameters); ok { + return x.NativeStakeParameters + } + return nil +} + +type isEthereumStakingParameters_Parameters interface { + isEthereumStakingParameters_Parameters() +} + +type EthereumStakingParameters_NativeStakeParameters struct { + // Native staking parameters + NativeStakeParameters *EthereumNativeStakeParameters `protobuf:"bytes,2,opt,name=native_stake_parameters,json=nativeStakeParameters,proto3,oneof"` +} + +func (*EthereumStakingParameters_NativeStakeParameters) isEthereumStakingParameters_Parameters() {} + +// Parameters used for Native ethereum staking +type EthereumNativeStakeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Ethereum address used to withdrawal funds + WithdrawalAddress string `protobuf:"bytes,1,opt,name=withdrawal_address,json=withdrawalAddress,proto3" json:"withdrawal_address,omitempty"` + // Ethereum address used to accumulate fees + FeeRecipient string `protobuf:"bytes,2,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` + // Amount of ETH to stake in increments of 32 + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *EthereumNativeStakeParameters) Reset() { + *x = EthereumNativeStakeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumNativeStakeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumNativeStakeParameters) ProtoMessage() {} + +func (x *EthereumNativeStakeParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumNativeStakeParameters.ProtoReflect.Descriptor instead. +func (*EthereumNativeStakeParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescGZIP(), []int{1} +} + +func (x *EthereumNativeStakeParameters) GetWithdrawalAddress() string { + if x != nil { + return x.WithdrawalAddress + } + return "" +} + +func (x *EthereumNativeStakeParameters) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *EthereumNativeStakeParameters) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +var File_coinbase_staking_orchestration_v1_ethereum_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_ethereum_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, + 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xca, 0x01, 0x0a, 0x19, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x75, 0x6d, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x7a, 0x0a, 0x17, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, + 0x75, 0x6d, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x15, 0x6e, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x3a, 0x23, 0x92, 0x41, 0x20, 0x0a, 0x1e, 0x2a, 0x1c, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, + 0x6d, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x22, 0xef, 0x01, 0x0a, 0x1d, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, + 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x12, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x66, 0x65, 0x65, + 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, 0x92, 0x41, 0x25, + 0x0a, 0x23, 0x2a, 0x21, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x3a, 0x20, 0x4e, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x62, 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescData = file_coinbase_staking_orchestration_v1_ethereum_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_ethereum_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_coinbase_staking_orchestration_v1_ethereum_proto_goTypes = []interface{}{ + (*EthereumStakingParameters)(nil), // 0: coinbase.staking.orchestration.v1.EthereumStakingParameters + (*EthereumNativeStakeParameters)(nil), // 1: coinbase.staking.orchestration.v1.EthereumNativeStakeParameters + (*Amount)(nil), // 2: coinbase.staking.orchestration.v1.Amount +} +var file_coinbase_staking_orchestration_v1_ethereum_proto_depIdxs = []int32{ + 1, // 0: coinbase.staking.orchestration.v1.EthereumStakingParameters.native_stake_parameters:type_name -> coinbase.staking.orchestration.v1.EthereumNativeStakeParameters + 2, // 1: coinbase.staking.orchestration.v1.EthereumNativeStakeParameters.amount:type_name -> coinbase.staking.orchestration.v1.Amount + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_ethereum_proto_init() } +func file_coinbase_staking_orchestration_v1_ethereum_proto_init() { + if File_coinbase_staking_orchestration_v1_ethereum_proto != nil { + return + } + file_coinbase_staking_orchestration_v1_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumStakingParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumNativeStakeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*EthereumStakingParameters_NativeStakeParameters)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_ethereum_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_ethereum_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_ethereum_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_ethereum_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_ethereum_proto = out.File + file_coinbase_staking_orchestration_v1_ethereum_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_ethereum_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_ethereum_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/ethereum_kiln.pb.go b/gen/go/coinbase/staking/orchestration/v1/ethereum_kiln.pb.go new file mode 100644 index 0000000..90c3380 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/ethereum_kiln.pb.go @@ -0,0 +1,760 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/ethereum_kiln.proto + +package v1 + +import ( + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The parameters required for the stake action on Ethereum Kiln. +type EthereumKilnStakeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address you wish to stake from. + StakerAddress string `protobuf:"bytes,1,opt,name=staker_address,json=stakerAddress,proto3" json:"staker_address,omitempty"` + // The address of the integrator contract. + IntegratorContractAddress string `protobuf:"bytes,2,opt,name=integrator_contract_address,json=integratorContractAddress,proto3" json:"integrator_contract_address,omitempty"` + // The amount of Ethereum to stake in wei. + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *EthereumKilnStakeParameters) Reset() { + *x = EthereumKilnStakeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumKilnStakeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumKilnStakeParameters) ProtoMessage() {} + +func (x *EthereumKilnStakeParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumKilnStakeParameters.ProtoReflect.Descriptor instead. +func (*EthereumKilnStakeParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescGZIP(), []int{0} +} + +func (x *EthereumKilnStakeParameters) GetStakerAddress() string { + if x != nil { + return x.StakerAddress + } + return "" +} + +func (x *EthereumKilnStakeParameters) GetIntegratorContractAddress() string { + if x != nil { + return x.IntegratorContractAddress + } + return "" +} + +func (x *EthereumKilnStakeParameters) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +// The parameters required for the unstake action on Ethereum Kiln. +type EthereumKilnUnstakeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address you wish to unstake from. + StakerAddress string `protobuf:"bytes,1,opt,name=staker_address,json=stakerAddress,proto3" json:"staker_address,omitempty"` + // The address of the integrator contract. + IntegratorContractAddress string `protobuf:"bytes,2,opt,name=integrator_contract_address,json=integratorContractAddress,proto3" json:"integrator_contract_address,omitempty"` + // The amount of Ethereum to unstake in wei. + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *EthereumKilnUnstakeParameters) Reset() { + *x = EthereumKilnUnstakeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumKilnUnstakeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumKilnUnstakeParameters) ProtoMessage() {} + +func (x *EthereumKilnUnstakeParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumKilnUnstakeParameters.ProtoReflect.Descriptor instead. +func (*EthereumKilnUnstakeParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescGZIP(), []int{1} +} + +func (x *EthereumKilnUnstakeParameters) GetStakerAddress() string { + if x != nil { + return x.StakerAddress + } + return "" +} + +func (x *EthereumKilnUnstakeParameters) GetIntegratorContractAddress() string { + if x != nil { + return x.IntegratorContractAddress + } + return "" +} + +func (x *EthereumKilnUnstakeParameters) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +// The parameters required for the claim stake action on Ethereum Kiln. +type EthereumKilnClaimStakeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address you wish to claim stake for. + StakerAddress string `protobuf:"bytes,1,opt,name=staker_address,json=stakerAddress,proto3" json:"staker_address,omitempty"` + // The address of the integrator contract + IntegratorContractAddress string `protobuf:"bytes,2,opt,name=integrator_contract_address,json=integratorContractAddress,proto3" json:"integrator_contract_address,omitempty"` +} + +func (x *EthereumKilnClaimStakeParameters) Reset() { + *x = EthereumKilnClaimStakeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumKilnClaimStakeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumKilnClaimStakeParameters) ProtoMessage() {} + +func (x *EthereumKilnClaimStakeParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumKilnClaimStakeParameters.ProtoReflect.Descriptor instead. +func (*EthereumKilnClaimStakeParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescGZIP(), []int{2} +} + +func (x *EthereumKilnClaimStakeParameters) GetStakerAddress() string { + if x != nil { + return x.StakerAddress + } + return "" +} + +func (x *EthereumKilnClaimStakeParameters) GetIntegratorContractAddress() string { + if x != nil { + return x.IntegratorContractAddress + } + return "" +} + +// The parameters needed for staking on Ethereum via Kiln. +type EthereumKilnStakingParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Parameters: + // + // *EthereumKilnStakingParameters_StakeParameters + // *EthereumKilnStakingParameters_UnstakeParameters + // *EthereumKilnStakingParameters_ClaimStakeParameters + Parameters isEthereumKilnStakingParameters_Parameters `protobuf_oneof:"parameters"` +} + +func (x *EthereumKilnStakingParameters) Reset() { + *x = EthereumKilnStakingParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumKilnStakingParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumKilnStakingParameters) ProtoMessage() {} + +func (x *EthereumKilnStakingParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumKilnStakingParameters.ProtoReflect.Descriptor instead. +func (*EthereumKilnStakingParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescGZIP(), []int{3} +} + +func (m *EthereumKilnStakingParameters) GetParameters() isEthereumKilnStakingParameters_Parameters { + if m != nil { + return m.Parameters + } + return nil +} + +func (x *EthereumKilnStakingParameters) GetStakeParameters() *EthereumKilnStakeParameters { + if x, ok := x.GetParameters().(*EthereumKilnStakingParameters_StakeParameters); ok { + return x.StakeParameters + } + return nil +} + +func (x *EthereumKilnStakingParameters) GetUnstakeParameters() *EthereumKilnUnstakeParameters { + if x, ok := x.GetParameters().(*EthereumKilnStakingParameters_UnstakeParameters); ok { + return x.UnstakeParameters + } + return nil +} + +func (x *EthereumKilnStakingParameters) GetClaimStakeParameters() *EthereumKilnClaimStakeParameters { + if x, ok := x.GetParameters().(*EthereumKilnStakingParameters_ClaimStakeParameters); ok { + return x.ClaimStakeParameters + } + return nil +} + +type isEthereumKilnStakingParameters_Parameters interface { + isEthereumKilnStakingParameters_Parameters() +} + +type EthereumKilnStakingParameters_StakeParameters struct { + // The parameters for stake action on Ethereum Kiln. + StakeParameters *EthereumKilnStakeParameters `protobuf:"bytes,1,opt,name=stake_parameters,json=stakeParameters,proto3,oneof"` +} + +type EthereumKilnStakingParameters_UnstakeParameters struct { + // The parameters for unstake action on Ethereum Kiln. + UnstakeParameters *EthereumKilnUnstakeParameters `protobuf:"bytes,2,opt,name=unstake_parameters,json=unstakeParameters,proto3,oneof"` +} + +type EthereumKilnStakingParameters_ClaimStakeParameters struct { + // The parameters for claim stake action on Ethereum Kiln. + ClaimStakeParameters *EthereumKilnClaimStakeParameters `protobuf:"bytes,4,opt,name=claim_stake_parameters,json=claimStakeParameters,proto3,oneof"` +} + +func (*EthereumKilnStakingParameters_StakeParameters) isEthereumKilnStakingParameters_Parameters() {} + +func (*EthereumKilnStakingParameters_UnstakeParameters) isEthereumKilnStakingParameters_Parameters() { +} + +func (*EthereumKilnStakingParameters_ClaimStakeParameters) isEthereumKilnStakingParameters_Parameters() { +} + +// The protocol specific parameters required for fetching a staking context. +type EthereumKilnStakingContextParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Integrator contract address. + IntegratorContractAddress string `protobuf:"bytes,1,opt,name=integrator_contract_address,json=integratorContractAddress,proto3" json:"integrator_contract_address,omitempty"` +} + +func (x *EthereumKilnStakingContextParameters) Reset() { + *x = EthereumKilnStakingContextParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumKilnStakingContextParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumKilnStakingContextParameters) ProtoMessage() {} + +func (x *EthereumKilnStakingContextParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumKilnStakingContextParameters.ProtoReflect.Descriptor instead. +func (*EthereumKilnStakingContextParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescGZIP(), []int{4} +} + +func (x *EthereumKilnStakingContextParameters) GetIntegratorContractAddress() string { + if x != nil { + return x.IntegratorContractAddress + } + return "" +} + +// The protocol specific details for an Ethereum Kiln staking context. +type EthereumKilnStakingContextDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Ethereum balance of the address. + // This can be used to gate the stake action to make sure the requested stake amount + // is less than ethereum_balance. + EthereumBalance *Amount `protobuf:"bytes,1,opt,name=ethereum_balance,json=ethereumBalance,proto3" json:"ethereum_balance,omitempty"` + // The number of integrator shares owned by the address. + IntegratorShareBalance *Amount `protobuf:"bytes,2,opt,name=integrator_share_balance,json=integratorShareBalance,proto3" json:"integrator_share_balance,omitempty"` + // The total Ethereum you can exchange for your integrator shares. + // This can be used to gate the unstake action to make sure the requested unstake amount + // is less than integrator_share_underlying_balance + IntegratorShareUnderlyingBalance *Amount `protobuf:"bytes,3,opt,name=integrator_share_underlying_balance,json=integratorShareUnderlyingBalance,proto3" json:"integrator_share_underlying_balance,omitempty"` + // The total amount of Ethereum you can redeem for all non-claimed vPool shares. + // This along with the condition total_shares_pending_exit == fulfillable_share_count + // can be used to gate the claim_stake action. + TotalExitableEth *Amount `protobuf:"bytes,4,opt,name=total_exitable_eth,json=totalExitableEth,proto3" json:"total_exitable_eth,omitempty"` + // The number of vPool shares are eligible to receive now or at a later point in time. + TotalSharesPendingExit *Amount `protobuf:"bytes,5,opt,name=total_shares_pending_exit,json=totalSharesPendingExit,proto3" json:"total_shares_pending_exit,omitempty"` + // The number of vPool shares you are able to claim now. + FulfillableShareCount *Amount `protobuf:"bytes,6,opt,name=fulfillable_share_count,json=fulfillableShareCount,proto3" json:"fulfillable_share_count,omitempty"` +} + +func (x *EthereumKilnStakingContextDetails) Reset() { + *x = EthereumKilnStakingContextDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EthereumKilnStakingContextDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EthereumKilnStakingContextDetails) ProtoMessage() {} + +func (x *EthereumKilnStakingContextDetails) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EthereumKilnStakingContextDetails.ProtoReflect.Descriptor instead. +func (*EthereumKilnStakingContextDetails) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescGZIP(), []int{5} +} + +func (x *EthereumKilnStakingContextDetails) GetEthereumBalance() *Amount { + if x != nil { + return x.EthereumBalance + } + return nil +} + +func (x *EthereumKilnStakingContextDetails) GetIntegratorShareBalance() *Amount { + if x != nil { + return x.IntegratorShareBalance + } + return nil +} + +func (x *EthereumKilnStakingContextDetails) GetIntegratorShareUnderlyingBalance() *Amount { + if x != nil { + return x.IntegratorShareUnderlyingBalance + } + return nil +} + +func (x *EthereumKilnStakingContextDetails) GetTotalExitableEth() *Amount { + if x != nil { + return x.TotalExitableEth + } + return nil +} + +func (x *EthereumKilnStakingContextDetails) GetTotalSharesPendingExit() *Amount { + if x != nil { + return x.TotalSharesPendingExit + } + return nil +} + +func (x *EthereumKilnStakingContextDetails) GetFulfillableShareCount() *Amount { + if x != nil { + return x.FulfillableShareCount + } + return nil +} + +var File_coinbase_staking_orchestration_v1_ethereum_kiln_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDesc = []byte{ + 0x0a, 0x35, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x6b, 0x69, 0x6c, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, + 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfd, 0x01, 0x0a, 0x1b, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x1b, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x19, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x25, 0x92, 0x41, 0x22, 0x0a, 0x20, 0x2a, 0x1e, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x1d, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x55, 0x6e, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, + 0x0e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x1b, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x19, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x27, 0x92, 0x41, 0x24, 0x0a, 0x22, 0x2a, 0x20, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x3a, 0x20, 0x55, 0x6e, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, + 0xc0, 0x01, 0x0a, 0x20, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x43, 0x0a, 0x1b, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x19, 0x69, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x2b, 0x92, 0x41, 0x28, 0x0a, 0x26, 0x2a, 0x24, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x3a, 0x20, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x22, 0xb9, 0x03, 0x0a, 0x1d, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, + 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x6b, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, + 0x52, 0x0f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x71, 0x0a, 0x12, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x55, 0x6e, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, + 0x00, 0x52, 0x11, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x7b, 0x0a, 0x16, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x73, 0x74, + 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, + 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x3a, 0x27, 0x92, 0x41, 0x24, 0x0a, 0x22, 0x2a, 0x20, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, + 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x97, + 0x01, 0x0a, 0x24, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3e, 0x0a, 0x1b, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x2f, 0x92, 0x41, 0x2c, 0x0a, 0x2a, 0x2a, 0x28, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x3a, 0x20, 0x53, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xa8, 0x05, 0x0a, 0x21, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x54, + 0x0a, 0x10, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x63, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x23, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x69, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x45, 0x78, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x74, 0x68, 0x12, 0x64, 0x0a, 0x19, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x16, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, + 0x69, 0x74, 0x12, 0x61, 0x0a, 0x17, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x15, + 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2c, 0x92, 0x41, 0x29, 0x0a, 0x27, 0x2a, 0x25, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, + 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescData = file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_goTypes = []interface{}{ + (*EthereumKilnStakeParameters)(nil), // 0: coinbase.staking.orchestration.v1.EthereumKilnStakeParameters + (*EthereumKilnUnstakeParameters)(nil), // 1: coinbase.staking.orchestration.v1.EthereumKilnUnstakeParameters + (*EthereumKilnClaimStakeParameters)(nil), // 2: coinbase.staking.orchestration.v1.EthereumKilnClaimStakeParameters + (*EthereumKilnStakingParameters)(nil), // 3: coinbase.staking.orchestration.v1.EthereumKilnStakingParameters + (*EthereumKilnStakingContextParameters)(nil), // 4: coinbase.staking.orchestration.v1.EthereumKilnStakingContextParameters + (*EthereumKilnStakingContextDetails)(nil), // 5: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails + (*Amount)(nil), // 6: coinbase.staking.orchestration.v1.Amount +} +var file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_depIdxs = []int32{ + 6, // 0: coinbase.staking.orchestration.v1.EthereumKilnStakeParameters.amount:type_name -> coinbase.staking.orchestration.v1.Amount + 6, // 1: coinbase.staking.orchestration.v1.EthereumKilnUnstakeParameters.amount:type_name -> coinbase.staking.orchestration.v1.Amount + 0, // 2: coinbase.staking.orchestration.v1.EthereumKilnStakingParameters.stake_parameters:type_name -> coinbase.staking.orchestration.v1.EthereumKilnStakeParameters + 1, // 3: coinbase.staking.orchestration.v1.EthereumKilnStakingParameters.unstake_parameters:type_name -> coinbase.staking.orchestration.v1.EthereumKilnUnstakeParameters + 2, // 4: coinbase.staking.orchestration.v1.EthereumKilnStakingParameters.claim_stake_parameters:type_name -> coinbase.staking.orchestration.v1.EthereumKilnClaimStakeParameters + 6, // 5: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails.ethereum_balance:type_name -> coinbase.staking.orchestration.v1.Amount + 6, // 6: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails.integrator_share_balance:type_name -> coinbase.staking.orchestration.v1.Amount + 6, // 7: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails.integrator_share_underlying_balance:type_name -> coinbase.staking.orchestration.v1.Amount + 6, // 8: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails.total_exitable_eth:type_name -> coinbase.staking.orchestration.v1.Amount + 6, // 9: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails.total_shares_pending_exit:type_name -> coinbase.staking.orchestration.v1.Amount + 6, // 10: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails.fulfillable_share_count:type_name -> coinbase.staking.orchestration.v1.Amount + 11, // [11:11] is the sub-list for method output_type + 11, // [11:11] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_init() } +func file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_init() { + if File_coinbase_staking_orchestration_v1_ethereum_kiln_proto != nil { + return + } + file_coinbase_staking_orchestration_v1_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumKilnStakeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumKilnUnstakeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumKilnClaimStakeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumKilnStakingParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumKilnStakingContextParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthereumKilnStakingContextDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*EthereumKilnStakingParameters_StakeParameters)(nil), + (*EthereumKilnStakingParameters_UnstakeParameters)(nil), + (*EthereumKilnStakingParameters_ClaimStakeParameters)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_ethereum_kiln_proto = out.File + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/network.pb.go b/gen/go/coinbase/staking/orchestration/v1/network.pb.go new file mode 100644 index 0000000..472adb0 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/network.pb.go @@ -0,0 +1,302 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/network.proto + +package v1 + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// A Network resource represents a blockchain network e.g. mainnet, testnet, etc. +type Network struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the Network. + // Format: protocols/{protocolName}/networks/{networkName} + // Ex: protocols/ethereum_kiln/networks/holesky + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Network) Reset() { + *x = Network{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_network_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Network) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Network) ProtoMessage() {} + +func (x *Network) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_network_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Network.ProtoReflect.Descriptor instead. +func (*Network) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_network_proto_rawDescGZIP(), []int{0} +} + +func (x *Network) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request message for ListNetworks. +type ListNetworksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the parent that owns + // the collection of networks. + // Format: protocols/{protocol} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` +} + +func (x *ListNetworksRequest) Reset() { + *x = ListNetworksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_network_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListNetworksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworksRequest) ProtoMessage() {} + +func (x *ListNetworksRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_network_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworksRequest.ProtoReflect.Descriptor instead. +func (*ListNetworksRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_network_proto_rawDescGZIP(), []int{1} +} + +func (x *ListNetworksRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +// The response message for ListNetworks. +type ListNetworksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of networks. + Networks []*Network `protobuf:"bytes,1,rep,name=networks,proto3" json:"networks,omitempty"` +} + +func (x *ListNetworksResponse) Reset() { + *x = ListNetworksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_network_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListNetworksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworksResponse) ProtoMessage() {} + +func (x *ListNetworksResponse) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_network_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworksResponse.ProtoReflect.Descriptor instead. +func (*ListNetworksResponse) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_network_proto_rawDescGZIP(), []int{2} +} + +func (x *ListNetworksResponse) GetNetworks() []*Network { + if x != nil { + return x.Networks + } + return nil +} + +var File_coinbase_staking_orchestration_v1_network_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_network_proto_rawDesc = []byte{ + 0x0a, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x82, 0x01, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x3a, 0x5d, 0xea, 0x41, 0x5a, 0x0a, 0x1c, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x27, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x2f, 0x7b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x7d, 0x2a, 0x08, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x32, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4a, + 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x53, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x1e, 0x12, 0x1c, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x5e, 0x0a, 0x14, 0x4c, 0x69, + 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, + 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_network_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_network_proto_rawDescData = file_coinbase_staking_orchestration_v1_network_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_network_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_network_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_network_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_network_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_network_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_network_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_coinbase_staking_orchestration_v1_network_proto_goTypes = []interface{}{ + (*Network)(nil), // 0: coinbase.staking.orchestration.v1.Network + (*ListNetworksRequest)(nil), // 1: coinbase.staking.orchestration.v1.ListNetworksRequest + (*ListNetworksResponse)(nil), // 2: coinbase.staking.orchestration.v1.ListNetworksResponse +} +var file_coinbase_staking_orchestration_v1_network_proto_depIdxs = []int32{ + 0, // 0: coinbase.staking.orchestration.v1.ListNetworksResponse.networks:type_name -> coinbase.staking.orchestration.v1.Network + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_network_proto_init() } +func file_coinbase_staking_orchestration_v1_network_proto_init() { + if File_coinbase_staking_orchestration_v1_network_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_network_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Network); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_network_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListNetworksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_network_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListNetworksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_network_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_network_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_network_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_network_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_network_proto = out.File + file_coinbase_staking_orchestration_v1_network_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_network_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_network_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/network_aip.go b/gen/go/coinbase/staking/orchestration/v1/network_aip.go new file mode 100644 index 0000000..684b698 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/network_aip.go @@ -0,0 +1,78 @@ +// Code generated by protoc-gen-go-aip. DO NOT EDIT. +// +// versions: +// protoc-gen-go-aip development +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/network.proto + +package v1 + +import ( + fmt "fmt" + resourcename "go.einride.tech/aip/resourcename" + strings "strings" +) + +type NetworkResourceName struct { + Protocol string + Network string +} + +func (n ProtocolResourceName) NetworkResourceName( + network string, +) NetworkResourceName { + return NetworkResourceName{ + Protocol: n.Protocol, + Network: network, + } +} + +func (n NetworkResourceName) Validate() error { + if n.Protocol == "" { + return fmt.Errorf("protocol: empty") + } + if strings.IndexByte(n.Protocol, '/') != -1 { + return fmt.Errorf("protocol: contains illegal character '/'") + } + if n.Network == "" { + return fmt.Errorf("network: empty") + } + if strings.IndexByte(n.Network, '/') != -1 { + return fmt.Errorf("network: contains illegal character '/'") + } + return nil +} + +func (n NetworkResourceName) ContainsWildcard() bool { + return false || n.Protocol == "-" || n.Network == "-" +} + +func (n NetworkResourceName) String() string { + return resourcename.Sprint( + "protocols/{protocol}/networks/{network}", + n.Protocol, + n.Network, + ) +} + +func (n NetworkResourceName) MarshalString() (string, error) { + if err := n.Validate(); err != nil { + return "", err + } + return n.String(), nil +} + +func (n *NetworkResourceName) UnmarshalString(name string) error { + return resourcename.Sscan( + name, + "protocols/{protocol}/networks/{network}", + &n.Protocol, + &n.Network, + ) +} + +func (n NetworkResourceName) ProtocolResourceName() ProtocolResourceName { + return ProtocolResourceName{ + Protocol: n.Protocol, + } +} diff --git a/gen/go/coinbase/staking/orchestration/v1/protocol.pb.go b/gen/go/coinbase/staking/orchestration/v1/protocol.pb.go new file mode 100644 index 0000000..0d92de0 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/protocol.pb.go @@ -0,0 +1,283 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/protocol.proto + +package v1 + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// A Protocol resource (e.g. ethereum_kiln, solana etc.). +type Protocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the Protocol. + // Format: protocols/{protocolName} + // Ex: protocols/ethereum_kiln + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Protocol) Reset() { + *x = Protocol{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Protocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Protocol) ProtoMessage() {} + +func (x *Protocol) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Protocol.ProtoReflect.Descriptor instead. +func (*Protocol) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_protocol_proto_rawDescGZIP(), []int{0} +} + +func (x *Protocol) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request message for ListProtocols. +type ListProtocolsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListProtocolsRequest) Reset() { + *x = ListProtocolsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProtocolsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProtocolsRequest) ProtoMessage() {} + +func (x *ListProtocolsRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListProtocolsRequest.ProtoReflect.Descriptor instead. +func (*ListProtocolsRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_protocol_proto_rawDescGZIP(), []int{1} +} + +// The response message for ListProtocols. +type ListProtocolsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of protocols. + Protocols []*Protocol `protobuf:"bytes,1,rep,name=protocols,proto3" json:"protocols,omitempty"` +} + +func (x *ListProtocolsResponse) Reset() { + *x = ListProtocolsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProtocolsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProtocolsResponse) ProtoMessage() {} + +func (x *ListProtocolsResponse) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListProtocolsResponse.ProtoReflect.Descriptor instead. +func (*ListProtocolsResponse) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_protocol_proto_rawDescGZIP(), []int{2} +} + +func (x *ListProtocolsResponse) GetProtocols() []*Protocol { + if x != nil { + return x.Protocols + } + return nil +} + +var File_coinbase_staking_orchestration_v1_protocol_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_protocol_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x6d, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x3a, 0x4d, 0xea, 0x41, 0x4a, 0x0a, 0x1d, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x7d, 0x2a, 0x09, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x32, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, + 0x16, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x62, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x49, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x48, 0x5a, 0x46, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, + 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_protocol_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_protocol_proto_rawDescData = file_coinbase_staking_orchestration_v1_protocol_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_protocol_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_protocol_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_protocol_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_protocol_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_protocol_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_coinbase_staking_orchestration_v1_protocol_proto_goTypes = []interface{}{ + (*Protocol)(nil), // 0: coinbase.staking.orchestration.v1.Protocol + (*ListProtocolsRequest)(nil), // 1: coinbase.staking.orchestration.v1.ListProtocolsRequest + (*ListProtocolsResponse)(nil), // 2: coinbase.staking.orchestration.v1.ListProtocolsResponse +} +var file_coinbase_staking_orchestration_v1_protocol_proto_depIdxs = []int32{ + 0, // 0: coinbase.staking.orchestration.v1.ListProtocolsResponse.protocols:type_name -> coinbase.staking.orchestration.v1.Protocol + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_protocol_proto_init() } +func file_coinbase_staking_orchestration_v1_protocol_proto_init() { + if File_coinbase_staking_orchestration_v1_protocol_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Protocol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProtocolsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProtocolsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_protocol_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_protocol_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_protocol_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_protocol_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_protocol_proto = out.File + file_coinbase_staking_orchestration_v1_protocol_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_protocol_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_protocol_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/protocol_aip.go b/gen/go/coinbase/staking/orchestration/v1/protocol_aip.go new file mode 100644 index 0000000..302c422 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/protocol_aip.go @@ -0,0 +1,54 @@ +// Code generated by protoc-gen-go-aip. DO NOT EDIT. +// +// versions: +// protoc-gen-go-aip development +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/protocol.proto + +package v1 + +import ( + fmt "fmt" + resourcename "go.einride.tech/aip/resourcename" + strings "strings" +) + +type ProtocolResourceName struct { + Protocol string +} + +func (n ProtocolResourceName) Validate() error { + if n.Protocol == "" { + return fmt.Errorf("protocol: empty") + } + if strings.IndexByte(n.Protocol, '/') != -1 { + return fmt.Errorf("protocol: contains illegal character '/'") + } + return nil +} + +func (n ProtocolResourceName) ContainsWildcard() bool { + return false || n.Protocol == "-" +} + +func (n ProtocolResourceName) String() string { + return resourcename.Sprint( + "protocols/{protocol}", + n.Protocol, + ) +} + +func (n ProtocolResourceName) MarshalString() (string, error) { + if err := n.Validate(); err != nil { + return "", err + } + return n.String(), nil +} + +func (n *ProtocolResourceName) UnmarshalString(name string) error { + return resourcename.Sscan( + name, + "protocols/{protocol}", + &n.Protocol, + ) +} diff --git a/gen/go/coinbase/staking/orchestration/v1/solana.pb.go b/gen/go/coinbase/staking/orchestration/v1/solana.pb.go new file mode 100644 index 0000000..5ac721d --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/solana.pb.go @@ -0,0 +1,1038 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/solana.proto + +package v1 + +import ( + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Represents the different states a stake account balance can have. +// Used to check to see if stake is actively earning rewards or ready to be withdrawn. +type StakeAccount_BalanceState int32 + +const ( + // The balance is not known. + StakeAccount_BALANCE_STATE_UNSPECIFIED StakeAccount_BalanceState = 0 + // The balance is not actively staking. + StakeAccount_BALANCE_STATE_INACTIVE StakeAccount_BalanceState = 1 + // The balance is in a warm up period and will activate in the next epoch. + StakeAccount_BALANCE_STATE_ACTIVATING StakeAccount_BalanceState = 2 + // The balance is actively staking and earning rewards. + StakeAccount_BALANCE_STATE_ACTIVE StakeAccount_BalanceState = 3 + // The balance is in a cool down period and will be deactivated in the next epoch. + StakeAccount_BALANCE_STATE_DEACTIVATING StakeAccount_BalanceState = 4 +) + +// Enum value maps for StakeAccount_BalanceState. +var ( + StakeAccount_BalanceState_name = map[int32]string{ + 0: "BALANCE_STATE_UNSPECIFIED", + 1: "BALANCE_STATE_INACTIVE", + 2: "BALANCE_STATE_ACTIVATING", + 3: "BALANCE_STATE_ACTIVE", + 4: "BALANCE_STATE_DEACTIVATING", + } + StakeAccount_BalanceState_value = map[string]int32{ + "BALANCE_STATE_UNSPECIFIED": 0, + "BALANCE_STATE_INACTIVE": 1, + "BALANCE_STATE_ACTIVATING": 2, + "BALANCE_STATE_ACTIVE": 3, + "BALANCE_STATE_DEACTIVATING": 4, + } +) + +func (x StakeAccount_BalanceState) Enum() *StakeAccount_BalanceState { + p := new(StakeAccount_BalanceState) + *p = x + return p +} + +func (x StakeAccount_BalanceState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StakeAccount_BalanceState) Descriptor() protoreflect.EnumDescriptor { + return file_coinbase_staking_orchestration_v1_solana_proto_enumTypes[0].Descriptor() +} + +func (StakeAccount_BalanceState) Type() protoreflect.EnumType { + return &file_coinbase_staking_orchestration_v1_solana_proto_enumTypes[0] +} + +func (x StakeAccount_BalanceState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StakeAccount_BalanceState.Descriptor instead. +func (StakeAccount_BalanceState) EnumDescriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{6, 0} +} + +// A prioritization fee that can be added to a Solana transaction. +type PriorityFee struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of compute units a transaction is allowed to consume. + ComputeUnitLimit int64 `protobuf:"varint,1,opt,name=compute_unit_limit,json=computeUnitLimit,proto3" json:"compute_unit_limit,omitempty"` + // The price to pay per compute unit. + UnitPrice int64 `protobuf:"varint,2,opt,name=unit_price,json=unitPrice,proto3" json:"unit_price,omitempty"` +} + +func (x *PriorityFee) Reset() { + *x = PriorityFee{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PriorityFee) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PriorityFee) ProtoMessage() {} + +func (x *PriorityFee) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PriorityFee.ProtoReflect.Descriptor instead. +func (*PriorityFee) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{0} +} + +func (x *PriorityFee) GetComputeUnitLimit() int64 { + if x != nil { + return x.ComputeUnitLimit + } + return 0 +} + +func (x *PriorityFee) GetUnitPrice() int64 { + if x != nil { + return x.UnitPrice + } + return 0 +} + +// The parameters required to perform a stake operation on Solana. +type SolanaStakeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address where the funds are coming from to stake. + WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` + // The address of the validator. + ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + // The amount of Solana to stake in lamports. (1 lamport = 0.000000001 SOL) + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // The option to set a priority fee for the transaction. + PriorityFee *PriorityFee `protobuf:"bytes,4,opt,name=priority_fee,json=priorityFee,proto3" json:"priority_fee,omitempty"` +} + +func (x *SolanaStakeParameters) Reset() { + *x = SolanaStakeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SolanaStakeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SolanaStakeParameters) ProtoMessage() {} + +func (x *SolanaStakeParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SolanaStakeParameters.ProtoReflect.Descriptor instead. +func (*SolanaStakeParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{1} +} + +func (x *SolanaStakeParameters) GetWalletAddress() string { + if x != nil { + return x.WalletAddress + } + return "" +} + +func (x *SolanaStakeParameters) GetValidatorAddress() string { + if x != nil { + return x.ValidatorAddress + } + return "" +} + +func (x *SolanaStakeParameters) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *SolanaStakeParameters) GetPriorityFee() *PriorityFee { + if x != nil { + return x.PriorityFee + } + return nil +} + +// The parameters required to perform a unstake operation on Solana. +type SolanaUnstakeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address which is the signing authority to unstake. + WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` + // The address of the stake account to unstake from. + StakeAccountAddress string `protobuf:"bytes,2,opt,name=stake_account_address,json=stakeAccountAddress,proto3" json:"stake_account_address,omitempty"` + // The amount of Solana to unstake in lamports. (1 lamport = 0.000000001 SOL) + Amount *Amount `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // The option to set a priority fee for the transaction. + PriorityFee *PriorityFee `protobuf:"bytes,4,opt,name=priority_fee,json=priorityFee,proto3" json:"priority_fee,omitempty"` +} + +func (x *SolanaUnstakeParameters) Reset() { + *x = SolanaUnstakeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SolanaUnstakeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SolanaUnstakeParameters) ProtoMessage() {} + +func (x *SolanaUnstakeParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SolanaUnstakeParameters.ProtoReflect.Descriptor instead. +func (*SolanaUnstakeParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{2} +} + +func (x *SolanaUnstakeParameters) GetWalletAddress() string { + if x != nil { + return x.WalletAddress + } + return "" +} + +func (x *SolanaUnstakeParameters) GetStakeAccountAddress() string { + if x != nil { + return x.StakeAccountAddress + } + return "" +} + +func (x *SolanaUnstakeParameters) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *SolanaUnstakeParameters) GetPriorityFee() *PriorityFee { + if x != nil { + return x.PriorityFee + } + return nil +} + +// The parameters required to perform a claim stake operation on Solana. +type SolanaClaimStakeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address which is the signing authority to claim stake. + WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` + // The address of the stake account to claim stake from. + StakeAccountAddress string `protobuf:"bytes,2,opt,name=stake_account_address,json=stakeAccountAddress,proto3" json:"stake_account_address,omitempty"` + // The option to set a priority fee for the transaction. + PriorityFee *PriorityFee `protobuf:"bytes,3,opt,name=priority_fee,json=priorityFee,proto3" json:"priority_fee,omitempty"` +} + +func (x *SolanaClaimStakeParameters) Reset() { + *x = SolanaClaimStakeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SolanaClaimStakeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SolanaClaimStakeParameters) ProtoMessage() {} + +func (x *SolanaClaimStakeParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SolanaClaimStakeParameters.ProtoReflect.Descriptor instead. +func (*SolanaClaimStakeParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{3} +} + +func (x *SolanaClaimStakeParameters) GetWalletAddress() string { + if x != nil { + return x.WalletAddress + } + return "" +} + +func (x *SolanaClaimStakeParameters) GetStakeAccountAddress() string { + if x != nil { + return x.StakeAccountAddress + } + return "" +} + +func (x *SolanaClaimStakeParameters) GetPriorityFee() *PriorityFee { + if x != nil { + return x.PriorityFee + } + return nil +} + +// The protocol specific parameters required for fetching a staking context. +type SolanaStakingContextParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SolanaStakingContextParameters) Reset() { + *x = SolanaStakingContextParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SolanaStakingContextParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SolanaStakingContextParameters) ProtoMessage() {} + +func (x *SolanaStakingContextParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SolanaStakingContextParameters.ProtoReflect.Descriptor instead. +func (*SolanaStakingContextParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{4} +} + +// The protocol specific details for a Solana staking context. +type SolanaStakingContextDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The total balance of the main wallet address (system account). + // Used to check the balance for any future staking or transaction to send. + Balance *Amount `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` + // The current epoch that the Solana blockchain is in. + // Used as a frame of reference for future stake activations and deactivations. + CurrentEpoch int64 `protobuf:"varint,2,opt,name=current_epoch,json=currentEpoch,proto3" json:"current_epoch,omitempty"` + // How much of the epoch has passed as a percentage. + // Used to inform how much time is left before a stake is activated or deactivated. + EpochCompletionPercentage string `protobuf:"bytes,3,opt,name=epoch_completion_percentage,json=epochCompletionPercentage,proto3" json:"epoch_completion_percentage,omitempty"` + // The list of staking accounts that are linked to the main wallet address (system account). + // Used to check for statuses and balances of all stake accounts related to the main wallet address that + // they're linked to. + StakeAccounts []*StakeAccount `protobuf:"bytes,4,rep,name=stake_accounts,json=stakeAccounts,proto3" json:"stake_accounts,omitempty"` +} + +func (x *SolanaStakingContextDetails) Reset() { + *x = SolanaStakingContextDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SolanaStakingContextDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SolanaStakingContextDetails) ProtoMessage() {} + +func (x *SolanaStakingContextDetails) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SolanaStakingContextDetails.ProtoReflect.Descriptor instead. +func (*SolanaStakingContextDetails) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{5} +} + +func (x *SolanaStakingContextDetails) GetBalance() *Amount { + if x != nil { + return x.Balance + } + return nil +} + +func (x *SolanaStakingContextDetails) GetCurrentEpoch() int64 { + if x != nil { + return x.CurrentEpoch + } + return 0 +} + +func (x *SolanaStakingContextDetails) GetEpochCompletionPercentage() string { + if x != nil { + return x.EpochCompletionPercentage + } + return "" +} + +func (x *SolanaStakingContextDetails) GetStakeAccounts() []*StakeAccount { + if x != nil { + return x.StakeAccounts + } + return nil +} + +// The balance information for a stake account. +type StakeAccount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address of the stake account. + // Used to hold the staked funds transferred over from the main wallet. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The bonded balance in lamports on the stake account (rent is not included in bonded amount). + // Used to check the amount that is currently staked. + BondedStake *Amount `protobuf:"bytes,2,opt,name=bonded_stake,json=bondedStake,proto3" json:"bonded_stake,omitempty"` + // The rent amount for the stake account in lamports. + // Used to highlight the amount used as the rent to maintain the address on the Solana blockchain. + RentReserve *Amount `protobuf:"bytes,3,opt,name=rent_reserve,json=rentReserve,proto3" json:"rent_reserve,omitempty"` + // The total balance on the address in lamports. + // Used to check the total balance for the stake account. + Balance *Amount `protobuf:"bytes,4,opt,name=balance,proto3" json:"balance,omitempty"` + // The balance state of the stake account. + // Used to show what state the currently staked funds are in. + BalanceState StakeAccount_BalanceState `protobuf:"varint,5,opt,name=balance_state,json=balanceState,proto3,enum=coinbase.staking.orchestration.v1.StakeAccount_BalanceState" json:"balance_state,omitempty"` + // The validator (vote account) that the stake account is assigned to stake to. + // Used to show where the staked funds are staked to. + Validator string `protobuf:"bytes,6,opt,name=validator,proto3" json:"validator,omitempty"` +} + +func (x *StakeAccount) Reset() { + *x = StakeAccount{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StakeAccount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StakeAccount) ProtoMessage() {} + +func (x *StakeAccount) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StakeAccount.ProtoReflect.Descriptor instead. +func (*StakeAccount) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{6} +} + +func (x *StakeAccount) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *StakeAccount) GetBondedStake() *Amount { + if x != nil { + return x.BondedStake + } + return nil +} + +func (x *StakeAccount) GetRentReserve() *Amount { + if x != nil { + return x.RentReserve + } + return nil +} + +func (x *StakeAccount) GetBalance() *Amount { + if x != nil { + return x.Balance + } + return nil +} + +func (x *StakeAccount) GetBalanceState() StakeAccount_BalanceState { + if x != nil { + return x.BalanceState + } + return StakeAccount_BALANCE_STATE_UNSPECIFIED +} + +func (x *StakeAccount) GetValidator() string { + if x != nil { + return x.Validator + } + return "" +} + +// The parameters needed for staking on Solana. +type SolanaStakingParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Parameters: + // + // *SolanaStakingParameters_StakeParameters + // *SolanaStakingParameters_UnstakeParameters + // *SolanaStakingParameters_ClaimStakeParameters + Parameters isSolanaStakingParameters_Parameters `protobuf_oneof:"parameters"` +} + +func (x *SolanaStakingParameters) Reset() { + *x = SolanaStakingParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SolanaStakingParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SolanaStakingParameters) ProtoMessage() {} + +func (x *SolanaStakingParameters) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SolanaStakingParameters.ProtoReflect.Descriptor instead. +func (*SolanaStakingParameters) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP(), []int{7} +} + +func (m *SolanaStakingParameters) GetParameters() isSolanaStakingParameters_Parameters { + if m != nil { + return m.Parameters + } + return nil +} + +func (x *SolanaStakingParameters) GetStakeParameters() *SolanaStakeParameters { + if x, ok := x.GetParameters().(*SolanaStakingParameters_StakeParameters); ok { + return x.StakeParameters + } + return nil +} + +func (x *SolanaStakingParameters) GetUnstakeParameters() *SolanaUnstakeParameters { + if x, ok := x.GetParameters().(*SolanaStakingParameters_UnstakeParameters); ok { + return x.UnstakeParameters + } + return nil +} + +func (x *SolanaStakingParameters) GetClaimStakeParameters() *SolanaClaimStakeParameters { + if x, ok := x.GetParameters().(*SolanaStakingParameters_ClaimStakeParameters); ok { + return x.ClaimStakeParameters + } + return nil +} + +type isSolanaStakingParameters_Parameters interface { + isSolanaStakingParameters_Parameters() +} + +type SolanaStakingParameters_StakeParameters struct { + // The parameters for stake action on Solana. + StakeParameters *SolanaStakeParameters `protobuf:"bytes,7,opt,name=stake_parameters,json=stakeParameters,proto3,oneof"` +} + +type SolanaStakingParameters_UnstakeParameters struct { + // The parameters for unstake action on Solana. + UnstakeParameters *SolanaUnstakeParameters `protobuf:"bytes,8,opt,name=unstake_parameters,json=unstakeParameters,proto3,oneof"` +} + +type SolanaStakingParameters_ClaimStakeParameters struct { + // The parameters for claim stake action on Solana. + ClaimStakeParameters *SolanaClaimStakeParameters `protobuf:"bytes,9,opt,name=claim_stake_parameters,json=claimStakeParameters,proto3,oneof"` +} + +func (*SolanaStakingParameters_StakeParameters) isSolanaStakingParameters_Parameters() {} + +func (*SolanaStakingParameters_UnstakeParameters) isSolanaStakingParameters_Parameters() {} + +func (*SolanaStakingParameters_ClaimStakeParameters) isSolanaStakingParameters_Parameters() {} + +var File_coinbase_staking_orchestration_v1_solana_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_solana_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x1a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, + 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5a, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x46, 0x65, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x5f, 0x75, + 0x6e, 0x69, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x22, 0xa2, 0x02, 0x0a, 0x15, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x51, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x46, 0x65, 0x65, 0x3a, 0x1f, 0x92, 0x41, 0x1c, 0x0a, 0x1a, 0x2a, 0x18, 0x53, 0x6f, 0x6c, + 0x61, 0x6e, 0x61, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xad, 0x02, 0x0a, 0x17, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, + 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x51, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, + 0x65, 0x65, 0x3a, 0x21, 0x92, 0x41, 0x1e, 0x0a, 0x1c, 0x2a, 0x1a, 0x53, 0x6f, 0x6c, 0x61, 0x6e, + 0x61, 0x3a, 0x20, 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xf1, 0x01, 0x0a, 0x1a, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x6b, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x51, 0x0a, 0x0c, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x46, 0x65, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x46, + 0x65, 0x65, 0x3a, 0x25, 0x92, 0x41, 0x22, 0x0a, 0x20, 0x2a, 0x1e, 0x53, 0x6f, 0x6c, 0x61, 0x6e, + 0x61, 0x3a, 0x20, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x20, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x4b, 0x0a, 0x1e, 0x53, 0x6f, 0x6c, + 0x61, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x29, 0x92, 0x41, 0x26, + 0x0a, 0x24, 0x2a, 0x22, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xc7, 0x02, 0x0a, 0x1b, 0x53, 0x6f, 0x6c, 0x61, 0x6e, + 0x61, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, + 0x12, 0x3e, 0x0a, 0x1b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, + 0x12, 0x56, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x26, 0x92, 0x41, 0x23, 0x0a, 0x21, 0x2a, + 0x1f, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x3a, 0x20, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x20, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x22, 0xb3, 0x04, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x62, + 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x62, 0x6f, + 0x6e, 0x64, 0x65, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x0d, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x0c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, + 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, + 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x22, 0xb7, 0x04, 0x0a, 0x17, 0x53, 0x6f, 0x6c, 0x61, 0x6e, + 0x61, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x65, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6b, 0x0a, 0x12, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, + 0x55, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x48, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x75, 0x0a, 0x16, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x6c, 0x61, 0x6e, + 0x61, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x3a, 0x21, 0x92, + 0x41, 0x1e, 0x0a, 0x1c, 0x2a, 0x1a, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x3a, 0x20, 0x53, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x4a, 0x04, + 0x08, 0x01, 0x10, 0x07, 0x52, 0x17, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x19, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x1b, 0x64, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x19, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x5f, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x16, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x16, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, 0x68, 0x71, 0x2e, + 0x6e, 0x65, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_solana_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_solana_proto_rawDescData = file_coinbase_staking_orchestration_v1_solana_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_solana_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_solana_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_solana_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_solana_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_solana_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_solana_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_coinbase_staking_orchestration_v1_solana_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_coinbase_staking_orchestration_v1_solana_proto_goTypes = []interface{}{ + (StakeAccount_BalanceState)(0), // 0: coinbase.staking.orchestration.v1.StakeAccount.BalanceState + (*PriorityFee)(nil), // 1: coinbase.staking.orchestration.v1.PriorityFee + (*SolanaStakeParameters)(nil), // 2: coinbase.staking.orchestration.v1.SolanaStakeParameters + (*SolanaUnstakeParameters)(nil), // 3: coinbase.staking.orchestration.v1.SolanaUnstakeParameters + (*SolanaClaimStakeParameters)(nil), // 4: coinbase.staking.orchestration.v1.SolanaClaimStakeParameters + (*SolanaStakingContextParameters)(nil), // 5: coinbase.staking.orchestration.v1.SolanaStakingContextParameters + (*SolanaStakingContextDetails)(nil), // 6: coinbase.staking.orchestration.v1.SolanaStakingContextDetails + (*StakeAccount)(nil), // 7: coinbase.staking.orchestration.v1.StakeAccount + (*SolanaStakingParameters)(nil), // 8: coinbase.staking.orchestration.v1.SolanaStakingParameters + (*Amount)(nil), // 9: coinbase.staking.orchestration.v1.Amount +} +var file_coinbase_staking_orchestration_v1_solana_proto_depIdxs = []int32{ + 9, // 0: coinbase.staking.orchestration.v1.SolanaStakeParameters.amount:type_name -> coinbase.staking.orchestration.v1.Amount + 1, // 1: coinbase.staking.orchestration.v1.SolanaStakeParameters.priority_fee:type_name -> coinbase.staking.orchestration.v1.PriorityFee + 9, // 2: coinbase.staking.orchestration.v1.SolanaUnstakeParameters.amount:type_name -> coinbase.staking.orchestration.v1.Amount + 1, // 3: coinbase.staking.orchestration.v1.SolanaUnstakeParameters.priority_fee:type_name -> coinbase.staking.orchestration.v1.PriorityFee + 1, // 4: coinbase.staking.orchestration.v1.SolanaClaimStakeParameters.priority_fee:type_name -> coinbase.staking.orchestration.v1.PriorityFee + 9, // 5: coinbase.staking.orchestration.v1.SolanaStakingContextDetails.balance:type_name -> coinbase.staking.orchestration.v1.Amount + 7, // 6: coinbase.staking.orchestration.v1.SolanaStakingContextDetails.stake_accounts:type_name -> coinbase.staking.orchestration.v1.StakeAccount + 9, // 7: coinbase.staking.orchestration.v1.StakeAccount.bonded_stake:type_name -> coinbase.staking.orchestration.v1.Amount + 9, // 8: coinbase.staking.orchestration.v1.StakeAccount.rent_reserve:type_name -> coinbase.staking.orchestration.v1.Amount + 9, // 9: coinbase.staking.orchestration.v1.StakeAccount.balance:type_name -> coinbase.staking.orchestration.v1.Amount + 0, // 10: coinbase.staking.orchestration.v1.StakeAccount.balance_state:type_name -> coinbase.staking.orchestration.v1.StakeAccount.BalanceState + 2, // 11: coinbase.staking.orchestration.v1.SolanaStakingParameters.stake_parameters:type_name -> coinbase.staking.orchestration.v1.SolanaStakeParameters + 3, // 12: coinbase.staking.orchestration.v1.SolanaStakingParameters.unstake_parameters:type_name -> coinbase.staking.orchestration.v1.SolanaUnstakeParameters + 4, // 13: coinbase.staking.orchestration.v1.SolanaStakingParameters.claim_stake_parameters:type_name -> coinbase.staking.orchestration.v1.SolanaClaimStakeParameters + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_solana_proto_init() } +func file_coinbase_staking_orchestration_v1_solana_proto_init() { + if File_coinbase_staking_orchestration_v1_solana_proto != nil { + return + } + file_coinbase_staking_orchestration_v1_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PriorityFee); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SolanaStakeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SolanaUnstakeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SolanaClaimStakeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SolanaStakingContextParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SolanaStakingContextDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StakeAccount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SolanaStakingParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_coinbase_staking_orchestration_v1_solana_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*SolanaStakingParameters_StakeParameters)(nil), + (*SolanaStakingParameters_UnstakeParameters)(nil), + (*SolanaStakingParameters_ClaimStakeParameters)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_solana_proto_rawDesc, + NumEnums: 1, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_solana_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_solana_proto_depIdxs, + EnumInfos: file_coinbase_staking_orchestration_v1_solana_proto_enumTypes, + MessageInfos: file_coinbase_staking_orchestration_v1_solana_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_solana_proto = out.File + file_coinbase_staking_orchestration_v1_solana_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_solana_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_solana_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/staking_context.pb.go b/gen/go/coinbase/staking/orchestration/v1/staking_context.pb.go new file mode 100644 index 0000000..2384cc3 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/staking_context.pb.go @@ -0,0 +1,396 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/staking_context.proto + +package v1 + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The request message for the ViewStakingContext request. +type ViewStakingContextRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address to fetch staking context for. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The network to fetch staking context for. + Network string `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"` + // The protocol specific parameters needed to fetch a staking context. + // + // Types that are assignable to StakingContextParameters: + // + // *ViewStakingContextRequest_EthereumKilnStakingContextParameters + // *ViewStakingContextRequest_SolanaStakingContextParameters + StakingContextParameters isViewStakingContextRequest_StakingContextParameters `protobuf_oneof:"staking_context_parameters"` +} + +func (x *ViewStakingContextRequest) Reset() { + *x = ViewStakingContextRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewStakingContextRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewStakingContextRequest) ProtoMessage() {} + +func (x *ViewStakingContextRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViewStakingContextRequest.ProtoReflect.Descriptor instead. +func (*ViewStakingContextRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescGZIP(), []int{0} +} + +func (x *ViewStakingContextRequest) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *ViewStakingContextRequest) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (m *ViewStakingContextRequest) GetStakingContextParameters() isViewStakingContextRequest_StakingContextParameters { + if m != nil { + return m.StakingContextParameters + } + return nil +} + +func (x *ViewStakingContextRequest) GetEthereumKilnStakingContextParameters() *EthereumKilnStakingContextParameters { + if x, ok := x.GetStakingContextParameters().(*ViewStakingContextRequest_EthereumKilnStakingContextParameters); ok { + return x.EthereumKilnStakingContextParameters + } + return nil +} + +func (x *ViewStakingContextRequest) GetSolanaStakingContextParameters() *SolanaStakingContextParameters { + if x, ok := x.GetStakingContextParameters().(*ViewStakingContextRequest_SolanaStakingContextParameters); ok { + return x.SolanaStakingContextParameters + } + return nil +} + +type isViewStakingContextRequest_StakingContextParameters interface { + isViewStakingContextRequest_StakingContextParameters() +} + +type ViewStakingContextRequest_EthereumKilnStakingContextParameters struct { + // EthereumKiln staking context parameters. + EthereumKilnStakingContextParameters *EthereumKilnStakingContextParameters `protobuf:"bytes,3,opt,name=ethereum_kiln_staking_context_parameters,json=ethereumKilnStakingContextParameters,proto3,oneof"` +} + +type ViewStakingContextRequest_SolanaStakingContextParameters struct { + // Solana staking context parameters. + SolanaStakingContextParameters *SolanaStakingContextParameters `protobuf:"bytes,4,opt,name=solana_staking_context_parameters,json=solanaStakingContextParameters,proto3,oneof"` +} + +func (*ViewStakingContextRequest_EthereumKilnStakingContextParameters) isViewStakingContextRequest_StakingContextParameters() { +} + +func (*ViewStakingContextRequest_SolanaStakingContextParameters) isViewStakingContextRequest_StakingContextParameters() { +} + +// The response message for the ViewStakingContext request. +type ViewStakingContextResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The address you are getting a staking context for. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The protocol specific details of the staking context. + // + // Types that are assignable to StakingContextDetails: + // + // *ViewStakingContextResponse_EthereumKilnStakingContextDetails + // *ViewStakingContextResponse_SolanaStakingContextDetails + StakingContextDetails isViewStakingContextResponse_StakingContextDetails `protobuf_oneof:"staking_context_details"` +} + +func (x *ViewStakingContextResponse) Reset() { + *x = ViewStakingContextResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewStakingContextResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewStakingContextResponse) ProtoMessage() {} + +func (x *ViewStakingContextResponse) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViewStakingContextResponse.ProtoReflect.Descriptor instead. +func (*ViewStakingContextResponse) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescGZIP(), []int{1} +} + +func (x *ViewStakingContextResponse) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (m *ViewStakingContextResponse) GetStakingContextDetails() isViewStakingContextResponse_StakingContextDetails { + if m != nil { + return m.StakingContextDetails + } + return nil +} + +func (x *ViewStakingContextResponse) GetEthereumKilnStakingContextDetails() *EthereumKilnStakingContextDetails { + if x, ok := x.GetStakingContextDetails().(*ViewStakingContextResponse_EthereumKilnStakingContextDetails); ok { + return x.EthereumKilnStakingContextDetails + } + return nil +} + +func (x *ViewStakingContextResponse) GetSolanaStakingContextDetails() *SolanaStakingContextDetails { + if x, ok := x.GetStakingContextDetails().(*ViewStakingContextResponse_SolanaStakingContextDetails); ok { + return x.SolanaStakingContextDetails + } + return nil +} + +type isViewStakingContextResponse_StakingContextDetails interface { + isViewStakingContextResponse_StakingContextDetails() +} + +type ViewStakingContextResponse_EthereumKilnStakingContextDetails struct { + // EthereumKiln staking context details. + EthereumKilnStakingContextDetails *EthereumKilnStakingContextDetails `protobuf:"bytes,2,opt,name=ethereum_kiln_staking_context_details,json=ethereumKilnStakingContextDetails,proto3,oneof"` +} + +type ViewStakingContextResponse_SolanaStakingContextDetails struct { + // Solana staking context details. + SolanaStakingContextDetails *SolanaStakingContextDetails `protobuf:"bytes,3,opt,name=solana_staking_context_details,json=solanaStakingContextDetails,proto3,oneof"` +} + +func (*ViewStakingContextResponse_EthereumKilnStakingContextDetails) isViewStakingContextResponse_StakingContextDetails() { +} + +func (*ViewStakingContextResponse_SolanaStakingContextDetails) isViewStakingContextResponse_StakingContextDetails() { +} + +var File_coinbase_staking_orchestration_v1_staking_context_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_staking_context_proto_rawDesc = []byte{ + 0x0a, 0x37, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, + 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, + 0x2f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x6b, 0x69, 0x6c, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x03, 0x0a, 0x19, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x12, 0xa6, 0x01, 0x0a, 0x28, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x6b, 0x69, + 0x6c, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, + 0x4b, 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x48, 0x00, 0x52, 0x24, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, + 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x21, 0x73, 0x6f, + 0x6c, 0x61, 0x6e, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, + 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, + 0x1e, 0x73, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, + 0x1c, 0x0a, 0x1a, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x83, 0x03, + 0x0a, 0x1a, 0x56, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x25, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x6b, 0x69, 0x6c, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x21, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, + 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x1e, + 0x73, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x53, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x6f, 0x6c, + 0x61, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, + 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, + 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescData = file_coinbase_staking_orchestration_v1_staking_context_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_staking_context_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_coinbase_staking_orchestration_v1_staking_context_proto_goTypes = []interface{}{ + (*ViewStakingContextRequest)(nil), // 0: coinbase.staking.orchestration.v1.ViewStakingContextRequest + (*ViewStakingContextResponse)(nil), // 1: coinbase.staking.orchestration.v1.ViewStakingContextResponse + (*EthereumKilnStakingContextParameters)(nil), // 2: coinbase.staking.orchestration.v1.EthereumKilnStakingContextParameters + (*SolanaStakingContextParameters)(nil), // 3: coinbase.staking.orchestration.v1.SolanaStakingContextParameters + (*EthereumKilnStakingContextDetails)(nil), // 4: coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails + (*SolanaStakingContextDetails)(nil), // 5: coinbase.staking.orchestration.v1.SolanaStakingContextDetails +} +var file_coinbase_staking_orchestration_v1_staking_context_proto_depIdxs = []int32{ + 2, // 0: coinbase.staking.orchestration.v1.ViewStakingContextRequest.ethereum_kiln_staking_context_parameters:type_name -> coinbase.staking.orchestration.v1.EthereumKilnStakingContextParameters + 3, // 1: coinbase.staking.orchestration.v1.ViewStakingContextRequest.solana_staking_context_parameters:type_name -> coinbase.staking.orchestration.v1.SolanaStakingContextParameters + 4, // 2: coinbase.staking.orchestration.v1.ViewStakingContextResponse.ethereum_kiln_staking_context_details:type_name -> coinbase.staking.orchestration.v1.EthereumKilnStakingContextDetails + 5, // 3: coinbase.staking.orchestration.v1.ViewStakingContextResponse.solana_staking_context_details:type_name -> coinbase.staking.orchestration.v1.SolanaStakingContextDetails + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_staking_context_proto_init() } +func file_coinbase_staking_orchestration_v1_staking_context_proto_init() { + if File_coinbase_staking_orchestration_v1_staking_context_proto != nil { + return + } + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_init() + file_coinbase_staking_orchestration_v1_solana_proto_init() + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewStakingContextRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewStakingContextResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ViewStakingContextRequest_EthereumKilnStakingContextParameters)(nil), + (*ViewStakingContextRequest_SolanaStakingContextParameters)(nil), + } + file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*ViewStakingContextResponse_EthereumKilnStakingContextDetails)(nil), + (*ViewStakingContextResponse_SolanaStakingContextDetails)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_staking_context_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_staking_context_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_staking_context_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_staking_context_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_staking_context_proto = out.File + file_coinbase_staking_orchestration_v1_staking_context_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_staking_context_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_staking_context_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/staking_target.pb.go b/gen/go/coinbase/staking/orchestration/v1/staking_target.pb.go new file mode 100644 index 0000000..7d1276e --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/staking_target.pb.go @@ -0,0 +1,573 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/staking_target.proto + +package v1 + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// A Validator resource represents an active validator for the given protocol network. +type Validator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the Validator. + // Format: protocols/{protocolName}/networks/{networkName}/stakingTargets/{validatorName} + // Ex: protocols/solana/networks/testnet/stakingTargets/GkqYQysEGmuL6V2AJoNnWZUz2ZBGWhzQXsJiXm2CLKAN + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The public address of the validator. + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // The rate of commission for the validator + CommissionRate float32 `protobuf:"fixed32,3,opt,name=commission_rate,json=commissionRate,proto3" json:"commission_rate,omitempty"` +} + +func (x *Validator) Reset() { + *x = Validator{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Validator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Validator) ProtoMessage() {} + +func (x *Validator) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Validator.ProtoReflect.Descriptor instead. +func (*Validator) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescGZIP(), []int{0} +} + +func (x *Validator) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Validator) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *Validator) GetCommissionRate() float32 { + if x != nil { + return x.CommissionRate + } + return 0 +} + +// A Contract resource, which represents an active contract +// for the given protocol network which you can submit an action +// to. +type Contract struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the Contract Address. + // Format: protocols/{protocolName}/networks/{networkName}/stakingTargets/{contractName} + // Ex: protocols/ethereum_kiln/networks/holesky/stakingTargets/0xA55416de5DE61A0AC1aa8970a280E04388B1dE4b + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The contract address you may submit actions to. + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *Contract) Reset() { + *x = Contract{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Contract) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Contract) ProtoMessage() {} + +func (x *Contract) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Contract.ProtoReflect.Descriptor instead. +func (*Contract) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescGZIP(), []int{1} +} + +func (x *Contract) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Contract) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +// A Staking Target represents a destination that you perform an action on related to staking. +type StakingTarget struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to StakingTargets: + // + // *StakingTarget_Validator + // *StakingTarget_Contract + StakingTargets isStakingTarget_StakingTargets `protobuf_oneof:"staking_targets"` +} + +func (x *StakingTarget) Reset() { + *x = StakingTarget{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StakingTarget) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StakingTarget) ProtoMessage() {} + +func (x *StakingTarget) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StakingTarget.ProtoReflect.Descriptor instead. +func (*StakingTarget) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescGZIP(), []int{2} +} + +func (m *StakingTarget) GetStakingTargets() isStakingTarget_StakingTargets { + if m != nil { + return m.StakingTargets + } + return nil +} + +func (x *StakingTarget) GetValidator() *Validator { + if x, ok := x.GetStakingTargets().(*StakingTarget_Validator); ok { + return x.Validator + } + return nil +} + +func (x *StakingTarget) GetContract() *Contract { + if x, ok := x.GetStakingTargets().(*StakingTarget_Contract); ok { + return x.Contract + } + return nil +} + +type isStakingTarget_StakingTargets interface { + isStakingTarget_StakingTargets() +} + +type StakingTarget_Validator struct { + // A validator to stake to. + Validator *Validator `protobuf:"bytes,1,opt,name=validator,proto3,oneof"` +} + +type StakingTarget_Contract struct { + // A contract to send a staking action to. + Contract *Contract `protobuf:"bytes,2,opt,name=contract,proto3,oneof"` +} + +func (*StakingTarget_Validator) isStakingTarget_StakingTargets() {} + +func (*StakingTarget_Contract) isStakingTarget_StakingTargets() {} + +// The request message for ListStakingTargets. +type ListStakingTargetsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the parent that owns + // the collection of staking targets. + // Format: protocols/{protocol}/networks/{network} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of staking targets to return. The service may + // return fewer than this value. + // + // If unspecified, 100 staking targets will be returned. + // The maximum value is 1000; values over 1000 will be floored to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token as part of the response of a previous call. + // Provide this to retrieve the next page. + // + // When paginating, all other parameters must match the previous + // request to list resources. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListStakingTargetsRequest) Reset() { + *x = ListStakingTargetsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListStakingTargetsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListStakingTargetsRequest) ProtoMessage() {} + +func (x *ListStakingTargetsRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListStakingTargetsRequest.ProtoReflect.Descriptor instead. +func (*ListStakingTargetsRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescGZIP(), []int{3} +} + +func (x *ListStakingTargetsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListStakingTargetsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListStakingTargetsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// The response message for ListStakingTargets. +type ListStakingTargetsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of staking targets. + StakingTargets []*StakingTarget `protobuf:"bytes,1,rep,name=staking_targets,json=stakingTargets,proto3" json:"staking_targets,omitempty"` + // A token which can be provided as `page_token` to retrieve the next page. + // If this field is omitted, there are no additional pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListStakingTargetsResponse) Reset() { + *x = ListStakingTargetsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListStakingTargetsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListStakingTargetsResponse) ProtoMessage() {} + +func (x *ListStakingTargetsResponse) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListStakingTargetsResponse.ProtoReflect.Descriptor instead. +func (*ListStakingTargetsResponse) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescGZIP(), []int{4} +} + +func (x *ListStakingTargetsResponse) GetStakingTargets() []*StakingTarget { + if x != nil { + return x.StakingTargets + } + return nil +} + +func (x *ListStakingTargetsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +var File_coinbase_staking_orchestration_v1_staking_target_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_staking_target_proto_rawDesc = []byte{ + 0x0a, 0x36, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x3a, 0x7e, 0xea, 0x41, + 0x7b, 0x0a, 0x1e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x42, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x2f, 0x7b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x7d, 0x2a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x32, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xb4, 0x01, 0x0a, + 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x7a, 0xea, 0x41, 0x77, 0x0a, 0x1d, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x41, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x7d, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x7d, 0x2a, 0x09, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x32, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x4c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, + 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x42, 0x11, + 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9f, 0x01, 0x0a, 0x1a, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x48, 0x5a, 0x46, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, 0x6e, + 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescData = file_coinbase_staking_orchestration_v1_staking_target_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_staking_target_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_coinbase_staking_orchestration_v1_staking_target_proto_goTypes = []interface{}{ + (*Validator)(nil), // 0: coinbase.staking.orchestration.v1.Validator + (*Contract)(nil), // 1: coinbase.staking.orchestration.v1.Contract + (*StakingTarget)(nil), // 2: coinbase.staking.orchestration.v1.StakingTarget + (*ListStakingTargetsRequest)(nil), // 3: coinbase.staking.orchestration.v1.ListStakingTargetsRequest + (*ListStakingTargetsResponse)(nil), // 4: coinbase.staking.orchestration.v1.ListStakingTargetsResponse +} +var file_coinbase_staking_orchestration_v1_staking_target_proto_depIdxs = []int32{ + 0, // 0: coinbase.staking.orchestration.v1.StakingTarget.validator:type_name -> coinbase.staking.orchestration.v1.Validator + 1, // 1: coinbase.staking.orchestration.v1.StakingTarget.contract:type_name -> coinbase.staking.orchestration.v1.Contract + 2, // 2: coinbase.staking.orchestration.v1.ListStakingTargetsResponse.staking_targets:type_name -> coinbase.staking.orchestration.v1.StakingTarget + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_staking_target_proto_init() } +func file_coinbase_staking_orchestration_v1_staking_target_proto_init() { + if File_coinbase_staking_orchestration_v1_staking_target_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Validator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Contract); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StakingTarget); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListStakingTargetsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListStakingTargetsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*StakingTarget_Validator)(nil), + (*StakingTarget_Contract)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_staking_target_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_staking_target_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_staking_target_proto_depIdxs, + MessageInfos: file_coinbase_staking_orchestration_v1_staking_target_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_staking_target_proto = out.File + file_coinbase_staking_orchestration_v1_staking_target_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_staking_target_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_staking_target_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/staking_target_aip.go b/gen/go/coinbase/staking/orchestration/v1/staking_target_aip.go new file mode 100644 index 0000000..a0ab564 --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/staking_target_aip.go @@ -0,0 +1,198 @@ +// Code generated by protoc-gen-go-aip. DO NOT EDIT. +// +// versions: +// protoc-gen-go-aip development +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/staking_target.proto + +package v1 + +import ( + fmt "fmt" + resourcename "go.einride.tech/aip/resourcename" + strings "strings" +) + +type ValidatorResourceName struct { + Protocol string + Network string + Validator string +} + +func (n ProtocolResourceName) ValidatorResourceName( + network string, + validator string, +) ValidatorResourceName { + return ValidatorResourceName{ + Protocol: n.Protocol, + Network: network, + Validator: validator, + } +} + +func (n NetworkResourceName) ValidatorResourceName( + validator string, +) ValidatorResourceName { + return ValidatorResourceName{ + Protocol: n.Protocol, + Network: n.Network, + Validator: validator, + } +} + +func (n ValidatorResourceName) Validate() error { + if n.Protocol == "" { + return fmt.Errorf("protocol: empty") + } + if strings.IndexByte(n.Protocol, '/') != -1 { + return fmt.Errorf("protocol: contains illegal character '/'") + } + if n.Network == "" { + return fmt.Errorf("network: empty") + } + if strings.IndexByte(n.Network, '/') != -1 { + return fmt.Errorf("network: contains illegal character '/'") + } + if n.Validator == "" { + return fmt.Errorf("validator: empty") + } + if strings.IndexByte(n.Validator, '/') != -1 { + return fmt.Errorf("validator: contains illegal character '/'") + } + return nil +} + +func (n ValidatorResourceName) ContainsWildcard() bool { + return false || n.Protocol == "-" || n.Network == "-" || n.Validator == "-" +} + +func (n ValidatorResourceName) String() string { + return resourcename.Sprint( + "protocols/{protocol}/networks/{network}/stakingTargets/{validator}", + n.Protocol, + n.Network, + n.Validator, + ) +} + +func (n ValidatorResourceName) MarshalString() (string, error) { + if err := n.Validate(); err != nil { + return "", err + } + return n.String(), nil +} + +func (n *ValidatorResourceName) UnmarshalString(name string) error { + return resourcename.Sscan( + name, + "protocols/{protocol}/networks/{network}/stakingTargets/{validator}", + &n.Protocol, + &n.Network, + &n.Validator, + ) +} + +func (n ValidatorResourceName) ProtocolResourceName() ProtocolResourceName { + return ProtocolResourceName{ + Protocol: n.Protocol, + } +} + +func (n ValidatorResourceName) NetworkResourceName() NetworkResourceName { + return NetworkResourceName{ + Protocol: n.Protocol, + Network: n.Network, + } +} + +type ContractResourceName struct { + Protocol string + Network string + Contract string +} + +func (n ProtocolResourceName) ContractResourceName( + network string, + contract string, +) ContractResourceName { + return ContractResourceName{ + Protocol: n.Protocol, + Network: network, + Contract: contract, + } +} + +func (n NetworkResourceName) ContractResourceName( + contract string, +) ContractResourceName { + return ContractResourceName{ + Protocol: n.Protocol, + Network: n.Network, + Contract: contract, + } +} + +func (n ContractResourceName) Validate() error { + if n.Protocol == "" { + return fmt.Errorf("protocol: empty") + } + if strings.IndexByte(n.Protocol, '/') != -1 { + return fmt.Errorf("protocol: contains illegal character '/'") + } + if n.Network == "" { + return fmt.Errorf("network: empty") + } + if strings.IndexByte(n.Network, '/') != -1 { + return fmt.Errorf("network: contains illegal character '/'") + } + if n.Contract == "" { + return fmt.Errorf("contract: empty") + } + if strings.IndexByte(n.Contract, '/') != -1 { + return fmt.Errorf("contract: contains illegal character '/'") + } + return nil +} + +func (n ContractResourceName) ContainsWildcard() bool { + return false || n.Protocol == "-" || n.Network == "-" || n.Contract == "-" +} + +func (n ContractResourceName) String() string { + return resourcename.Sprint( + "protocols/{protocol}/networks/{network}/stakingTargets/{contract}", + n.Protocol, + n.Network, + n.Contract, + ) +} + +func (n ContractResourceName) MarshalString() (string, error) { + if err := n.Validate(); err != nil { + return "", err + } + return n.String(), nil +} + +func (n *ContractResourceName) UnmarshalString(name string) error { + return resourcename.Sscan( + name, + "protocols/{protocol}/networks/{network}/stakingTargets/{contract}", + &n.Protocol, + &n.Network, + &n.Contract, + ) +} + +func (n ContractResourceName) ProtocolResourceName() ProtocolResourceName { + return ProtocolResourceName{ + Protocol: n.Protocol, + } +} + +func (n ContractResourceName) NetworkResourceName() NetworkResourceName { + return NetworkResourceName{ + Protocol: n.Protocol, + Network: n.Network, + } +} diff --git a/gen/go/coinbase/staking/orchestration/v1/workflow.pb.go b/gen/go/coinbase/staking/orchestration/v1/workflow.pb.go new file mode 100644 index 0000000..972338f --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/workflow.pb.go @@ -0,0 +1,1667 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/workflow.proto + +package v1 + +import ( + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// State defines an enumeration of states for a staking transaction. +type TxStepOutput_State int32 + +const ( + // Unspecified transaction state, this is for backwards compatibility. + TxStepOutput_STATE_UNSPECIFIED TxStepOutput_State = 0 + // Tx has not yet been constructed in the backend. + TxStepOutput_STATE_NOT_CONSTRUCTED TxStepOutput_State = 1 + // Tx construction is over in the backend. + TxStepOutput_STATE_CONSTRUCTED TxStepOutput_State = 2 + // Tx is waiting to be externally broadcasted by the customer. + TxStepOutput_STATE_PENDING_EXT_BROADCAST TxStepOutput_State = 16 + // Tx has been signed and returned to the backend. + TxStepOutput_STATE_SIGNED TxStepOutput_State = 4 + // Tx is being broadcasted to the network. + TxStepOutput_STATE_BROADCASTING TxStepOutput_State = 5 + // Tx is waiting for confirmation. + TxStepOutput_STATE_CONFIRMING TxStepOutput_State = 6 + // Tx has been confirmed to be included in a block. + TxStepOutput_STATE_CONFIRMED TxStepOutput_State = 7 + // Tx has been finalized. + TxStepOutput_STATE_FINALIZED TxStepOutput_State = 8 + // Tx construction or broadcasting failed. + TxStepOutput_STATE_FAILED TxStepOutput_State = 9 + // Tx has been successfully executed. + TxStepOutput_STATE_SUCCESS TxStepOutput_State = 10 +) + +// Enum value maps for TxStepOutput_State. +var ( + TxStepOutput_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "STATE_NOT_CONSTRUCTED", + 2: "STATE_CONSTRUCTED", + 16: "STATE_PENDING_EXT_BROADCAST", + 4: "STATE_SIGNED", + 5: "STATE_BROADCASTING", + 6: "STATE_CONFIRMING", + 7: "STATE_CONFIRMED", + 8: "STATE_FINALIZED", + 9: "STATE_FAILED", + 10: "STATE_SUCCESS", + } + TxStepOutput_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "STATE_NOT_CONSTRUCTED": 1, + "STATE_CONSTRUCTED": 2, + "STATE_PENDING_EXT_BROADCAST": 16, + "STATE_SIGNED": 4, + "STATE_BROADCASTING": 5, + "STATE_CONFIRMING": 6, + "STATE_CONFIRMED": 7, + "STATE_FINALIZED": 8, + "STATE_FAILED": 9, + "STATE_SUCCESS": 10, + } +) + +func (x TxStepOutput_State) Enum() *TxStepOutput_State { + p := new(TxStepOutput_State) + *p = x + return p +} + +func (x TxStepOutput_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TxStepOutput_State) Descriptor() protoreflect.EnumDescriptor { + return file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[0].Descriptor() +} + +func (TxStepOutput_State) Type() protoreflect.EnumType { + return &file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[0] +} + +func (x TxStepOutput_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TxStepOutput_State.Descriptor instead. +func (TxStepOutput_State) EnumDescriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{0, 0} +} + +// The unit of wait time. +type WaitStepOutput_WaitUnit int32 + +const ( + // Unspecified wait time. + WaitStepOutput_WAIT_UNIT_UNSPECIFIED WaitStepOutput_WaitUnit = 0 + // Wait time measured in seconds. + WaitStepOutput_WAIT_UNIT_SECONDS WaitStepOutput_WaitUnit = 1 + // Wait time measured in blocks. + WaitStepOutput_WAIT_UNIT_BLOCKS WaitStepOutput_WaitUnit = 2 + // Wait time measured in epochs. + WaitStepOutput_WAIT_UNIT_EPOCHS WaitStepOutput_WaitUnit = 3 + // Wait time measured in checkpoints. + WaitStepOutput_WAIT_UNIT_CHECKPOINTS WaitStepOutput_WaitUnit = 4 +) + +// Enum value maps for WaitStepOutput_WaitUnit. +var ( + WaitStepOutput_WaitUnit_name = map[int32]string{ + 0: "WAIT_UNIT_UNSPECIFIED", + 1: "WAIT_UNIT_SECONDS", + 2: "WAIT_UNIT_BLOCKS", + 3: "WAIT_UNIT_EPOCHS", + 4: "WAIT_UNIT_CHECKPOINTS", + } + WaitStepOutput_WaitUnit_value = map[string]int32{ + "WAIT_UNIT_UNSPECIFIED": 0, + "WAIT_UNIT_SECONDS": 1, + "WAIT_UNIT_BLOCKS": 2, + "WAIT_UNIT_EPOCHS": 3, + "WAIT_UNIT_CHECKPOINTS": 4, + } +) + +func (x WaitStepOutput_WaitUnit) Enum() *WaitStepOutput_WaitUnit { + p := new(WaitStepOutput_WaitUnit) + *p = x + return p +} + +func (x WaitStepOutput_WaitUnit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitStepOutput_WaitUnit) Descriptor() protoreflect.EnumDescriptor { + return file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[1].Descriptor() +} + +func (WaitStepOutput_WaitUnit) Type() protoreflect.EnumType { + return &file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[1] +} + +func (x WaitStepOutput_WaitUnit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitStepOutput_WaitUnit.Descriptor instead. +func (WaitStepOutput_WaitUnit) EnumDescriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{1, 0} +} + +// WaitStepState defines an enumeration of states for a wait step. +type WaitStepOutput_State int32 + +const ( + // Unspecified wait step state. + WaitStepOutput_STATE_UNSPECIFIED WaitStepOutput_State = 0 + // Wait step has not started. + WaitStepOutput_STATE_NOT_STARTED WaitStepOutput_State = 1 + // Wait step is in-progress. + WaitStepOutput_STATE_IN_PROGRESS WaitStepOutput_State = 2 + // Wait step completed. + WaitStepOutput_STATE_COMPLETED WaitStepOutput_State = 3 +) + +// Enum value maps for WaitStepOutput_State. +var ( + WaitStepOutput_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "STATE_NOT_STARTED", + 2: "STATE_IN_PROGRESS", + 3: "STATE_COMPLETED", + } + WaitStepOutput_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "STATE_NOT_STARTED": 1, + "STATE_IN_PROGRESS": 2, + "STATE_COMPLETED": 3, + } +) + +func (x WaitStepOutput_State) Enum() *WaitStepOutput_State { + p := new(WaitStepOutput_State) + *p = x + return p +} + +func (x WaitStepOutput_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitStepOutput_State) Descriptor() protoreflect.EnumDescriptor { + return file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[2].Descriptor() +} + +func (WaitStepOutput_State) Type() protoreflect.EnumType { + return &file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[2] +} + +func (x WaitStepOutput_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitStepOutput_State.Descriptor instead. +func (WaitStepOutput_State) EnumDescriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{1, 1} +} + +// State defines an enumeration of states for provisioning infra. +type ProvisionInfraStepOutput_State int32 + +const ( + // Unspecified step state. + ProvisionInfraStepOutput_STATE_UNSPECIFIED ProvisionInfraStepOutput_State = 0 + // Provision step is in-progress. + ProvisionInfraStepOutput_STATE_IN_PROGRESS ProvisionInfraStepOutput_State = 2 + // Provision step completed. + ProvisionInfraStepOutput_STATE_COMPLETED ProvisionInfraStepOutput_State = 3 + // Provision step failed. + ProvisionInfraStepOutput_STATE_FAILED ProvisionInfraStepOutput_State = 4 +) + +// Enum value maps for ProvisionInfraStepOutput_State. +var ( + ProvisionInfraStepOutput_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 2: "STATE_IN_PROGRESS", + 3: "STATE_COMPLETED", + 4: "STATE_FAILED", + } + ProvisionInfraStepOutput_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "STATE_IN_PROGRESS": 2, + "STATE_COMPLETED": 3, + "STATE_FAILED": 4, + } +) + +func (x ProvisionInfraStepOutput_State) Enum() *ProvisionInfraStepOutput_State { + p := new(ProvisionInfraStepOutput_State) + *p = x + return p +} + +func (x ProvisionInfraStepOutput_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ProvisionInfraStepOutput_State) Descriptor() protoreflect.EnumDescriptor { + return file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[3].Descriptor() +} + +func (ProvisionInfraStepOutput_State) Type() protoreflect.EnumType { + return &file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[3] +} + +func (x ProvisionInfraStepOutput_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ProvisionInfraStepOutput_State.Descriptor instead. +func (ProvisionInfraStepOutput_State) EnumDescriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{2, 0} +} + +// The state of a workflow +type Workflow_State int32 + +const ( + // Unspecified workflow state, this is for backwards compatibility. + Workflow_STATE_UNSPECIFIED Workflow_State = 0 + // In Progress represents a workflow that is currently in progress. + Workflow_STATE_IN_PROGRESS Workflow_State = 1 + // Waiting for external broadcast represents the workflow is waiting for the customer to broadcast a tx and return its corresponding tx hash. + Workflow_STATE_WAITING_FOR_EXT_BROADCAST Workflow_State = 9 + // Completed represents the workflow has completed. + Workflow_STATE_COMPLETED Workflow_State = 3 + // Failed represents the workflow has failed. + Workflow_STATE_FAILED Workflow_State = 4 +) + +// Enum value maps for Workflow_State. +var ( + Workflow_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "STATE_IN_PROGRESS", + 9: "STATE_WAITING_FOR_EXT_BROADCAST", + 3: "STATE_COMPLETED", + 4: "STATE_FAILED", + } + Workflow_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "STATE_IN_PROGRESS": 1, + "STATE_WAITING_FOR_EXT_BROADCAST": 9, + "STATE_COMPLETED": 3, + "STATE_FAILED": 4, + } +) + +func (x Workflow_State) Enum() *Workflow_State { + p := new(Workflow_State) + *p = x + return p +} + +func (x Workflow_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Workflow_State) Descriptor() protoreflect.EnumDescriptor { + return file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[4].Descriptor() +} + +func (Workflow_State) Type() protoreflect.EnumType { + return &file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes[4] +} + +func (x Workflow_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Workflow_State.Descriptor instead. +func (Workflow_State) EnumDescriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{4, 0} +} + +// The details of a transaction being constructed and broadcasted to the network. +type TxStepOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unsigned transaction which was signed in order to be broadcasted. + UnsignedTx string `protobuf:"bytes,1,opt,name=unsigned_tx,json=unsignedTx,proto3" json:"unsigned_tx,omitempty"` + // The signed transaction which was asked to be broadcasted. + SignedTx string `protobuf:"bytes,2,opt,name=signed_tx,json=signedTx,proto3" json:"signed_tx,omitempty"` + // The hash of the broadcasted transaction. + TxHash string `protobuf:"bytes,3,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // The state of the transaction step. + State TxStepOutput_State `protobuf:"varint,4,opt,name=state,proto3,enum=coinbase.staking.orchestration.v1.TxStepOutput_State" json:"state,omitempty"` + // The error message if the transaction step failed. + ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` +} + +func (x *TxStepOutput) Reset() { + *x = TxStepOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxStepOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxStepOutput) ProtoMessage() {} + +func (x *TxStepOutput) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxStepOutput.ProtoReflect.Descriptor instead. +func (*TxStepOutput) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{0} +} + +func (x *TxStepOutput) GetUnsignedTx() string { + if x != nil { + return x.UnsignedTx + } + return "" +} + +func (x *TxStepOutput) GetSignedTx() string { + if x != nil { + return x.SignedTx + } + return "" +} + +func (x *TxStepOutput) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *TxStepOutput) GetState() TxStepOutput_State { + if x != nil { + return x.State + } + return TxStepOutput_STATE_UNSPECIFIED +} + +func (x *TxStepOutput) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +// The output details of a step where we wait for some kind of on-chain activity to finish like reaching a certain checkpoint, epoch or block. +type WaitStepOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The beginning of wait period. + Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + // The current wait progress. + Current int64 `protobuf:"varint,2,opt,name=current,proto3" json:"current,omitempty"` + // The target wait end point. + Target int64 `protobuf:"varint,3,opt,name=target,proto3" json:"target,omitempty"` + // The wait unit (like checkpoint, block, epoch etc). + Unit WaitStepOutput_WaitUnit `protobuf:"varint,4,opt,name=unit,proto3,enum=coinbase.staking.orchestration.v1.WaitStepOutput_WaitUnit" json:"unit,omitempty"` + // The state of the wait step. + State WaitStepOutput_State `protobuf:"varint,5,opt,name=state,proto3,enum=coinbase.staking.orchestration.v1.WaitStepOutput_State" json:"state,omitempty"` +} + +func (x *WaitStepOutput) Reset() { + *x = WaitStepOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitStepOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitStepOutput) ProtoMessage() {} + +func (x *WaitStepOutput) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitStepOutput.ProtoReflect.Descriptor instead. +func (*WaitStepOutput) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{1} +} + +func (x *WaitStepOutput) GetStart() int64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *WaitStepOutput) GetCurrent() int64 { + if x != nil { + return x.Current + } + return 0 +} + +func (x *WaitStepOutput) GetTarget() int64 { + if x != nil { + return x.Target + } + return 0 +} + +func (x *WaitStepOutput) GetUnit() WaitStepOutput_WaitUnit { + if x != nil { + return x.Unit + } + return WaitStepOutput_WAIT_UNIT_UNSPECIFIED +} + +func (x *WaitStepOutput) GetState() WaitStepOutput_State { + if x != nil { + return x.State + } + return WaitStepOutput_STATE_UNSPECIFIED +} + +// The details for an infrastructure provision request. +type ProvisionInfraStepOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The state of the provision infra step. + State ProvisionInfraStepOutput_State `protobuf:"varint,1,opt,name=state,proto3,enum=coinbase.staking.orchestration.v1.ProvisionInfraStepOutput_State" json:"state,omitempty"` +} + +func (x *ProvisionInfraStepOutput) Reset() { + *x = ProvisionInfraStepOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProvisionInfraStepOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProvisionInfraStepOutput) ProtoMessage() {} + +func (x *ProvisionInfraStepOutput) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProvisionInfraStepOutput.ProtoReflect.Descriptor instead. +func (*ProvisionInfraStepOutput) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{2} +} + +func (x *ProvisionInfraStepOutput) GetState() ProvisionInfraStepOutput_State { + if x != nil { + return x.State + } + return ProvisionInfraStepOutput_STATE_UNSPECIFIED +} + +// The information for a step in the workflow. +type WorkflowStep struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The human readable name of the step. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The output of the current step. It can be of tx or wait type. + // + // Types that are assignable to Output: + // + // *WorkflowStep_TxStepOutput + // *WorkflowStep_WaitStepOutput + // *WorkflowStep_ProvisionInfraStepOutput + Output isWorkflowStep_Output `protobuf_oneof:"output"` +} + +func (x *WorkflowStep) Reset() { + *x = WorkflowStep{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkflowStep) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkflowStep) ProtoMessage() {} + +func (x *WorkflowStep) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WorkflowStep.ProtoReflect.Descriptor instead. +func (*WorkflowStep) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{3} +} + +func (x *WorkflowStep) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (m *WorkflowStep) GetOutput() isWorkflowStep_Output { + if m != nil { + return m.Output + } + return nil +} + +func (x *WorkflowStep) GetTxStepOutput() *TxStepOutput { + if x, ok := x.GetOutput().(*WorkflowStep_TxStepOutput); ok { + return x.TxStepOutput + } + return nil +} + +func (x *WorkflowStep) GetWaitStepOutput() *WaitStepOutput { + if x, ok := x.GetOutput().(*WorkflowStep_WaitStepOutput); ok { + return x.WaitStepOutput + } + return nil +} + +func (x *WorkflowStep) GetProvisionInfraStepOutput() *ProvisionInfraStepOutput { + if x, ok := x.GetOutput().(*WorkflowStep_ProvisionInfraStepOutput); ok { + return x.ProvisionInfraStepOutput + } + return nil +} + +type isWorkflowStep_Output interface { + isWorkflowStep_Output() +} + +type WorkflowStep_TxStepOutput struct { + // The tx step output (e.g. transaction metadata such as unsigned tx, signed tx etc). + TxStepOutput *TxStepOutput `protobuf:"bytes,2,opt,name=tx_step_output,json=txStepOutput,proto3,oneof"` +} + +type WorkflowStep_WaitStepOutput struct { + // The waiting details for any kind like how many checkpoints away for unbonding etc. + WaitStepOutput *WaitStepOutput `protobuf:"bytes,3,opt,name=wait_step_output,json=waitStepOutput,proto3,oneof"` +} + +type WorkflowStep_ProvisionInfraStepOutput struct { + // The details for provisioned infrastructure. + ProvisionInfraStepOutput *ProvisionInfraStepOutput `protobuf:"bytes,4,opt,name=provision_infra_step_output,json=provisionInfraStepOutput,proto3,oneof"` +} + +func (*WorkflowStep_TxStepOutput) isWorkflowStep_Output() {} + +func (*WorkflowStep_WaitStepOutput) isWorkflowStep_Output() {} + +func (*WorkflowStep_ProvisionInfraStepOutput) isWorkflowStep_Output() {} + +// A Workflow resource. +type Workflow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the workflow. + // Format: projects/{projectUUID}/workflows/{workflowUUID} + // Ex: projects/ 123e4567-e89b-12d3-a456-426614174000/workflows/123e4567-e89b-12d3-a456-426614174000 + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The resource name of the action being + // performed. + // Format: protocols/{protocol}/networks/{network}/actions/{action} + Action string `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"` + // The parameters of the action to take. + // + // Types that are assignable to StakingParameters: + // + // *Workflow_SolanaStakingParameters + // *Workflow_EthereumKilnStakingParameters + // *Workflow_EthereumStakingParameters + StakingParameters isWorkflow_StakingParameters `protobuf_oneof:"staking_parameters"` + // The current state of the workflow. + State Workflow_State `protobuf:"varint,4,opt,name=state,proto3,enum=coinbase.staking.orchestration.v1.Workflow_State" json:"state,omitempty"` + // The index of the current step. + CurrentStepId int32 `protobuf:"varint,5,opt,name=current_step_id,json=currentStepId,proto3" json:"current_step_id,omitempty"` + // The list of steps for this workflow. + Steps []*WorkflowStep `protobuf:"bytes,6,rep,name=steps,proto3" json:"steps,omitempty"` + // The timestamp the workflow was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // The timestamp the workflow was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The timestamp the workflow completed. + CompleteTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=complete_time,json=completeTime,proto3" json:"complete_time,omitempty"` +} + +func (x *Workflow) Reset() { + *x = Workflow{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Workflow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Workflow) ProtoMessage() {} + +func (x *Workflow) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Workflow.ProtoReflect.Descriptor instead. +func (*Workflow) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{4} +} + +func (x *Workflow) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Workflow) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +func (m *Workflow) GetStakingParameters() isWorkflow_StakingParameters { + if m != nil { + return m.StakingParameters + } + return nil +} + +func (x *Workflow) GetSolanaStakingParameters() *SolanaStakingParameters { + if x, ok := x.GetStakingParameters().(*Workflow_SolanaStakingParameters); ok { + return x.SolanaStakingParameters + } + return nil +} + +func (x *Workflow) GetEthereumKilnStakingParameters() *EthereumKilnStakingParameters { + if x, ok := x.GetStakingParameters().(*Workflow_EthereumKilnStakingParameters); ok { + return x.EthereumKilnStakingParameters + } + return nil +} + +func (x *Workflow) GetEthereumStakingParameters() *EthereumStakingParameters { + if x, ok := x.GetStakingParameters().(*Workflow_EthereumStakingParameters); ok { + return x.EthereumStakingParameters + } + return nil +} + +func (x *Workflow) GetState() Workflow_State { + if x != nil { + return x.State + } + return Workflow_STATE_UNSPECIFIED +} + +func (x *Workflow) GetCurrentStepId() int32 { + if x != nil { + return x.CurrentStepId + } + return 0 +} + +func (x *Workflow) GetSteps() []*WorkflowStep { + if x != nil { + return x.Steps + } + return nil +} + +func (x *Workflow) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Workflow) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Workflow) GetCompleteTime() *timestamppb.Timestamp { + if x != nil { + return x.CompleteTime + } + return nil +} + +type isWorkflow_StakingParameters interface { + isWorkflow_StakingParameters() +} + +type Workflow_SolanaStakingParameters struct { + // Solana staking parameters. + SolanaStakingParameters *SolanaStakingParameters `protobuf:"bytes,9,opt,name=solana_staking_parameters,json=solanaStakingParameters,proto3,oneof"` +} + +type Workflow_EthereumKilnStakingParameters struct { + // EthereumKiln staking parameters. + EthereumKilnStakingParameters *EthereumKilnStakingParameters `protobuf:"bytes,10,opt,name=ethereum_kiln_staking_parameters,json=ethereumKilnStakingParameters,proto3,oneof"` +} + +type Workflow_EthereumStakingParameters struct { + // Ethereum staking parameters. + EthereumStakingParameters *EthereumStakingParameters `protobuf:"bytes,13,opt,name=ethereum_staking_parameters,json=ethereumStakingParameters,proto3,oneof"` +} + +func (*Workflow_SolanaStakingParameters) isWorkflow_StakingParameters() {} + +func (*Workflow_EthereumKilnStakingParameters) isWorkflow_StakingParameters() {} + +func (*Workflow_EthereumStakingParameters) isWorkflow_StakingParameters() {} + +// The request message for CreateWorkflow. +type CreateWorkflowRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the parent that owns + // the workflow. + // Format: projects/{project} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The workflow to create. + Workflow *Workflow `protobuf:"bytes,2,opt,name=workflow,proto3" json:"workflow,omitempty"` +} + +func (x *CreateWorkflowRequest) Reset() { + *x = CreateWorkflowRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWorkflowRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWorkflowRequest) ProtoMessage() {} + +func (x *CreateWorkflowRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateWorkflowRequest.ProtoReflect.Descriptor instead. +func (*CreateWorkflowRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{5} +} + +func (x *CreateWorkflowRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateWorkflowRequest) GetWorkflow() *Workflow { + if x != nil { + return x.Workflow + } + return nil +} + +// The message for GetWorkflow. +type GetWorkflowRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the workflow. + // Format: projects/{project}/workflows/{workflow} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetWorkflowRequest) Reset() { + *x = GetWorkflowRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWorkflowRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWorkflowRequest) ProtoMessage() {} + +func (x *GetWorkflowRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWorkflowRequest.ProtoReflect.Descriptor instead. +func (*GetWorkflowRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{6} +} + +func (x *GetWorkflowRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The message for ListWorkflows. +type ListWorkflowsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the parent that owns + // the collection of networks. + // Format: projects/{project} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // [AIP-160](https://google.aip.dev/160) filter + // Supported fields: + // - string action: "stake", "unstake" + // - string protocol: "ethereum_kiln" + // - string network: "holesky", "mainnet" + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The maximum number of workflows to return. The service may + // + // return fewer than this value. + // + // If unspecified, 100 workflows will be returned. + // The maximum value is 1000; values over 1000 will be floored to 1000. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token as part of the response of a previous call. + // Provide this to retrieve the next page. + // + // When paginating, all other parameters must match the previous + // request to list resources. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListWorkflowsRequest) Reset() { + *x = ListWorkflowsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWorkflowsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkflowsRequest) ProtoMessage() {} + +func (x *ListWorkflowsRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWorkflowsRequest.ProtoReflect.Descriptor instead. +func (*ListWorkflowsRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{7} +} + +func (x *ListWorkflowsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListWorkflowsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListWorkflowsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListWorkflowsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// The response message for ListWorkflows. +type ListWorkflowsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of workflows. + Workflows []*Workflow `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"` + // A token which can be provided as `page_token` to retrieve the next page. + // If this field is omitted, there are no additional pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListWorkflowsResponse) Reset() { + *x = ListWorkflowsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWorkflowsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWorkflowsResponse) ProtoMessage() {} + +func (x *ListWorkflowsResponse) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListWorkflowsResponse.ProtoReflect.Descriptor instead. +func (*ListWorkflowsResponse) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{8} +} + +func (x *ListWorkflowsResponse) GetWorkflows() []*Workflow { + if x != nil { + return x.Workflows + } + return nil +} + +func (x *ListWorkflowsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The request message for PerformWorkflowStep. +type PerformWorkflowStepRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the workflow. + // Format: projects/{project}/workflows/{workflow} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The index of the step to be performed. + Step int32 `protobuf:"varint,2,opt,name=step,proto3" json:"step,omitempty"` + // Transaction metadata. This is either the signed transaction or transaction hash depending on the workflow's broadcast method. + Data string `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *PerformWorkflowStepRequest) Reset() { + *x = PerformWorkflowStepRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PerformWorkflowStepRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PerformWorkflowStepRequest) ProtoMessage() {} + +func (x *PerformWorkflowStepRequest) ProtoReflect() protoreflect.Message { + mi := &file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PerformWorkflowStepRequest.ProtoReflect.Descriptor instead. +func (*PerformWorkflowStepRequest) Descriptor() ([]byte, []int) { + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP(), []int{9} +} + +func (x *PerformWorkflowStepRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PerformWorkflowStepRequest) GetStep() int32 { + if x != nil { + return x.Step + } + return 0 +} + +func (x *PerformWorkflowStepRequest) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +var File_coinbase_staking_orchestration_v1_workflow_proto protoreflect.FileDescriptor + +var file_coinbase_staking_orchestration_v1_workflow_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x21, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x30, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, + 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, + 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x65, 0x75, 0x6d, 0x5f, 0x6b, 0x69, 0x6c, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, + 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf8, 0x04, 0x0a, 0x0c, + 0x54, 0x78, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x78, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x54, 0x78, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x50, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x78, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x85, + 0x03, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x4e, + 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, + 0x4e, 0x47, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, + 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, + 0x45, 0x44, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x52, + 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x49, 0x4e, 0x47, + 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x11, + 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, + 0x0a, 0x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x22, 0x04, 0x08, 0x0b, 0x10, 0x0f, 0x2a, 0x15, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x49, 0x47, + 0x4e, 0x49, 0x4e, 0x47, 0x2a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, + 0x45, 0x4c, 0x49, 0x4e, 0x47, 0x2a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, + 0x43, 0x45, 0x4c, 0x45, 0x44, 0x2a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, + 0x43, 0x45, 0x4c, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x2a, 0x18, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, + 0x41, 0x42, 0x4c, 0x45, 0x2a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x46, 0x52, + 0x45, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x22, 0xf9, 0x03, 0x0a, 0x0e, 0x57, 0x61, 0x69, 0x74, 0x53, + 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x53, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x52, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x74, 0x65, + 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x08, 0x57, 0x61, + 0x69, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x55, + 0x4e, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x15, 0x0a, 0x11, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, + 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x41, 0x49, 0x54, + 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x53, 0x10, 0x02, 0x12, 0x14, + 0x0a, 0x10, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x45, 0x50, 0x4f, 0x43, + 0x48, 0x53, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x49, + 0x54, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x10, 0x04, 0x22, + 0x61, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x13, 0x0a, + 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, + 0x10, 0x03, 0x22, 0xd6, 0x01, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, + 0x5c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x5c, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x22, 0xaa, 0x03, 0x0a, 0x0c, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x74, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x78, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x78, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x62, 0x0a, 0x10, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x61, 0x69, 0x74, 0x53, 0x74, 0x65, + 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x81, 0x01, 0x0a, 0x1b, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x72, 0x61, + 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, + 0x00, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x3a, 0x31, 0x92, 0x41, 0x2e, + 0x0a, 0x2c, 0x2a, 0x2a, 0x54, 0x68, 0x65, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, + 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0xe8, 0x09, 0x0a, 0x08, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7d, 0x0a, 0x19, 0x73, + 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x00, 0x52, 0x17, 0x73, 0x6f, 0x6c, 0x61, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x20, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x6b, 0x69, 0x6c, 0x6e, 0x5f, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, + 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x1d, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x4b, 0x69, 0x6c, 0x6e, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x83, 0x01, + 0x0a, 0x1b, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, + 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, 0x00, 0x52, 0x19, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, + 0x75, 0x6d, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x65, 0x70, 0x49, 0x64, 0x12, 0x4a, + 0x0a, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, + 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, + 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, + 0x52, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x10, + 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, + 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, + 0x08, 0x05, 0x10, 0x08, 0x2a, 0x19, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, + 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x49, 0x4e, 0x47, 0x2a, + 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x49, 0x4e, 0x47, + 0x2a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, + 0x2a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x2a, 0x18, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x3a, + 0x60, 0xea, 0x41, 0x5d, 0x0a, 0x1d, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, + 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x57, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x12, 0x27, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x7d, 0x2a, 0x09, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x32, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x42, 0x14, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, + 0x0b, 0x10, 0x0c, 0x22, 0xa4, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, + 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x08, + 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x4f, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x14, + 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8a, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x49, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x67, 0x0a, 0x1a, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x65, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x48, 0x5a, 0x46, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x62, 0x68, 0x71, 0x2e, 0x6e, 0x65, 0x74, 0x2f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_coinbase_staking_orchestration_v1_workflow_proto_rawDescOnce sync.Once + file_coinbase_staking_orchestration_v1_workflow_proto_rawDescData = file_coinbase_staking_orchestration_v1_workflow_proto_rawDesc +) + +func file_coinbase_staking_orchestration_v1_workflow_proto_rawDescGZIP() []byte { + file_coinbase_staking_orchestration_v1_workflow_proto_rawDescOnce.Do(func() { + file_coinbase_staking_orchestration_v1_workflow_proto_rawDescData = protoimpl.X.CompressGZIP(file_coinbase_staking_orchestration_v1_workflow_proto_rawDescData) + }) + return file_coinbase_staking_orchestration_v1_workflow_proto_rawDescData +} + +var file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_coinbase_staking_orchestration_v1_workflow_proto_goTypes = []interface{}{ + (TxStepOutput_State)(0), // 0: coinbase.staking.orchestration.v1.TxStepOutput.State + (WaitStepOutput_WaitUnit)(0), // 1: coinbase.staking.orchestration.v1.WaitStepOutput.WaitUnit + (WaitStepOutput_State)(0), // 2: coinbase.staking.orchestration.v1.WaitStepOutput.State + (ProvisionInfraStepOutput_State)(0), // 3: coinbase.staking.orchestration.v1.ProvisionInfraStepOutput.State + (Workflow_State)(0), // 4: coinbase.staking.orchestration.v1.Workflow.State + (*TxStepOutput)(nil), // 5: coinbase.staking.orchestration.v1.TxStepOutput + (*WaitStepOutput)(nil), // 6: coinbase.staking.orchestration.v1.WaitStepOutput + (*ProvisionInfraStepOutput)(nil), // 7: coinbase.staking.orchestration.v1.ProvisionInfraStepOutput + (*WorkflowStep)(nil), // 8: coinbase.staking.orchestration.v1.WorkflowStep + (*Workflow)(nil), // 9: coinbase.staking.orchestration.v1.Workflow + (*CreateWorkflowRequest)(nil), // 10: coinbase.staking.orchestration.v1.CreateWorkflowRequest + (*GetWorkflowRequest)(nil), // 11: coinbase.staking.orchestration.v1.GetWorkflowRequest + (*ListWorkflowsRequest)(nil), // 12: coinbase.staking.orchestration.v1.ListWorkflowsRequest + (*ListWorkflowsResponse)(nil), // 13: coinbase.staking.orchestration.v1.ListWorkflowsResponse + (*PerformWorkflowStepRequest)(nil), // 14: coinbase.staking.orchestration.v1.PerformWorkflowStepRequest + (*SolanaStakingParameters)(nil), // 15: coinbase.staking.orchestration.v1.SolanaStakingParameters + (*EthereumKilnStakingParameters)(nil), // 16: coinbase.staking.orchestration.v1.EthereumKilnStakingParameters + (*EthereumStakingParameters)(nil), // 17: coinbase.staking.orchestration.v1.EthereumStakingParameters + (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp +} +var file_coinbase_staking_orchestration_v1_workflow_proto_depIdxs = []int32{ + 0, // 0: coinbase.staking.orchestration.v1.TxStepOutput.state:type_name -> coinbase.staking.orchestration.v1.TxStepOutput.State + 1, // 1: coinbase.staking.orchestration.v1.WaitStepOutput.unit:type_name -> coinbase.staking.orchestration.v1.WaitStepOutput.WaitUnit + 2, // 2: coinbase.staking.orchestration.v1.WaitStepOutput.state:type_name -> coinbase.staking.orchestration.v1.WaitStepOutput.State + 3, // 3: coinbase.staking.orchestration.v1.ProvisionInfraStepOutput.state:type_name -> coinbase.staking.orchestration.v1.ProvisionInfraStepOutput.State + 5, // 4: coinbase.staking.orchestration.v1.WorkflowStep.tx_step_output:type_name -> coinbase.staking.orchestration.v1.TxStepOutput + 6, // 5: coinbase.staking.orchestration.v1.WorkflowStep.wait_step_output:type_name -> coinbase.staking.orchestration.v1.WaitStepOutput + 7, // 6: coinbase.staking.orchestration.v1.WorkflowStep.provision_infra_step_output:type_name -> coinbase.staking.orchestration.v1.ProvisionInfraStepOutput + 15, // 7: coinbase.staking.orchestration.v1.Workflow.solana_staking_parameters:type_name -> coinbase.staking.orchestration.v1.SolanaStakingParameters + 16, // 8: coinbase.staking.orchestration.v1.Workflow.ethereum_kiln_staking_parameters:type_name -> coinbase.staking.orchestration.v1.EthereumKilnStakingParameters + 17, // 9: coinbase.staking.orchestration.v1.Workflow.ethereum_staking_parameters:type_name -> coinbase.staking.orchestration.v1.EthereumStakingParameters + 4, // 10: coinbase.staking.orchestration.v1.Workflow.state:type_name -> coinbase.staking.orchestration.v1.Workflow.State + 8, // 11: coinbase.staking.orchestration.v1.Workflow.steps:type_name -> coinbase.staking.orchestration.v1.WorkflowStep + 18, // 12: coinbase.staking.orchestration.v1.Workflow.create_time:type_name -> google.protobuf.Timestamp + 18, // 13: coinbase.staking.orchestration.v1.Workflow.update_time:type_name -> google.protobuf.Timestamp + 18, // 14: coinbase.staking.orchestration.v1.Workflow.complete_time:type_name -> google.protobuf.Timestamp + 9, // 15: coinbase.staking.orchestration.v1.CreateWorkflowRequest.workflow:type_name -> coinbase.staking.orchestration.v1.Workflow + 9, // 16: coinbase.staking.orchestration.v1.ListWorkflowsResponse.workflows:type_name -> coinbase.staking.orchestration.v1.Workflow + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +} + +func init() { file_coinbase_staking_orchestration_v1_workflow_proto_init() } +func file_coinbase_staking_orchestration_v1_workflow_proto_init() { + if File_coinbase_staking_orchestration_v1_workflow_proto != nil { + return + } + file_coinbase_staking_orchestration_v1_ethereum_proto_init() + file_coinbase_staking_orchestration_v1_ethereum_kiln_proto_init() + file_coinbase_staking_orchestration_v1_solana_proto_init() + if !protoimpl.UnsafeEnabled { + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxStepOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitStepOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProvisionInfraStepOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkflowStep); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Workflow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWorkflowRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWorkflowRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWorkflowsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWorkflowsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PerformWorkflowStepRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*WorkflowStep_TxStepOutput)(nil), + (*WorkflowStep_WaitStepOutput)(nil), + (*WorkflowStep_ProvisionInfraStepOutput)(nil), + } + file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*Workflow_SolanaStakingParameters)(nil), + (*Workflow_EthereumKilnStakingParameters)(nil), + (*Workflow_EthereumStakingParameters)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_coinbase_staking_orchestration_v1_workflow_proto_rawDesc, + NumEnums: 5, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_coinbase_staking_orchestration_v1_workflow_proto_goTypes, + DependencyIndexes: file_coinbase_staking_orchestration_v1_workflow_proto_depIdxs, + EnumInfos: file_coinbase_staking_orchestration_v1_workflow_proto_enumTypes, + MessageInfos: file_coinbase_staking_orchestration_v1_workflow_proto_msgTypes, + }.Build() + File_coinbase_staking_orchestration_v1_workflow_proto = out.File + file_coinbase_staking_orchestration_v1_workflow_proto_rawDesc = nil + file_coinbase_staking_orchestration_v1_workflow_proto_goTypes = nil + file_coinbase_staking_orchestration_v1_workflow_proto_depIdxs = nil +} diff --git a/gen/go/coinbase/staking/orchestration/v1/workflow_aip.go b/gen/go/coinbase/staking/orchestration/v1/workflow_aip.go new file mode 100644 index 0000000..e2dad6f --- /dev/null +++ b/gen/go/coinbase/staking/orchestration/v1/workflow_aip.go @@ -0,0 +1,63 @@ +// Code generated by protoc-gen-go-aip. DO NOT EDIT. +// +// versions: +// protoc-gen-go-aip development +// protoc (unknown) +// source: coinbase/staking/orchestration/v1/workflow.proto + +package v1 + +import ( + fmt "fmt" + resourcename "go.einride.tech/aip/resourcename" + strings "strings" +) + +type WorkflowResourceName struct { + Project string + Workflow string +} + +func (n WorkflowResourceName) Validate() error { + if n.Project == "" { + return fmt.Errorf("project: empty") + } + if strings.IndexByte(n.Project, '/') != -1 { + return fmt.Errorf("project: contains illegal character '/'") + } + if n.Workflow == "" { + return fmt.Errorf("workflow: empty") + } + if strings.IndexByte(n.Workflow, '/') != -1 { + return fmt.Errorf("workflow: contains illegal character '/'") + } + return nil +} + +func (n WorkflowResourceName) ContainsWildcard() bool { + return false || n.Project == "-" || n.Workflow == "-" +} + +func (n WorkflowResourceName) String() string { + return resourcename.Sprint( + "projects/{project}/workflows/{workflow}", + n.Project, + n.Workflow, + ) +} + +func (n WorkflowResourceName) MarshalString() (string, error) { + if err := n.Validate(); err != nil { + return "", err + } + return n.String(), nil +} + +func (n *WorkflowResourceName) UnmarshalString(name string) error { + return resourcename.Sscan( + name, + "projects/{project}/workflows/{workflow}", + &n.Project, + &n.Workflow, + ) +}