diff --git a/Makefile b/Makefile index 5cc4f82..1c8a147 100755 --- a/Makefile +++ b/Makefile @@ -33,7 +33,8 @@ lint: ## run: run in dev mode run: clean @echo "Running coordinatord in dev mode..." - @go run ./cmd/coordinatord + @export ARK_COORDINATOR_WALLET_ADDR=localhost:18000; \ + go run ./cmd/coordinatord ## test: runs unit and component tests test: @@ -45,10 +46,10 @@ vet: @echo "Running code analysis..." @go vet ./... - ## proto: compile proto stubs proto: proto-lint @echo "Compiling stubs..." + @buf generate buf.build/vulpemventures/ocean @buf generate ## proto-lint: lint protos diff --git a/api-spec/openapi/swagger/coordinator/v1/service.swagger.json b/api-spec/openapi/swagger/coordinator/v1/service.swagger.json new file mode 100644 index 0000000..e506444 --- /dev/null +++ b/api-spec/openapi/swagger/coordinator/v1/service.swagger.json @@ -0,0 +1,326 @@ +{ + "swagger": "2.0", + "info": { + "title": "coordinator/v1/service.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "CoordinatorService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/payment/claim": { + "post": { + "operationId": "CoordinatorService_ClaimPayment", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ClaimPaymentResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1ClaimPaymentRequest" + } + } + ], + "tags": [ + "CoordinatorService" + ] + } + }, + "/v1/payment/finalize": { + "post": { + "operationId": "CoordinatorService_FinalizePayment", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1FinalizePaymentResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FinalizePaymentRequest" + } + } + ], + "tags": [ + "CoordinatorService" + ] + } + }, + "/v1/payment/register": { + "post": { + "operationId": "CoordinatorService_RegisterPayment", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1RegisterPaymentResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1RegisterPaymentRequest" + } + } + ], + "tags": [ + "CoordinatorService" + ] + } + }, + "/v1/round/{txid}": { + "get": { + "operationId": "CoordinatorService_GetRound", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetRoundResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "txid", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "CoordinatorService" + ] + } + }, + "/v1/rounds": { + "post": { + "operationId": "CoordinatorService_ListRounds", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListRoundsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1ListRoundsRequest" + } + } + ], + "tags": [ + "CoordinatorService" + ] + } + } + }, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1ClaimPaymentRequest": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Mocks wabisabi's credentials." + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Output" + }, + "description": "List of receivers for a registered payment." + } + } + }, + "v1ClaimPaymentResponse": { + "type": "object" + }, + "v1FinalizePaymentRequest": { + "type": "object", + "properties": { + "signedVtx": { + "type": "string", + "description": "Forfeit tx signed also by the user." + } + } + }, + "v1FinalizePaymentResponse": { + "type": "object" + }, + "v1GetRoundResponse": { + "type": "object", + "properties": { + "round": { + "$ref": "#/definitions/v1Round" + } + } + }, + "v1ListRoundsRequest": { + "type": "object", + "properties": { + "start": { + "type": "string", + "format": "int64" + }, + "end": { + "type": "string", + "format": "int64" + } + } + }, + "v1ListRoundsResponse": { + "type": "object", + "properties": { + "rounds": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Round" + } + } + } + }, + "v1Output": { + "type": "object", + "properties": { + "pubkey": { + "type": "string" + }, + "amount": { + "type": "string", + "format": "uint64" + } + } + }, + "v1RegisterPaymentRequest": { + "type": "object", + "properties": { + "vtx": { + "type": "string", + "description": "Unsigned forfeit tx sending all funds back to the ASP." + } + } + }, + "v1RegisterPaymentResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Mocks wabisabi's credentials." + }, + "signedVtx": { + "type": "string", + "description": "Forfeit tx signed by the ASP." + } + } + }, + "v1Round": { + "type": "object", + "properties": { + "start": { + "type": "string", + "format": "int64" + }, + "end": { + "type": "string", + "format": "int64" + }, + "txid": { + "type": "string" + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Output" + } + } + } + } + } +} diff --git a/api-spec/openapi/swagger/ocean/v1/account.swagger.json b/api-spec/openapi/swagger/ocean/v1/account.swagger.json new file mode 100644 index 0000000..05dd303 --- /dev/null +++ b/api-spec/openapi/swagger/ocean/v1/account.swagger.json @@ -0,0 +1,323 @@ +{ + "swagger": "2.0", + "info": { + "title": "ocean/v1/account.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "AccountService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "TemplateFormat": { + "type": "string", + "enum": [ + "FORMAT_UNSPECIFIED", + "FORMAT_DESCRIPTOR", + "FORMAT_MINISCRIPT", + "FORMAT_IONIO", + "FORMAT_RAW" + ], + "default": "FORMAT_UNSPECIFIED" + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1AccountInfo": { + "type": "object", + "properties": { + "namespace": { + "type": "string", + "description": "Account namespace." + }, + "label": { + "type": "string", + "description": "Account label." + }, + "derivationPath": { + "type": "string", + "description": "Derivation path." + }, + "xpubs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Xpubs." + }, + "masterBlindingKey": { + "type": "string", + "description": "The master blinding key of the account to derive blinding keypairs from." + } + } + }, + "v1BalanceInfo": { + "type": "object", + "properties": { + "confirmedBalance": { + "type": "string", + "format": "uint64", + "description": "Balance of utxos with 1+ confirmations." + }, + "unconfirmedBalance": { + "type": "string", + "format": "uint64", + "description": "Balance of utxos with no confirmations." + }, + "lockedBalance": { + "type": "string", + "format": "uint64", + "description": "Balance of locked utxos." + }, + "totalBalance": { + "type": "string", + "format": "uint64", + "description": "Total balance." + } + } + }, + "v1BalanceResponse": { + "type": "object", + "properties": { + "balance": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/v1BalanceInfo" + }, + "description": "The balance (total, confirmed, unconfirmed) per each asset." + } + } + }, + "v1BlockDetails": { + "type": "object", + "properties": { + "hash": { + "type": "string", + "description": "Hash of the block." + }, + "height": { + "type": "string", + "format": "uint64", + "description": "Heighth (index) of the block." + }, + "timestamp": { + "type": "string", + "format": "int64", + "description": "Timestamp of the block." + } + } + }, + "v1CreateAccountBIP44Response": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/v1AccountInfo", + "description": "Info about the new account." + } + } + }, + "v1CreateAccountCustomResponse": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/v1AccountInfo", + "description": "Info about the new account." + } + } + }, + "v1CreateAccountMultiSigResponse": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/v1AccountInfo", + "description": "Info about the new account." + } + } + }, + "v1DeleteAccountResponse": { + "type": "object" + }, + "v1DeriveAddressesResponse": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1DeriveChangeAddressesResponse": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1ListAddressesResponse": { + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1ListUtxosResponse": { + "type": "object", + "properties": { + "spendableUtxos": { + "$ref": "#/definitions/v1Utxos", + "description": "List of spendable utxos." + }, + "lockedUtxos": { + "$ref": "#/definitions/v1Utxos", + "description": "List of currently locked utxos." + } + } + }, + "v1SetAccountLabelResponse": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/v1AccountInfo", + "description": "Info about the updated account." + } + } + }, + "v1SetAccountTemplateResponse": { + "type": "object" + }, + "v1Template": { + "type": "object", + "properties": { + "format": { + "$ref": "#/definitions/TemplateFormat" + }, + "value": { + "type": "string" + } + } + }, + "v1Utxo": { + "type": "object", + "properties": { + "txid": { + "type": "string", + "description": "Txid of the uxo." + }, + "index": { + "type": "integer", + "format": "int64", + "description": "Output index." + }, + "asset": { + "type": "string", + "description": "Asset." + }, + "value": { + "type": "string", + "format": "uint64", + "description": "Value." + }, + "script": { + "type": "string", + "description": "Script." + }, + "assetBlinder": { + "type": "string", + "description": "Asset blinder for confidential utxo." + }, + "valueBlinder": { + "type": "string", + "description": "Value blinder for confidential utxo." + }, + "accountName": { + "type": "string", + "description": "Namespace of the account owning the utxo." + }, + "spentStatus": { + "$ref": "#/definitions/v1UtxoStatus", + "description": "Info about utxo's spent status." + }, + "confirmedStatus": { + "$ref": "#/definitions/v1UtxoStatus", + "description": "Info about utxo's confirmation status." + }, + "redeemScript": { + "type": "string", + "description": "Redeem script locking the utxo in case its owned by a multisig account." + } + } + }, + "v1UtxoStatus": { + "type": "object", + "properties": { + "txid": { + "type": "string" + }, + "blockInfo": { + "$ref": "#/definitions/v1BlockDetails" + }, + "txhex": { + "type": "string" + } + } + }, + "v1Utxos": { + "type": "object", + "properties": { + "accountName": { + "type": "string", + "description": "Account namespace." + }, + "utxos": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Utxo" + }, + "description": "List of utxos." + } + } + } + } +} diff --git a/api-spec/openapi/swagger/ocean/v1/notification.swagger.json b/api-spec/openapi/swagger/ocean/v1/notification.swagger.json new file mode 100644 index 0000000..488d095 --- /dev/null +++ b/api-spec/openapi/swagger/ocean/v1/notification.swagger.json @@ -0,0 +1,250 @@ +{ + "swagger": "2.0", + "info": { + "title": "ocean/v1/notification.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "NotificationService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1AddWebhookResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the new webhook." + } + } + }, + "v1BlockDetails": { + "type": "object", + "properties": { + "hash": { + "type": "string", + "description": "Hash of the block." + }, + "height": { + "type": "string", + "format": "uint64", + "description": "Heighth (index) of the block." + }, + "timestamp": { + "type": "string", + "format": "int64", + "description": "Timestamp of the block." + } + } + }, + "v1ListWebhooksResponse": { + "type": "object", + "properties": { + "webhookInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/v1WebhookInfo" + }, + "description": "The list of info about the webhooks regitered for an action." + } + } + }, + "v1RemoveWebhookResponse": { + "type": "object" + }, + "v1TransactionNotificationsResponse": { + "type": "object", + "properties": { + "eventType": { + "$ref": "#/definitions/v1TxEventType", + "description": "Tx event type." + }, + "accountNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Account names." + }, + "txhex": { + "type": "string", + "description": "Tx in hex format." + }, + "txid": { + "type": "string", + "description": "Txid of transaction." + }, + "blockDetails": { + "$ref": "#/definitions/v1BlockDetails", + "description": "Details of the block including the tx." + } + } + }, + "v1TxEventType": { + "type": "string", + "enum": [ + "TX_EVENT_TYPE_UNSPECIFIED", + "TX_EVENT_TYPE_BROADCASTED", + "TX_EVENT_TYPE_UNCONFIRMED", + "TX_EVENT_TYPE_CONFIRMED" + ], + "default": "TX_EVENT_TYPE_UNSPECIFIED", + "description": " - TX_EVENT_TYPE_BROADCASTED: Tx broadcasted.\n - TX_EVENT_TYPE_UNCONFIRMED: Tx unconfirmed.\n - TX_EVENT_TYPE_CONFIRMED: Tx confirmed." + }, + "v1Utxo": { + "type": "object", + "properties": { + "txid": { + "type": "string", + "description": "Txid of the uxo." + }, + "index": { + "type": "integer", + "format": "int64", + "description": "Output index." + }, + "asset": { + "type": "string", + "description": "Asset." + }, + "value": { + "type": "string", + "format": "uint64", + "description": "Value." + }, + "script": { + "type": "string", + "description": "Script." + }, + "assetBlinder": { + "type": "string", + "description": "Asset blinder for confidential utxo." + }, + "valueBlinder": { + "type": "string", + "description": "Value blinder for confidential utxo." + }, + "accountName": { + "type": "string", + "description": "Namespace of the account owning the utxo." + }, + "spentStatus": { + "$ref": "#/definitions/v1UtxoStatus", + "description": "Info about utxo's spent status." + }, + "confirmedStatus": { + "$ref": "#/definitions/v1UtxoStatus", + "description": "Info about utxo's confirmation status." + }, + "redeemScript": { + "type": "string", + "description": "Redeem script locking the utxo in case its owned by a multisig account." + } + } + }, + "v1UtxoEventType": { + "type": "string", + "enum": [ + "UTXO_EVENT_TYPE_UNSPECIFIED", + "UTXO_EVENT_TYPE_NEW", + "UTXO_EVENT_TYPE_CONFIRMED", + "UTXO_EVENT_TYPE_LOCKED", + "UTXO_EVENT_TYPE_UNLOCKED", + "UTXO_EVENT_TYPE_SPENT" + ], + "default": "UTXO_EVENT_TYPE_UNSPECIFIED" + }, + "v1UtxoStatus": { + "type": "object", + "properties": { + "txid": { + "type": "string" + }, + "blockInfo": { + "$ref": "#/definitions/v1BlockDetails" + }, + "txhex": { + "type": "string" + } + } + }, + "v1UtxosNotificationsResponse": { + "type": "object", + "properties": { + "eventType": { + "$ref": "#/definitions/v1UtxoEventType", + "description": "The event's type occured for the utxos." + }, + "utxos": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Utxo" + }, + "description": "List of utxos for which occured the event." + } + } + }, + "v1WebhookEventType": { + "type": "string", + "enum": [ + "WEBHOOK_EVENT_TYPE_UNSPECIFIED", + "WEBHOOK_EVENT_TYPE_TRANSACTION", + "WEBHOOK_EVENT_TYPE_UTXO" + ], + "default": "WEBHOOK_EVENT_TYPE_UNSPECIFIED", + "description": " - WEBHOOK_EVENT_TYPE_TRANSACTION: Receive notification about transactions.\n - WEBHOOK_EVENT_TYPE_UTXO: Receive notifications about utxos." + }, + "v1WebhookInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the webhook." + }, + "endpoint": { + "type": "string", + "description": "The endpoint of the external service to reach." + }, + "isSecured": { + "type": "boolean", + "description": "Whether the outgoing requests are authenticated." + } + } + } + } +} diff --git a/api-spec/openapi/swagger/ocean/v1/transaction.swagger.json b/api-spec/openapi/swagger/ocean/v1/transaction.swagger.json new file mode 100644 index 0000000..7dfb163 --- /dev/null +++ b/api-spec/openapi/swagger/ocean/v1/transaction.swagger.json @@ -0,0 +1,383 @@ +{ + "swagger": "2.0", + "info": { + "title": "ocean/v1/transaction.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "TransactionService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "SelectUtxosRequestStrategy": { + "type": "string", + "enum": [ + "STRATEGY_UNSPECIFIED", + "STRATEGY_BRANCH_BOUND", + "STRATEGY_FRAGMENT" + ], + "default": "STRATEGY_UNSPECIFIED", + "description": "Coin-selection algorithm." + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1BlindPsetResponse": { + "type": "object", + "properties": { + "pset": { + "type": "string", + "description": "Updated partial transaction with blinded inputs/outputs in base64 format." + } + } + }, + "v1BlockDetails": { + "type": "object", + "properties": { + "hash": { + "type": "string", + "description": "Hash of the block." + }, + "height": { + "type": "string", + "format": "uint64", + "description": "Heighth (index) of the block." + }, + "timestamp": { + "type": "string", + "format": "int64", + "description": "Timestamp of the block." + } + } + }, + "v1BroadcastTransactionResponse": { + "type": "object", + "properties": { + "txid": { + "type": "string", + "description": "Hash of the broadcasted transaction." + } + } + }, + "v1BurnResponse": { + "type": "object", + "properties": { + "txHex": { + "type": "string", + "description": "Signed tx in hex format." + } + } + }, + "v1ClaimPegInResponse": { + "type": "object", + "properties": { + "txHex": { + "type": "string", + "description": "Signed tx in hex format." + } + } + }, + "v1CreatePsetResponse": { + "type": "object", + "properties": { + "pset": { + "type": "string", + "description": "New partial transaction in base64 format." + } + } + }, + "v1EstimateFeesResponse": { + "type": "object", + "properties": { + "feeAmount": { + "type": "string", + "format": "uint64" + } + } + }, + "v1GetTransactionResponse": { + "type": "object", + "properties": { + "txHex": { + "type": "string", + "description": "Raw transaction in hex format." + }, + "blockDetails": { + "$ref": "#/definitions/v1BlockDetails", + "description": "Deatils of the block including the transaction." + } + } + }, + "v1Input": { + "type": "object", + "properties": { + "txid": { + "type": "string", + "description": "Previous output txid." + }, + "index": { + "type": "integer", + "format": "int64", + "description": "Previous tx output index." + }, + "script": { + "type": "string", + "description": "Prevout script." + }, + "scriptsigSize": { + "type": "string", + "format": "uint64", + "description": "Input scriptsig size." + }, + "witnessSize": { + "type": "string", + "format": "uint64", + "description": "Input witness size." + } + } + }, + "v1MintResponse": { + "type": "object", + "properties": { + "txHex": { + "type": "string", + "description": "Signed tx in hex format." + } + } + }, + "v1Output": { + "type": "object", + "properties": { + "asset": { + "type": "string", + "description": "Asset hash." + }, + "amount": { + "type": "string", + "format": "uint64", + "description": "Sent amount." + }, + "address": { + "type": "string", + "description": "Address to send funds to." + }, + "script": { + "type": "string", + "description": "ScriptPubkey to send funds to (alternative to address)." + }, + "blindingPubkey": { + "type": "string", + "description": "Blinding public key to make output confidential (alternative to address)." + } + } + }, + "v1PegInAddressResponse": { + "type": "object", + "properties": { + "accountName": { + "type": "string", + "description": "Account name." + }, + "mainChainAddress": { + "type": "string", + "description": "Main-chain deposit address to send bitcoin to." + }, + "claimScript": { + "type": "string", + "description": "Claim script committed to by the main-chain address." + } + } + }, + "v1RemintResponse": { + "type": "object", + "properties": { + "txHex": { + "type": "string", + "description": "Signed tx in hex format." + } + } + }, + "v1SelectUtxosResponse": { + "type": "object", + "properties": { + "utxos": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Utxo" + }, + "description": "List of selected utxos." + }, + "change": { + "type": "string", + "format": "uint64", + "description": "Eventual change amount if utxos cumulative sum exceeds the target amount." + }, + "expirationDate": { + "type": "string", + "format": "int64", + "description": "Expiration date for the selected utxo, which are temporary locked to\nprevent double spending them." + } + } + }, + "v1SignPsetResponse": { + "type": "object", + "properties": { + "pset": { + "type": "string", + "description": "Signed partial transaction in base64 format." + } + } + }, + "v1SignTransactionResponse": { + "type": "object", + "properties": { + "txHex": { + "type": "string", + "description": "Raw signed transaction." + } + } + }, + "v1TransferResponse": { + "type": "object", + "properties": { + "txHex": { + "type": "string", + "description": "Signed tx in hex format." + } + } + }, + "v1UnblindedInput": { + "type": "object", + "properties": { + "index": { + "type": "integer", + "format": "int64", + "description": "Index of the pset input." + }, + "asset": { + "type": "string", + "description": "Revealed prevout asset." + }, + "amount": { + "type": "string", + "format": "uint64", + "description": "Revealed prevout amount." + }, + "assetBlinder": { + "type": "string", + "description": "Prevout asset blinder." + }, + "amountBlinder": { + "type": "string", + "description": "Prevout amount blinder." + } + } + }, + "v1UpdatePsetResponse": { + "type": "object", + "properties": { + "pset": { + "type": "string", + "description": "Updated partial transaction in base64 format." + } + } + }, + "v1Utxo": { + "type": "object", + "properties": { + "txid": { + "type": "string", + "description": "Txid of the uxo." + }, + "index": { + "type": "integer", + "format": "int64", + "description": "Output index." + }, + "asset": { + "type": "string", + "description": "Asset." + }, + "value": { + "type": "string", + "format": "uint64", + "description": "Value." + }, + "script": { + "type": "string", + "description": "Script." + }, + "assetBlinder": { + "type": "string", + "description": "Asset blinder for confidential utxo." + }, + "valueBlinder": { + "type": "string", + "description": "Value blinder for confidential utxo." + }, + "accountName": { + "type": "string", + "description": "Namespace of the account owning the utxo." + }, + "spentStatus": { + "$ref": "#/definitions/v1UtxoStatus", + "description": "Info about utxo's spent status." + }, + "confirmedStatus": { + "$ref": "#/definitions/v1UtxoStatus", + "description": "Info about utxo's confirmation status." + }, + "redeemScript": { + "type": "string", + "description": "Redeem script locking the utxo in case its owned by a multisig account." + } + } + }, + "v1UtxoStatus": { + "type": "object", + "properties": { + "txid": { + "type": "string" + }, + "blockInfo": { + "$ref": "#/definitions/v1BlockDetails" + }, + "txhex": { + "type": "string" + } + } + } + } +} diff --git a/api-spec/openapi/swagger/ocean/v1/types.swagger.json b/api-spec/openapi/swagger/ocean/v1/types.swagger.json new file mode 100644 index 0000000..8ccc6f6 --- /dev/null +++ b/api-spec/openapi/swagger/ocean/v1/types.swagger.json @@ -0,0 +1,43 @@ +{ + "swagger": "2.0", + "info": { + "title": "ocean/v1/types.proto", + "version": "version not set" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/api-spec/openapi/swagger/ocean/v1/wallet.swagger.json b/api-spec/openapi/swagger/ocean/v1/wallet.swagger.json new file mode 100644 index 0000000..7f181bc --- /dev/null +++ b/api-spec/openapi/swagger/ocean/v1/wallet.swagger.json @@ -0,0 +1,195 @@ +{ + "swagger": "2.0", + "info": { + "title": "ocean/v1/wallet.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "WalletService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "GetInfoResponseNetwork": { + "type": "string", + "enum": [ + "NETWORK_UNSPECIFIED", + "NETWORK_MAINNET", + "NETWORK_TESTNET", + "NETWORK_REGTEST" + ], + "default": "NETWORK_UNSPECIFIED" + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1AccountInfo": { + "type": "object", + "properties": { + "namespace": { + "type": "string", + "description": "Account namespace." + }, + "label": { + "type": "string", + "description": "Account label." + }, + "derivationPath": { + "type": "string", + "description": "Derivation path." + }, + "xpubs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Xpubs." + }, + "masterBlindingKey": { + "type": "string", + "description": "The master blinding key of the account to derive blinding keypairs from." + } + } + }, + "v1AuthResponse": { + "type": "object", + "properties": { + "verified": { + "type": "boolean" + } + } + }, + "v1BuildInfo": { + "type": "object", + "properties": { + "version": { + "type": "string", + "description": "Number of the version." + }, + "commit": { + "type": "string", + "description": "Hash of the commit." + }, + "date": { + "type": "string", + "description": "Date of the commit." + } + } + }, + "v1ChangePasswordResponse": { + "type": "object" + }, + "v1CreateWalletResponse": { + "type": "object" + }, + "v1GenSeedResponse": { + "type": "object", + "properties": { + "mnemonic": { + "type": "string", + "description": "A mnemonic from where deriving signing and blinding key pairs." + } + } + }, + "v1GetInfoResponse": { + "type": "object", + "properties": { + "network": { + "$ref": "#/definitions/GetInfoResponseNetwork", + "title": "The Liquid network of the wallet" + }, + "nativeAsset": { + "type": "string", + "description": "The Liquid Bitcoin (LBTC) asset hash of the network." + }, + "rootPath": { + "type": "string", + "description": "The root derivation path of the HD wallet." + }, + "birthdayBlockHash": { + "type": "string", + "description": "The hash of the block at wallet creation time." + }, + "birthdayBlockHeight": { + "type": "integer", + "format": "int64", + "description": "The height of the block at wallet creation time." + }, + "accounts": { + "type": "array", + "items": { + "$ref": "#/definitions/v1AccountInfo" + }, + "description": "List containing info about the wallet accounts." + }, + "buildInfo": { + "$ref": "#/definitions/v1BuildInfo", + "description": "Info about the current version of the ocean wallet." + } + } + }, + "v1LockResponse": { + "type": "object" + }, + "v1RestoreWalletResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "String message returned within the process." + } + } + }, + "v1StatusResponse": { + "type": "object", + "properties": { + "initialized": { + "type": "boolean", + "description": "Whether the wallet is initialized with seeds." + }, + "synced": { + "type": "boolean", + "description": "Whether the wallet is in sync, meaning it's keeping track of every utxo\nof every account." + }, + "unlocked": { + "type": "boolean", + "description": "Whether the wallet is unlocked." + } + } + }, + "v1UnlockResponse": { + "type": "object" + } + } +} diff --git a/api-spec/protobuf/gen/ocean/v1/account.pb.go b/api-spec/protobuf/gen/ocean/v1/account.pb.go new file mode 100644 index 0000000..80fc275 --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/account.pb.go @@ -0,0 +1,1679 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc (unknown) +// source: ocean/v1/account.proto + +package oceanv1 + +import ( + 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) +) + +type CreateAccountBIP44Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional label for the new account. + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` +} + +func (x *CreateAccountBIP44Request) Reset() { + *x = CreateAccountBIP44Request{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAccountBIP44Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAccountBIP44Request) ProtoMessage() {} + +func (x *CreateAccountBIP44Request) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 CreateAccountBIP44Request.ProtoReflect.Descriptor instead. +func (*CreateAccountBIP44Request) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateAccountBIP44Request) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +type CreateAccountBIP44Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Info about the new account. + Info *AccountInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` +} + +func (x *CreateAccountBIP44Response) Reset() { + *x = CreateAccountBIP44Response{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAccountBIP44Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAccountBIP44Response) ProtoMessage() {} + +func (x *CreateAccountBIP44Response) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 CreateAccountBIP44Response.ProtoReflect.Descriptor instead. +func (*CreateAccountBIP44Response) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateAccountBIP44Response) GetInfo() *AccountInfo { + if x != nil { + return x.Info + } + return nil +} + +type CreateAccountMultiSigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional label for the new account. + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` +} + +func (x *CreateAccountMultiSigRequest) Reset() { + *x = CreateAccountMultiSigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAccountMultiSigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAccountMultiSigRequest) ProtoMessage() {} + +func (x *CreateAccountMultiSigRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 CreateAccountMultiSigRequest.ProtoReflect.Descriptor instead. +func (*CreateAccountMultiSigRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateAccountMultiSigRequest) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +type CreateAccountMultiSigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Info about the new account. + Info *AccountInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` +} + +func (x *CreateAccountMultiSigResponse) Reset() { + *x = CreateAccountMultiSigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAccountMultiSigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAccountMultiSigResponse) ProtoMessage() {} + +func (x *CreateAccountMultiSigResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 CreateAccountMultiSigResponse.ProtoReflect.Descriptor instead. +func (*CreateAccountMultiSigResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateAccountMultiSigResponse) GetInfo() *AccountInfo { + if x != nil { + return x.Info + } + return nil +} + +type CreateAccountCustomRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional label for the new account. + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` +} + +func (x *CreateAccountCustomRequest) Reset() { + *x = CreateAccountCustomRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAccountCustomRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAccountCustomRequest) ProtoMessage() {} + +func (x *CreateAccountCustomRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 CreateAccountCustomRequest.ProtoReflect.Descriptor instead. +func (*CreateAccountCustomRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{4} +} + +func (x *CreateAccountCustomRequest) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +type CreateAccountCustomResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Info about the new account. + Info *AccountInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` +} + +func (x *CreateAccountCustomResponse) Reset() { + *x = CreateAccountCustomResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAccountCustomResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAccountCustomResponse) ProtoMessage() {} + +func (x *CreateAccountCustomResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 CreateAccountCustomResponse.ProtoReflect.Descriptor instead. +func (*CreateAccountCustomResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{5} +} + +func (x *CreateAccountCustomResponse) GetInfo() *AccountInfo { + if x != nil { + return x.Info + } + return nil +} + +type SetAccountLabelRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // New account label. + Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` +} + +func (x *SetAccountLabelRequest) Reset() { + *x = SetAccountLabelRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetAccountLabelRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetAccountLabelRequest) ProtoMessage() {} + +func (x *SetAccountLabelRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 SetAccountLabelRequest.ProtoReflect.Descriptor instead. +func (*SetAccountLabelRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{6} +} + +func (x *SetAccountLabelRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *SetAccountLabelRequest) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +type SetAccountLabelResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Info about the updated account. + Info *AccountInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` +} + +func (x *SetAccountLabelResponse) Reset() { + *x = SetAccountLabelResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetAccountLabelResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetAccountLabelResponse) ProtoMessage() {} + +func (x *SetAccountLabelResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 SetAccountLabelResponse.ProtoReflect.Descriptor instead. +func (*SetAccountLabelResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{7} +} + +func (x *SetAccountLabelResponse) GetInfo() *AccountInfo { + if x != nil { + return x.Info + } + return nil +} + +type SetAccountTemplateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Output descriptor template. + Template *Template `protobuf:"bytes,2,opt,name=template,proto3" json:"template,omitempty"` +} + +func (x *SetAccountTemplateRequest) Reset() { + *x = SetAccountTemplateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetAccountTemplateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetAccountTemplateRequest) ProtoMessage() {} + +func (x *SetAccountTemplateRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 SetAccountTemplateRequest.ProtoReflect.Descriptor instead. +func (*SetAccountTemplateRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{8} +} + +func (x *SetAccountTemplateRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *SetAccountTemplateRequest) GetTemplate() *Template { + if x != nil { + return x.Template + } + return nil +} + +type SetAccountTemplateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetAccountTemplateResponse) Reset() { + *x = SetAccountTemplateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetAccountTemplateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetAccountTemplateResponse) ProtoMessage() {} + +func (x *SetAccountTemplateResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_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 SetAccountTemplateResponse.ProtoReflect.Descriptor instead. +func (*SetAccountTemplateResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{9} +} + +type DeriveAddressesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // The number of addresses to generate. + NumOfAddresses uint64 `protobuf:"varint,2,opt,name=num_of_addresses,json=numOfAddresses,proto3" json:"num_of_addresses,omitempty"` +} + +func (x *DeriveAddressesRequest) Reset() { + *x = DeriveAddressesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeriveAddressesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeriveAddressesRequest) ProtoMessage() {} + +func (x *DeriveAddressesRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[10] + 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 DeriveAddressesRequest.ProtoReflect.Descriptor instead. +func (*DeriveAddressesRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{10} +} + +func (x *DeriveAddressesRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *DeriveAddressesRequest) GetNumOfAddresses() uint64 { + if x != nil { + return x.NumOfAddresses + } + return 0 +} + +type DeriveAddressesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *DeriveAddressesResponse) Reset() { + *x = DeriveAddressesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeriveAddressesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeriveAddressesResponse) ProtoMessage() {} + +func (x *DeriveAddressesResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[11] + 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 DeriveAddressesResponse.ProtoReflect.Descriptor instead. +func (*DeriveAddressesResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{11} +} + +func (x *DeriveAddressesResponse) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type DeriveChangeAddressesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // The number of addresses to generate. + NumOfAddresses uint64 `protobuf:"varint,2,opt,name=num_of_addresses,json=numOfAddresses,proto3" json:"num_of_addresses,omitempty"` +} + +func (x *DeriveChangeAddressesRequest) Reset() { + *x = DeriveChangeAddressesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeriveChangeAddressesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeriveChangeAddressesRequest) ProtoMessage() {} + +func (x *DeriveChangeAddressesRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[12] + 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 DeriveChangeAddressesRequest.ProtoReflect.Descriptor instead. +func (*DeriveChangeAddressesRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{12} +} + +func (x *DeriveChangeAddressesRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *DeriveChangeAddressesRequest) GetNumOfAddresses() uint64 { + if x != nil { + return x.NumOfAddresses + } + return 0 +} + +type DeriveChangeAddressesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *DeriveChangeAddressesResponse) Reset() { + *x = DeriveChangeAddressesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeriveChangeAddressesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeriveChangeAddressesResponse) ProtoMessage() {} + +func (x *DeriveChangeAddressesResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[13] + 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 DeriveChangeAddressesResponse.ProtoReflect.Descriptor instead. +func (*DeriveChangeAddressesResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{13} +} + +func (x *DeriveChangeAddressesResponse) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type ListAddressesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` +} + +func (x *ListAddressesRequest) Reset() { + *x = ListAddressesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAddressesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAddressesRequest) ProtoMessage() {} + +func (x *ListAddressesRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[14] + 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 ListAddressesRequest.ProtoReflect.Descriptor instead. +func (*ListAddressesRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{14} +} + +func (x *ListAddressesRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +type ListAddressesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *ListAddressesResponse) Reset() { + *x = ListAddressesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAddressesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAddressesResponse) ProtoMessage() {} + +func (x *ListAddressesResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[15] + 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 ListAddressesResponse.ProtoReflect.Descriptor instead. +func (*ListAddressesResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{15} +} + +func (x *ListAddressesResponse) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type BalanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Addresses for which calculating balance. If not specified, the cumulative + // balance is returned. + Addresses []string `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *BalanceRequest) Reset() { + *x = BalanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BalanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BalanceRequest) ProtoMessage() {} + +func (x *BalanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[16] + 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 BalanceRequest.ProtoReflect.Descriptor instead. +func (*BalanceRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{16} +} + +func (x *BalanceRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *BalanceRequest) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type BalanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The balance (total, confirmed, unconfirmed) per each asset. + Balance map[string]*BalanceInfo `protobuf:"bytes,1,rep,name=balance,proto3" json:"balance,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *BalanceResponse) Reset() { + *x = BalanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BalanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BalanceResponse) ProtoMessage() {} + +func (x *BalanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[17] + 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 BalanceResponse.ProtoReflect.Descriptor instead. +func (*BalanceResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{17} +} + +func (x *BalanceResponse) GetBalance() map[string]*BalanceInfo { + if x != nil { + return x.Balance + } + return nil +} + +type ListUtxosRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // List of account's addresses for which listing utxos. If not specified, + // the list of all utxos owned by the account is returned. + Addresses []string `protobuf:"bytes,3,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *ListUtxosRequest) Reset() { + *x = ListUtxosRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUtxosRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUtxosRequest) ProtoMessage() {} + +func (x *ListUtxosRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[18] + 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 ListUtxosRequest.ProtoReflect.Descriptor instead. +func (*ListUtxosRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{18} +} + +func (x *ListUtxosRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *ListUtxosRequest) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type ListUtxosResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of spendable utxos. + SpendableUtxos *Utxos `protobuf:"bytes,1,opt,name=spendable_utxos,json=spendableUtxos,proto3" json:"spendable_utxos,omitempty"` + // List of currently locked utxos. + LockedUtxos *Utxos `protobuf:"bytes,2,opt,name=locked_utxos,json=lockedUtxos,proto3" json:"locked_utxos,omitempty"` +} + +func (x *ListUtxosResponse) Reset() { + *x = ListUtxosResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListUtxosResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUtxosResponse) ProtoMessage() {} + +func (x *ListUtxosResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[19] + 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 ListUtxosResponse.ProtoReflect.Descriptor instead. +func (*ListUtxosResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{19} +} + +func (x *ListUtxosResponse) GetSpendableUtxos() *Utxos { + if x != nil { + return x.SpendableUtxos + } + return nil +} + +func (x *ListUtxosResponse) GetLockedUtxos() *Utxos { + if x != nil { + return x.LockedUtxos + } + return nil +} + +type DeleteAccountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace or label. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` +} + +func (x *DeleteAccountRequest) Reset() { + *x = DeleteAccountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAccountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAccountRequest) ProtoMessage() {} + +func (x *DeleteAccountRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[20] + 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 DeleteAccountRequest.ProtoReflect.Descriptor instead. +func (*DeleteAccountRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{20} +} + +func (x *DeleteAccountRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +type DeleteAccountResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteAccountResponse) Reset() { + *x = DeleteAccountResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_account_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAccountResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAccountResponse) ProtoMessage() {} + +func (x *DeleteAccountResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_account_proto_msgTypes[21] + 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 DeleteAccountResponse.ProtoReflect.Descriptor instead. +func (*DeleteAccountResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_account_proto_rawDescGZIP(), []int{21} +} + +var File_ocean_v1_account_proto protoreflect.FileDescriptor + +var file_ocean_v1_account_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x1a, 0x14, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x31, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x49, 0x50, 0x34, 0x34, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x47, 0x0a, 0x1a, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x49, 0x50, 0x34, + 0x34, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x34, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x4a, 0x0a, 0x1d, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x53, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x32, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x48, 0x0a, 0x1b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x51, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x44, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x6e, 0x0a, + 0x19, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, + 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x1c, 0x0a, + 0x1a, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x16, 0x44, + 0x65, 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, + 0x6f, 0x66, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x22, 0x37, 0x0a, 0x17, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x6b, 0x0a, 0x1c, 0x44, + 0x65, 0x72, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, + 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x4f, 0x66, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x3d, 0x0a, 0x1d, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x39, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x51, 0x0a, 0x0e, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0xa6, 0x01, 0x0a, + 0x0f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x40, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x1a, 0x51, 0x0a, 0x0c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x53, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, 0x78, + 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x38, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x74, + 0x78, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, 0x0e, 0x73, 0x70, 0x65, 0x6e, + 0x64, 0x61, 0x62, 0x6c, 0x65, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, + 0x73, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x22, 0x39, + 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x32, 0xe4, 0x07, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x49, 0x50, 0x34, 0x34, 0x12, 0x23, 0x2e, 0x6f, 0x63, + 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x49, 0x50, 0x34, 0x34, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x49, 0x50, 0x34, 0x34, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x12, + 0x26, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x62, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x24, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x12, + 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x12, 0x23, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, + 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x72, 0x69, 0x76, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x15, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x26, + 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x50, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x6f, + 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x44, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x12, 0x1a, + 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, + 0x78, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xa0, 0x01, 0x0a, 0x0c, 0x63, 0x6f, + 0x6d, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x6b, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2f, 0x61, 0x72, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x4f, 0x58, 0x58, 0xaa, 0x02, 0x08, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x08, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x14, 0x4f, 0x63, 0x65, 0x61, + 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x09, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_ocean_v1_account_proto_rawDescOnce sync.Once + file_ocean_v1_account_proto_rawDescData = file_ocean_v1_account_proto_rawDesc +) + +func file_ocean_v1_account_proto_rawDescGZIP() []byte { + file_ocean_v1_account_proto_rawDescOnce.Do(func() { + file_ocean_v1_account_proto_rawDescData = protoimpl.X.CompressGZIP(file_ocean_v1_account_proto_rawDescData) + }) + return file_ocean_v1_account_proto_rawDescData +} + +var file_ocean_v1_account_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_ocean_v1_account_proto_goTypes = []interface{}{ + (*CreateAccountBIP44Request)(nil), // 0: ocean.v1.CreateAccountBIP44Request + (*CreateAccountBIP44Response)(nil), // 1: ocean.v1.CreateAccountBIP44Response + (*CreateAccountMultiSigRequest)(nil), // 2: ocean.v1.CreateAccountMultiSigRequest + (*CreateAccountMultiSigResponse)(nil), // 3: ocean.v1.CreateAccountMultiSigResponse + (*CreateAccountCustomRequest)(nil), // 4: ocean.v1.CreateAccountCustomRequest + (*CreateAccountCustomResponse)(nil), // 5: ocean.v1.CreateAccountCustomResponse + (*SetAccountLabelRequest)(nil), // 6: ocean.v1.SetAccountLabelRequest + (*SetAccountLabelResponse)(nil), // 7: ocean.v1.SetAccountLabelResponse + (*SetAccountTemplateRequest)(nil), // 8: ocean.v1.SetAccountTemplateRequest + (*SetAccountTemplateResponse)(nil), // 9: ocean.v1.SetAccountTemplateResponse + (*DeriveAddressesRequest)(nil), // 10: ocean.v1.DeriveAddressesRequest + (*DeriveAddressesResponse)(nil), // 11: ocean.v1.DeriveAddressesResponse + (*DeriveChangeAddressesRequest)(nil), // 12: ocean.v1.DeriveChangeAddressesRequest + (*DeriveChangeAddressesResponse)(nil), // 13: ocean.v1.DeriveChangeAddressesResponse + (*ListAddressesRequest)(nil), // 14: ocean.v1.ListAddressesRequest + (*ListAddressesResponse)(nil), // 15: ocean.v1.ListAddressesResponse + (*BalanceRequest)(nil), // 16: ocean.v1.BalanceRequest + (*BalanceResponse)(nil), // 17: ocean.v1.BalanceResponse + (*ListUtxosRequest)(nil), // 18: ocean.v1.ListUtxosRequest + (*ListUtxosResponse)(nil), // 19: ocean.v1.ListUtxosResponse + (*DeleteAccountRequest)(nil), // 20: ocean.v1.DeleteAccountRequest + (*DeleteAccountResponse)(nil), // 21: ocean.v1.DeleteAccountResponse + nil, // 22: ocean.v1.BalanceResponse.BalanceEntry + (*AccountInfo)(nil), // 23: ocean.v1.AccountInfo + (*Template)(nil), // 24: ocean.v1.Template + (*Utxos)(nil), // 25: ocean.v1.Utxos + (*BalanceInfo)(nil), // 26: ocean.v1.BalanceInfo +} +var file_ocean_v1_account_proto_depIdxs = []int32{ + 23, // 0: ocean.v1.CreateAccountBIP44Response.info:type_name -> ocean.v1.AccountInfo + 23, // 1: ocean.v1.CreateAccountMultiSigResponse.info:type_name -> ocean.v1.AccountInfo + 23, // 2: ocean.v1.CreateAccountCustomResponse.info:type_name -> ocean.v1.AccountInfo + 23, // 3: ocean.v1.SetAccountLabelResponse.info:type_name -> ocean.v1.AccountInfo + 24, // 4: ocean.v1.SetAccountTemplateRequest.template:type_name -> ocean.v1.Template + 22, // 5: ocean.v1.BalanceResponse.balance:type_name -> ocean.v1.BalanceResponse.BalanceEntry + 25, // 6: ocean.v1.ListUtxosResponse.spendable_utxos:type_name -> ocean.v1.Utxos + 25, // 7: ocean.v1.ListUtxosResponse.locked_utxos:type_name -> ocean.v1.Utxos + 26, // 8: ocean.v1.BalanceResponse.BalanceEntry.value:type_name -> ocean.v1.BalanceInfo + 0, // 9: ocean.v1.AccountService.CreateAccountBIP44:input_type -> ocean.v1.CreateAccountBIP44Request + 2, // 10: ocean.v1.AccountService.CreateAccountMultiSig:input_type -> ocean.v1.CreateAccountMultiSigRequest + 4, // 11: ocean.v1.AccountService.CreateAccountCustom:input_type -> ocean.v1.CreateAccountCustomRequest + 6, // 12: ocean.v1.AccountService.SetAccountLabel:input_type -> ocean.v1.SetAccountLabelRequest + 8, // 13: ocean.v1.AccountService.SetAccountTemplate:input_type -> ocean.v1.SetAccountTemplateRequest + 10, // 14: ocean.v1.AccountService.DeriveAddresses:input_type -> ocean.v1.DeriveAddressesRequest + 12, // 15: ocean.v1.AccountService.DeriveChangeAddresses:input_type -> ocean.v1.DeriveChangeAddressesRequest + 14, // 16: ocean.v1.AccountService.ListAddresses:input_type -> ocean.v1.ListAddressesRequest + 16, // 17: ocean.v1.AccountService.Balance:input_type -> ocean.v1.BalanceRequest + 18, // 18: ocean.v1.AccountService.ListUtxos:input_type -> ocean.v1.ListUtxosRequest + 20, // 19: ocean.v1.AccountService.DeleteAccount:input_type -> ocean.v1.DeleteAccountRequest + 1, // 20: ocean.v1.AccountService.CreateAccountBIP44:output_type -> ocean.v1.CreateAccountBIP44Response + 3, // 21: ocean.v1.AccountService.CreateAccountMultiSig:output_type -> ocean.v1.CreateAccountMultiSigResponse + 5, // 22: ocean.v1.AccountService.CreateAccountCustom:output_type -> ocean.v1.CreateAccountCustomResponse + 7, // 23: ocean.v1.AccountService.SetAccountLabel:output_type -> ocean.v1.SetAccountLabelResponse + 9, // 24: ocean.v1.AccountService.SetAccountTemplate:output_type -> ocean.v1.SetAccountTemplateResponse + 11, // 25: ocean.v1.AccountService.DeriveAddresses:output_type -> ocean.v1.DeriveAddressesResponse + 13, // 26: ocean.v1.AccountService.DeriveChangeAddresses:output_type -> ocean.v1.DeriveChangeAddressesResponse + 15, // 27: ocean.v1.AccountService.ListAddresses:output_type -> ocean.v1.ListAddressesResponse + 17, // 28: ocean.v1.AccountService.Balance:output_type -> ocean.v1.BalanceResponse + 19, // 29: ocean.v1.AccountService.ListUtxos:output_type -> ocean.v1.ListUtxosResponse + 21, // 30: ocean.v1.AccountService.DeleteAccount:output_type -> ocean.v1.DeleteAccountResponse + 20, // [20:31] is the sub-list for method output_type + 9, // [9:20] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_ocean_v1_account_proto_init() } +func file_ocean_v1_account_proto_init() { + if File_ocean_v1_account_proto != nil { + return + } + file_ocean_v1_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_ocean_v1_account_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAccountBIP44Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAccountBIP44Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAccountMultiSigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAccountMultiSigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAccountCustomRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAccountCustomResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetAccountLabelRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetAccountLabelResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetAccountTemplateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetAccountTemplateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeriveAddressesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeriveAddressesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeriveChangeAddressesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeriveChangeAddressesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAddressesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAddressesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BalanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BalanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUtxosRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListUtxosResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_account_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAccountResponse); 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_ocean_v1_account_proto_rawDesc, + NumEnums: 0, + NumMessages: 23, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_ocean_v1_account_proto_goTypes, + DependencyIndexes: file_ocean_v1_account_proto_depIdxs, + MessageInfos: file_ocean_v1_account_proto_msgTypes, + }.Build() + File_ocean_v1_account_proto = out.File + file_ocean_v1_account_proto_rawDesc = nil + file_ocean_v1_account_proto_goTypes = nil + file_ocean_v1_account_proto_depIdxs = nil +} diff --git a/api-spec/protobuf/gen/ocean/v1/account_grpc.pb.go b/api-spec/protobuf/gen/ocean/v1/account_grpc.pb.go new file mode 100644 index 0000000..5d33dd8 --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/account_grpc.pb.go @@ -0,0 +1,487 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package oceanv1 + +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 + +// AccountServiceClient is the client API for AccountService 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 AccountServiceClient interface { + // CreateAccountBIP44 creates a new BIP44 account. + CreateAccountBIP44(ctx context.Context, in *CreateAccountBIP44Request, opts ...grpc.CallOption) (*CreateAccountBIP44Response, error) + // CreateAccountMultiSig creates a new multisig account. + CreateAccountMultiSig(ctx context.Context, in *CreateAccountMultiSigRequest, opts ...grpc.CallOption) (*CreateAccountMultiSigResponse, error) + // CreateAccountCustom creates a new custom account for which loading a template. + CreateAccountCustom(ctx context.Context, in *CreateAccountCustomRequest, opts ...grpc.CallOption) (*CreateAccountCustomResponse, error) + // SetAccountLabel sets a label for the account that can be used later to refer to it. + SetAccountLabel(ctx context.Context, in *SetAccountLabelRequest, opts ...grpc.CallOption) (*SetAccountLabelResponse, error) + // SetAccountTemplate sets the template for the account used to generate new addresses. + SetAccountTemplate(ctx context.Context, in *SetAccountTemplateRequest, opts ...grpc.CallOption) (*SetAccountTemplateResponse, error) + // DeriveAddresses generates new address(es) for the account. + DeriveAddresses(ctx context.Context, in *DeriveAddressesRequest, opts ...grpc.CallOption) (*DeriveAddressesResponse, error) + // DeriveChangeAddresses generates new change address(es) for the account. + DeriveChangeAddresses(ctx context.Context, in *DeriveChangeAddressesRequest, opts ...grpc.CallOption) (*DeriveChangeAddressesResponse, error) + // ListAddresses returns all derived addresses for the account. + ListAddresses(ctx context.Context, in *ListAddressesRequest, opts ...grpc.CallOption) (*ListAddressesResponse, error) + // Balance returns the balance for the account, or for specific list of + // account's addresses. + Balance(ctx context.Context, in *BalanceRequest, opts ...grpc.CallOption) (*BalanceResponse, error) + // ListUtxos returns the utxos for the account, or specific list of + // account's addresses. + ListUtxos(ctx context.Context, in *ListUtxosRequest, opts ...grpc.CallOption) (*ListUtxosResponse, error) + // DeleteAccount deletes an existing account. The operation is allowed only + // if the account has zero balance. + DeleteAccount(ctx context.Context, in *DeleteAccountRequest, opts ...grpc.CallOption) (*DeleteAccountResponse, error) +} + +type accountServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewAccountServiceClient(cc grpc.ClientConnInterface) AccountServiceClient { + return &accountServiceClient{cc} +} + +func (c *accountServiceClient) CreateAccountBIP44(ctx context.Context, in *CreateAccountBIP44Request, opts ...grpc.CallOption) (*CreateAccountBIP44Response, error) { + out := new(CreateAccountBIP44Response) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/CreateAccountBIP44", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) CreateAccountMultiSig(ctx context.Context, in *CreateAccountMultiSigRequest, opts ...grpc.CallOption) (*CreateAccountMultiSigResponse, error) { + out := new(CreateAccountMultiSigResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/CreateAccountMultiSig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) CreateAccountCustom(ctx context.Context, in *CreateAccountCustomRequest, opts ...grpc.CallOption) (*CreateAccountCustomResponse, error) { + out := new(CreateAccountCustomResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/CreateAccountCustom", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) SetAccountLabel(ctx context.Context, in *SetAccountLabelRequest, opts ...grpc.CallOption) (*SetAccountLabelResponse, error) { + out := new(SetAccountLabelResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/SetAccountLabel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) SetAccountTemplate(ctx context.Context, in *SetAccountTemplateRequest, opts ...grpc.CallOption) (*SetAccountTemplateResponse, error) { + out := new(SetAccountTemplateResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/SetAccountTemplate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) DeriveAddresses(ctx context.Context, in *DeriveAddressesRequest, opts ...grpc.CallOption) (*DeriveAddressesResponse, error) { + out := new(DeriveAddressesResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/DeriveAddresses", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) DeriveChangeAddresses(ctx context.Context, in *DeriveChangeAddressesRequest, opts ...grpc.CallOption) (*DeriveChangeAddressesResponse, error) { + out := new(DeriveChangeAddressesResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/DeriveChangeAddresses", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) ListAddresses(ctx context.Context, in *ListAddressesRequest, opts ...grpc.CallOption) (*ListAddressesResponse, error) { + out := new(ListAddressesResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/ListAddresses", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) Balance(ctx context.Context, in *BalanceRequest, opts ...grpc.CallOption) (*BalanceResponse, error) { + out := new(BalanceResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/Balance", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) ListUtxos(ctx context.Context, in *ListUtxosRequest, opts ...grpc.CallOption) (*ListUtxosResponse, error) { + out := new(ListUtxosResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/ListUtxos", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountServiceClient) DeleteAccount(ctx context.Context, in *DeleteAccountRequest, opts ...grpc.CallOption) (*DeleteAccountResponse, error) { + out := new(DeleteAccountResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.AccountService/DeleteAccount", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AccountServiceServer is the server API for AccountService service. +// All implementations should embed UnimplementedAccountServiceServer +// for forward compatibility +type AccountServiceServer interface { + // CreateAccountBIP44 creates a new BIP44 account. + CreateAccountBIP44(context.Context, *CreateAccountBIP44Request) (*CreateAccountBIP44Response, error) + // CreateAccountMultiSig creates a new multisig account. + CreateAccountMultiSig(context.Context, *CreateAccountMultiSigRequest) (*CreateAccountMultiSigResponse, error) + // CreateAccountCustom creates a new custom account for which loading a template. + CreateAccountCustom(context.Context, *CreateAccountCustomRequest) (*CreateAccountCustomResponse, error) + // SetAccountLabel sets a label for the account that can be used later to refer to it. + SetAccountLabel(context.Context, *SetAccountLabelRequest) (*SetAccountLabelResponse, error) + // SetAccountTemplate sets the template for the account used to generate new addresses. + SetAccountTemplate(context.Context, *SetAccountTemplateRequest) (*SetAccountTemplateResponse, error) + // DeriveAddresses generates new address(es) for the account. + DeriveAddresses(context.Context, *DeriveAddressesRequest) (*DeriveAddressesResponse, error) + // DeriveChangeAddresses generates new change address(es) for the account. + DeriveChangeAddresses(context.Context, *DeriveChangeAddressesRequest) (*DeriveChangeAddressesResponse, error) + // ListAddresses returns all derived addresses for the account. + ListAddresses(context.Context, *ListAddressesRequest) (*ListAddressesResponse, error) + // Balance returns the balance for the account, or for specific list of + // account's addresses. + Balance(context.Context, *BalanceRequest) (*BalanceResponse, error) + // ListUtxos returns the utxos for the account, or specific list of + // account's addresses. + ListUtxos(context.Context, *ListUtxosRequest) (*ListUtxosResponse, error) + // DeleteAccount deletes an existing account. The operation is allowed only + // if the account has zero balance. + DeleteAccount(context.Context, *DeleteAccountRequest) (*DeleteAccountResponse, error) +} + +// UnimplementedAccountServiceServer should be embedded to have forward compatible implementations. +type UnimplementedAccountServiceServer struct { +} + +func (UnimplementedAccountServiceServer) CreateAccountBIP44(context.Context, *CreateAccountBIP44Request) (*CreateAccountBIP44Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateAccountBIP44 not implemented") +} +func (UnimplementedAccountServiceServer) CreateAccountMultiSig(context.Context, *CreateAccountMultiSigRequest) (*CreateAccountMultiSigResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateAccountMultiSig not implemented") +} +func (UnimplementedAccountServiceServer) CreateAccountCustom(context.Context, *CreateAccountCustomRequest) (*CreateAccountCustomResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateAccountCustom not implemented") +} +func (UnimplementedAccountServiceServer) SetAccountLabel(context.Context, *SetAccountLabelRequest) (*SetAccountLabelResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetAccountLabel not implemented") +} +func (UnimplementedAccountServiceServer) SetAccountTemplate(context.Context, *SetAccountTemplateRequest) (*SetAccountTemplateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetAccountTemplate not implemented") +} +func (UnimplementedAccountServiceServer) DeriveAddresses(context.Context, *DeriveAddressesRequest) (*DeriveAddressesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeriveAddresses not implemented") +} +func (UnimplementedAccountServiceServer) DeriveChangeAddresses(context.Context, *DeriveChangeAddressesRequest) (*DeriveChangeAddressesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeriveChangeAddresses not implemented") +} +func (UnimplementedAccountServiceServer) ListAddresses(context.Context, *ListAddressesRequest) (*ListAddressesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListAddresses not implemented") +} +func (UnimplementedAccountServiceServer) Balance(context.Context, *BalanceRequest) (*BalanceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Balance not implemented") +} +func (UnimplementedAccountServiceServer) ListUtxos(context.Context, *ListUtxosRequest) (*ListUtxosResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUtxos not implemented") +} +func (UnimplementedAccountServiceServer) DeleteAccount(context.Context, *DeleteAccountRequest) (*DeleteAccountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteAccount not implemented") +} + +// UnsafeAccountServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to AccountServiceServer will +// result in compilation errors. +type UnsafeAccountServiceServer interface { + mustEmbedUnimplementedAccountServiceServer() +} + +func RegisterAccountServiceServer(s grpc.ServiceRegistrar, srv AccountServiceServer) { + s.RegisterService(&AccountService_ServiceDesc, srv) +} + +func _AccountService_CreateAccountBIP44_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAccountBIP44Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).CreateAccountBIP44(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/CreateAccountBIP44", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).CreateAccountBIP44(ctx, req.(*CreateAccountBIP44Request)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_CreateAccountMultiSig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAccountMultiSigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).CreateAccountMultiSig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/CreateAccountMultiSig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).CreateAccountMultiSig(ctx, req.(*CreateAccountMultiSigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_CreateAccountCustom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAccountCustomRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).CreateAccountCustom(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/CreateAccountCustom", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).CreateAccountCustom(ctx, req.(*CreateAccountCustomRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_SetAccountLabel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetAccountLabelRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).SetAccountLabel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/SetAccountLabel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).SetAccountLabel(ctx, req.(*SetAccountLabelRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_SetAccountTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetAccountTemplateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).SetAccountTemplate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/SetAccountTemplate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).SetAccountTemplate(ctx, req.(*SetAccountTemplateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_DeriveAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeriveAddressesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).DeriveAddresses(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/DeriveAddresses", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).DeriveAddresses(ctx, req.(*DeriveAddressesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_DeriveChangeAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeriveChangeAddressesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).DeriveChangeAddresses(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/DeriveChangeAddresses", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).DeriveChangeAddresses(ctx, req.(*DeriveChangeAddressesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_ListAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListAddressesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).ListAddresses(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/ListAddresses", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).ListAddresses(ctx, req.(*ListAddressesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_Balance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BalanceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).Balance(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/Balance", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).Balance(ctx, req.(*BalanceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_ListUtxos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUtxosRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).ListUtxos(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/ListUtxos", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).ListUtxos(ctx, req.(*ListUtxosRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountService_DeleteAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAccountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountServiceServer).DeleteAccount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.AccountService/DeleteAccount", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountServiceServer).DeleteAccount(ctx, req.(*DeleteAccountRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// AccountService_ServiceDesc is the grpc.ServiceDesc for AccountService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var AccountService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "ocean.v1.AccountService", + HandlerType: (*AccountServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateAccountBIP44", + Handler: _AccountService_CreateAccountBIP44_Handler, + }, + { + MethodName: "CreateAccountMultiSig", + Handler: _AccountService_CreateAccountMultiSig_Handler, + }, + { + MethodName: "CreateAccountCustom", + Handler: _AccountService_CreateAccountCustom_Handler, + }, + { + MethodName: "SetAccountLabel", + Handler: _AccountService_SetAccountLabel_Handler, + }, + { + MethodName: "SetAccountTemplate", + Handler: _AccountService_SetAccountTemplate_Handler, + }, + { + MethodName: "DeriveAddresses", + Handler: _AccountService_DeriveAddresses_Handler, + }, + { + MethodName: "DeriveChangeAddresses", + Handler: _AccountService_DeriveChangeAddresses_Handler, + }, + { + MethodName: "ListAddresses", + Handler: _AccountService_ListAddresses_Handler, + }, + { + MethodName: "Balance", + Handler: _AccountService_Balance_Handler, + }, + { + MethodName: "ListUtxos", + Handler: _AccountService_ListUtxos_Handler, + }, + { + MethodName: "DeleteAccount", + Handler: _AccountService_DeleteAccount_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "ocean/v1/account.proto", +} diff --git a/api-spec/protobuf/gen/ocean/v1/notification.pb.go b/api-spec/protobuf/gen/ocean/v1/notification.pb.go new file mode 100644 index 0000000..cfab6c9 --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/notification.pb.go @@ -0,0 +1,924 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc (unknown) +// source: ocean/v1/notification.proto + +package oceanv1 + +import ( + 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) +) + +type TransactionNotificationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TransactionNotificationsRequest) Reset() { + *x = TransactionNotificationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionNotificationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionNotificationsRequest) ProtoMessage() {} + +func (x *TransactionNotificationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 TransactionNotificationsRequest.ProtoReflect.Descriptor instead. +func (*TransactionNotificationsRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{0} +} + +type TransactionNotificationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Tx event type. + EventType TxEventType `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3,enum=ocean.v1.TxEventType" json:"event_type,omitempty"` + // Account names. + AccountNames []string `protobuf:"bytes,2,rep,name=account_names,json=accountNames,proto3" json:"account_names,omitempty"` + // Tx in hex format. + Txhex string `protobuf:"bytes,3,opt,name=txhex,proto3" json:"txhex,omitempty"` + // Txid of transaction. + Txid string `protobuf:"bytes,4,opt,name=txid,proto3" json:"txid,omitempty"` + // Details of the block including the tx. + BlockDetails *BlockDetails `protobuf:"bytes,5,opt,name=block_details,json=blockDetails,proto3" json:"block_details,omitempty"` +} + +func (x *TransactionNotificationsResponse) Reset() { + *x = TransactionNotificationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionNotificationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionNotificationsResponse) ProtoMessage() {} + +func (x *TransactionNotificationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 TransactionNotificationsResponse.ProtoReflect.Descriptor instead. +func (*TransactionNotificationsResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{1} +} + +func (x *TransactionNotificationsResponse) GetEventType() TxEventType { + if x != nil { + return x.EventType + } + return TxEventType_TX_EVENT_TYPE_UNSPECIFIED +} + +func (x *TransactionNotificationsResponse) GetAccountNames() []string { + if x != nil { + return x.AccountNames + } + return nil +} + +func (x *TransactionNotificationsResponse) GetTxhex() string { + if x != nil { + return x.Txhex + } + return "" +} + +func (x *TransactionNotificationsResponse) GetTxid() string { + if x != nil { + return x.Txid + } + return "" +} + +func (x *TransactionNotificationsResponse) GetBlockDetails() *BlockDetails { + if x != nil { + return x.BlockDetails + } + return nil +} + +type UtxosNotificationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UtxosNotificationsRequest) Reset() { + *x = UtxosNotificationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UtxosNotificationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UtxosNotificationsRequest) ProtoMessage() {} + +func (x *UtxosNotificationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 UtxosNotificationsRequest.ProtoReflect.Descriptor instead. +func (*UtxosNotificationsRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{2} +} + +type UtxosNotificationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The event's type occured for the utxos. + EventType UtxoEventType `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3,enum=ocean.v1.UtxoEventType" json:"event_type,omitempty"` + // List of utxos for which occured the event. + Utxos []*Utxo `protobuf:"bytes,2,rep,name=utxos,proto3" json:"utxos,omitempty"` +} + +func (x *UtxosNotificationsResponse) Reset() { + *x = UtxosNotificationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UtxosNotificationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UtxosNotificationsResponse) ProtoMessage() {} + +func (x *UtxosNotificationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 UtxosNotificationsResponse.ProtoReflect.Descriptor instead. +func (*UtxosNotificationsResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{3} +} + +func (x *UtxosNotificationsResponse) GetEventType() UtxoEventType { + if x != nil { + return x.EventType + } + return UtxoEventType_UTXO_EVENT_TYPE_UNSPECIFIED +} + +func (x *UtxosNotificationsResponse) GetUtxos() []*Utxo { + if x != nil { + return x.Utxos + } + return nil +} + +type AddWebhookRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The endpoint of the external service to reach. + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // The event type for which the webhook should be registered. + EventType WebhookEventType `protobuf:"varint,2,opt,name=event_type,json=eventType,proto3,enum=ocean.v1.WebhookEventType" json:"event_type,omitempty"` + // The secret to use for signign a JWT token for an authenticated request + // to the external service. + Secret string `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"` +} + +func (x *AddWebhookRequest) Reset() { + *x = AddWebhookRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddWebhookRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddWebhookRequest) ProtoMessage() {} + +func (x *AddWebhookRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 AddWebhookRequest.ProtoReflect.Descriptor instead. +func (*AddWebhookRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{4} +} + +func (x *AddWebhookRequest) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *AddWebhookRequest) GetEventType() WebhookEventType { + if x != nil { + return x.EventType + } + return WebhookEventType_WEBHOOK_EVENT_TYPE_UNSPECIFIED +} + +func (x *AddWebhookRequest) GetSecret() string { + if x != nil { + return x.Secret + } + return "" +} + +type AddWebhookResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The id of the new webhook. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *AddWebhookResponse) Reset() { + *x = AddWebhookResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddWebhookResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddWebhookResponse) ProtoMessage() {} + +func (x *AddWebhookResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 AddWebhookResponse.ProtoReflect.Descriptor instead. +func (*AddWebhookResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{5} +} + +func (x *AddWebhookResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type RemoveWebhookRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The id of the webhook to remove. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *RemoveWebhookRequest) Reset() { + *x = RemoveWebhookRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveWebhookRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveWebhookRequest) ProtoMessage() {} + +func (x *RemoveWebhookRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 RemoveWebhookRequest.ProtoReflect.Descriptor instead. +func (*RemoveWebhookRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{6} +} + +func (x *RemoveWebhookRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type RemoveWebhookResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RemoveWebhookResponse) Reset() { + *x = RemoveWebhookResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveWebhookResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveWebhookResponse) ProtoMessage() {} + +func (x *RemoveWebhookResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 RemoveWebhookResponse.ProtoReflect.Descriptor instead. +func (*RemoveWebhookResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{7} +} + +type ListWebhooksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The event type for which filtering the list of webhooks. + EventType WebhookEventType `protobuf:"varint,1,opt,name=event_type,json=eventType,proto3,enum=ocean.v1.WebhookEventType" json:"event_type,omitempty"` +} + +func (x *ListWebhooksRequest) Reset() { + *x = ListWebhooksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWebhooksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWebhooksRequest) ProtoMessage() {} + +func (x *ListWebhooksRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 ListWebhooksRequest.ProtoReflect.Descriptor instead. +func (*ListWebhooksRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{8} +} + +func (x *ListWebhooksRequest) GetEventType() WebhookEventType { + if x != nil { + return x.EventType + } + return WebhookEventType_WEBHOOK_EVENT_TYPE_UNSPECIFIED +} + +type ListWebhooksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of info about the webhooks regitered for an action. + WebhookInfo []*WebhookInfo `protobuf:"bytes,1,rep,name=webhook_info,json=webhookInfo,proto3" json:"webhook_info,omitempty"` +} + +func (x *ListWebhooksResponse) Reset() { + *x = ListWebhooksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListWebhooksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListWebhooksResponse) ProtoMessage() {} + +func (x *ListWebhooksResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_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 ListWebhooksResponse.ProtoReflect.Descriptor instead. +func (*ListWebhooksResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{9} +} + +func (x *ListWebhooksResponse) GetWebhookInfo() []*WebhookInfo { + if x != nil { + return x.WebhookInfo + } + return nil +} + +type WebhookInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The id of the webhook. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The endpoint of the external service to reach. + Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // Whether the outgoing requests are authenticated. + IsSecured bool `protobuf:"varint,3,opt,name=is_secured,json=isSecured,proto3" json:"is_secured,omitempty"` +} + +func (x *WebhookInfo) Reset() { + *x = WebhookInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_notification_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebhookInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebhookInfo) ProtoMessage() {} + +func (x *WebhookInfo) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_notification_proto_msgTypes[10] + 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 WebhookInfo.ProtoReflect.Descriptor instead. +func (*WebhookInfo) Descriptor() ([]byte, []int) { + return file_ocean_v1_notification_proto_rawDescGZIP(), []int{10} +} + +func (x *WebhookInfo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *WebhookInfo) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *WebhookInfo) GetIsSecured() bool { + if x != nil { + return x.IsSecured + } + return false +} + +var File_ocean_v1_notification_proto protoreflect.FileDescriptor + +var file_ocean_v1_notification_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, + 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x14, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, + 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x21, 0x0a, + 0x1f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0xe4, 0x01, 0x0a, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x78, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x78, 0x68, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x78, 0x68, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x0d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x74, 0x78, 0x6f, 0x73, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x7a, 0x0a, 0x1a, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x75, 0x74, + 0x78, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x52, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, + 0x22, 0x82, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x24, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x26, 0x0a, 0x14, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x65, 0x62, + 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x50, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, + 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x58, 0x0a, 0x0b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, + 0x73, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x69, 0x73, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x64, 0x32, 0xdd, 0x03, 0x0a, 0x13, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x73, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, + 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x61, 0x0a, 0x12, 0x55, 0x74, 0x78, 0x6f, 0x73, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x2e, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, + 0x78, 0x6f, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x41, 0x64, + 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x64, 0x64, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, + 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, + 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xa5, 0x01, 0x0a, 0x0c, 0x63, + 0x6f, 0x6d, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x72, 0x6b, + 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x72, 0x6b, 0x2f, 0x61, 0x70, 0x69, + 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, + 0x65, 0x6e, 0x2f, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x58, 0x58, 0xaa, 0x02, 0x08, 0x4f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x08, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x14, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x09, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_ocean_v1_notification_proto_rawDescOnce sync.Once + file_ocean_v1_notification_proto_rawDescData = file_ocean_v1_notification_proto_rawDesc +) + +func file_ocean_v1_notification_proto_rawDescGZIP() []byte { + file_ocean_v1_notification_proto_rawDescOnce.Do(func() { + file_ocean_v1_notification_proto_rawDescData = protoimpl.X.CompressGZIP(file_ocean_v1_notification_proto_rawDescData) + }) + return file_ocean_v1_notification_proto_rawDescData +} + +var file_ocean_v1_notification_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_ocean_v1_notification_proto_goTypes = []interface{}{ + (*TransactionNotificationsRequest)(nil), // 0: ocean.v1.TransactionNotificationsRequest + (*TransactionNotificationsResponse)(nil), // 1: ocean.v1.TransactionNotificationsResponse + (*UtxosNotificationsRequest)(nil), // 2: ocean.v1.UtxosNotificationsRequest + (*UtxosNotificationsResponse)(nil), // 3: ocean.v1.UtxosNotificationsResponse + (*AddWebhookRequest)(nil), // 4: ocean.v1.AddWebhookRequest + (*AddWebhookResponse)(nil), // 5: ocean.v1.AddWebhookResponse + (*RemoveWebhookRequest)(nil), // 6: ocean.v1.RemoveWebhookRequest + (*RemoveWebhookResponse)(nil), // 7: ocean.v1.RemoveWebhookResponse + (*ListWebhooksRequest)(nil), // 8: ocean.v1.ListWebhooksRequest + (*ListWebhooksResponse)(nil), // 9: ocean.v1.ListWebhooksResponse + (*WebhookInfo)(nil), // 10: ocean.v1.WebhookInfo + (TxEventType)(0), // 11: ocean.v1.TxEventType + (*BlockDetails)(nil), // 12: ocean.v1.BlockDetails + (UtxoEventType)(0), // 13: ocean.v1.UtxoEventType + (*Utxo)(nil), // 14: ocean.v1.Utxo + (WebhookEventType)(0), // 15: ocean.v1.WebhookEventType +} +var file_ocean_v1_notification_proto_depIdxs = []int32{ + 11, // 0: ocean.v1.TransactionNotificationsResponse.event_type:type_name -> ocean.v1.TxEventType + 12, // 1: ocean.v1.TransactionNotificationsResponse.block_details:type_name -> ocean.v1.BlockDetails + 13, // 2: ocean.v1.UtxosNotificationsResponse.event_type:type_name -> ocean.v1.UtxoEventType + 14, // 3: ocean.v1.UtxosNotificationsResponse.utxos:type_name -> ocean.v1.Utxo + 15, // 4: ocean.v1.AddWebhookRequest.event_type:type_name -> ocean.v1.WebhookEventType + 15, // 5: ocean.v1.ListWebhooksRequest.event_type:type_name -> ocean.v1.WebhookEventType + 10, // 6: ocean.v1.ListWebhooksResponse.webhook_info:type_name -> ocean.v1.WebhookInfo + 0, // 7: ocean.v1.NotificationService.TransactionNotifications:input_type -> ocean.v1.TransactionNotificationsRequest + 2, // 8: ocean.v1.NotificationService.UtxosNotifications:input_type -> ocean.v1.UtxosNotificationsRequest + 4, // 9: ocean.v1.NotificationService.AddWebhook:input_type -> ocean.v1.AddWebhookRequest + 6, // 10: ocean.v1.NotificationService.RemoveWebhook:input_type -> ocean.v1.RemoveWebhookRequest + 8, // 11: ocean.v1.NotificationService.ListWebhooks:input_type -> ocean.v1.ListWebhooksRequest + 1, // 12: ocean.v1.NotificationService.TransactionNotifications:output_type -> ocean.v1.TransactionNotificationsResponse + 3, // 13: ocean.v1.NotificationService.UtxosNotifications:output_type -> ocean.v1.UtxosNotificationsResponse + 5, // 14: ocean.v1.NotificationService.AddWebhook:output_type -> ocean.v1.AddWebhookResponse + 7, // 15: ocean.v1.NotificationService.RemoveWebhook:output_type -> ocean.v1.RemoveWebhookResponse + 9, // 16: ocean.v1.NotificationService.ListWebhooks:output_type -> ocean.v1.ListWebhooksResponse + 12, // [12:17] is the sub-list for method output_type + 7, // [7:12] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_ocean_v1_notification_proto_init() } +func file_ocean_v1_notification_proto_init() { + if File_ocean_v1_notification_proto != nil { + return + } + file_ocean_v1_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_ocean_v1_notification_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionNotificationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionNotificationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UtxosNotificationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UtxosNotificationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddWebhookRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddWebhookResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveWebhookRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveWebhookResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWebhooksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListWebhooksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_notification_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebhookInfo); 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_ocean_v1_notification_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_ocean_v1_notification_proto_goTypes, + DependencyIndexes: file_ocean_v1_notification_proto_depIdxs, + MessageInfos: file_ocean_v1_notification_proto_msgTypes, + }.Build() + File_ocean_v1_notification_proto = out.File + file_ocean_v1_notification_proto_rawDesc = nil + file_ocean_v1_notification_proto_goTypes = nil + file_ocean_v1_notification_proto_depIdxs = nil +} diff --git a/api-spec/protobuf/gen/ocean/v1/notification_grpc.pb.go b/api-spec/protobuf/gen/ocean/v1/notification_grpc.pb.go new file mode 100644 index 0000000..ada3c3b --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/notification_grpc.pb.go @@ -0,0 +1,308 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package oceanv1 + +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 + +// NotificationServiceClient is the client API for NotificationService 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 NotificationServiceClient interface { + // Notifies about events related to wallet transactions. + TransactionNotifications(ctx context.Context, in *TransactionNotificationsRequest, opts ...grpc.CallOption) (NotificationService_TransactionNotificationsClient, error) + // Notifies about events realted to wallet utxos. + UtxosNotifications(ctx context.Context, in *UtxosNotificationsRequest, opts ...grpc.CallOption) (NotificationService_UtxosNotificationsClient, error) + // Adds a webhook registered for some kind of event. + AddWebhook(ctx context.Context, in *AddWebhookRequest, opts ...grpc.CallOption) (*AddWebhookResponse, error) + // Removes some previously added webhook. + RemoveWebhook(ctx context.Context, in *RemoveWebhookRequest, opts ...grpc.CallOption) (*RemoveWebhookResponse, error) + // Returns registered webhooks. + ListWebhooks(ctx context.Context, in *ListWebhooksRequest, opts ...grpc.CallOption) (*ListWebhooksResponse, error) +} + +type notificationServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNotificationServiceClient(cc grpc.ClientConnInterface) NotificationServiceClient { + return ¬ificationServiceClient{cc} +} + +func (c *notificationServiceClient) TransactionNotifications(ctx context.Context, in *TransactionNotificationsRequest, opts ...grpc.CallOption) (NotificationService_TransactionNotificationsClient, error) { + stream, err := c.cc.NewStream(ctx, &NotificationService_ServiceDesc.Streams[0], "/ocean.v1.NotificationService/TransactionNotifications", opts...) + if err != nil { + return nil, err + } + x := ¬ificationServiceTransactionNotificationsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type NotificationService_TransactionNotificationsClient interface { + Recv() (*TransactionNotificationsResponse, error) + grpc.ClientStream +} + +type notificationServiceTransactionNotificationsClient struct { + grpc.ClientStream +} + +func (x *notificationServiceTransactionNotificationsClient) Recv() (*TransactionNotificationsResponse, error) { + m := new(TransactionNotificationsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *notificationServiceClient) UtxosNotifications(ctx context.Context, in *UtxosNotificationsRequest, opts ...grpc.CallOption) (NotificationService_UtxosNotificationsClient, error) { + stream, err := c.cc.NewStream(ctx, &NotificationService_ServiceDesc.Streams[1], "/ocean.v1.NotificationService/UtxosNotifications", opts...) + if err != nil { + return nil, err + } + x := ¬ificationServiceUtxosNotificationsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type NotificationService_UtxosNotificationsClient interface { + Recv() (*UtxosNotificationsResponse, error) + grpc.ClientStream +} + +type notificationServiceUtxosNotificationsClient struct { + grpc.ClientStream +} + +func (x *notificationServiceUtxosNotificationsClient) Recv() (*UtxosNotificationsResponse, error) { + m := new(UtxosNotificationsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *notificationServiceClient) AddWebhook(ctx context.Context, in *AddWebhookRequest, opts ...grpc.CallOption) (*AddWebhookResponse, error) { + out := new(AddWebhookResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.NotificationService/AddWebhook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *notificationServiceClient) RemoveWebhook(ctx context.Context, in *RemoveWebhookRequest, opts ...grpc.CallOption) (*RemoveWebhookResponse, error) { + out := new(RemoveWebhookResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.NotificationService/RemoveWebhook", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *notificationServiceClient) ListWebhooks(ctx context.Context, in *ListWebhooksRequest, opts ...grpc.CallOption) (*ListWebhooksResponse, error) { + out := new(ListWebhooksResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.NotificationService/ListWebhooks", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NotificationServiceServer is the server API for NotificationService service. +// All implementations should embed UnimplementedNotificationServiceServer +// for forward compatibility +type NotificationServiceServer interface { + // Notifies about events related to wallet transactions. + TransactionNotifications(*TransactionNotificationsRequest, NotificationService_TransactionNotificationsServer) error + // Notifies about events realted to wallet utxos. + UtxosNotifications(*UtxosNotificationsRequest, NotificationService_UtxosNotificationsServer) error + // Adds a webhook registered for some kind of event. + AddWebhook(context.Context, *AddWebhookRequest) (*AddWebhookResponse, error) + // Removes some previously added webhook. + RemoveWebhook(context.Context, *RemoveWebhookRequest) (*RemoveWebhookResponse, error) + // Returns registered webhooks. + ListWebhooks(context.Context, *ListWebhooksRequest) (*ListWebhooksResponse, error) +} + +// UnimplementedNotificationServiceServer should be embedded to have forward compatible implementations. +type UnimplementedNotificationServiceServer struct { +} + +func (UnimplementedNotificationServiceServer) TransactionNotifications(*TransactionNotificationsRequest, NotificationService_TransactionNotificationsServer) error { + return status.Errorf(codes.Unimplemented, "method TransactionNotifications not implemented") +} +func (UnimplementedNotificationServiceServer) UtxosNotifications(*UtxosNotificationsRequest, NotificationService_UtxosNotificationsServer) error { + return status.Errorf(codes.Unimplemented, "method UtxosNotifications not implemented") +} +func (UnimplementedNotificationServiceServer) AddWebhook(context.Context, *AddWebhookRequest) (*AddWebhookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddWebhook not implemented") +} +func (UnimplementedNotificationServiceServer) RemoveWebhook(context.Context, *RemoveWebhookRequest) (*RemoveWebhookResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveWebhook not implemented") +} +func (UnimplementedNotificationServiceServer) ListWebhooks(context.Context, *ListWebhooksRequest) (*ListWebhooksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListWebhooks not implemented") +} + +// UnsafeNotificationServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NotificationServiceServer will +// result in compilation errors. +type UnsafeNotificationServiceServer interface { + mustEmbedUnimplementedNotificationServiceServer() +} + +func RegisterNotificationServiceServer(s grpc.ServiceRegistrar, srv NotificationServiceServer) { + s.RegisterService(&NotificationService_ServiceDesc, srv) +} + +func _NotificationService_TransactionNotifications_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(TransactionNotificationsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(NotificationServiceServer).TransactionNotifications(m, ¬ificationServiceTransactionNotificationsServer{stream}) +} + +type NotificationService_TransactionNotificationsServer interface { + Send(*TransactionNotificationsResponse) error + grpc.ServerStream +} + +type notificationServiceTransactionNotificationsServer struct { + grpc.ServerStream +} + +func (x *notificationServiceTransactionNotificationsServer) Send(m *TransactionNotificationsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _NotificationService_UtxosNotifications_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(UtxosNotificationsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(NotificationServiceServer).UtxosNotifications(m, ¬ificationServiceUtxosNotificationsServer{stream}) +} + +type NotificationService_UtxosNotificationsServer interface { + Send(*UtxosNotificationsResponse) error + grpc.ServerStream +} + +type notificationServiceUtxosNotificationsServer struct { + grpc.ServerStream +} + +func (x *notificationServiceUtxosNotificationsServer) Send(m *UtxosNotificationsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _NotificationService_AddWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddWebhookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NotificationServiceServer).AddWebhook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.NotificationService/AddWebhook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NotificationServiceServer).AddWebhook(ctx, req.(*AddWebhookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NotificationService_RemoveWebhook_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveWebhookRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NotificationServiceServer).RemoveWebhook(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.NotificationService/RemoveWebhook", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NotificationServiceServer).RemoveWebhook(ctx, req.(*RemoveWebhookRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NotificationService_ListWebhooks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListWebhooksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NotificationServiceServer).ListWebhooks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.NotificationService/ListWebhooks", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NotificationServiceServer).ListWebhooks(ctx, req.(*ListWebhooksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// NotificationService_ServiceDesc is the grpc.ServiceDesc for NotificationService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var NotificationService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "ocean.v1.NotificationService", + HandlerType: (*NotificationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AddWebhook", + Handler: _NotificationService_AddWebhook_Handler, + }, + { + MethodName: "RemoveWebhook", + Handler: _NotificationService_RemoveWebhook_Handler, + }, + { + MethodName: "ListWebhooks", + Handler: _NotificationService_ListWebhooks_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "TransactionNotifications", + Handler: _NotificationService_TransactionNotifications_Handler, + ServerStreams: true, + }, + { + StreamName: "UtxosNotifications", + Handler: _NotificationService_UtxosNotifications_Handler, + ServerStreams: true, + }, + }, + Metadata: "ocean/v1/notification.proto", +} diff --git a/api-spec/protobuf/gen/ocean/v1/transaction.pb.go b/api-spec/protobuf/gen/ocean/v1/transaction.pb.go new file mode 100644 index 0000000..cb95fdc --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/transaction.pb.go @@ -0,0 +1,2546 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc (unknown) +// source: ocean/v1/transaction.proto + +package oceanv1 + +import ( + 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) +) + +// Coin-selection algorithm. +type SelectUtxosRequest_Strategy int32 + +const ( + SelectUtxosRequest_STRATEGY_UNSPECIFIED SelectUtxosRequest_Strategy = 0 + SelectUtxosRequest_STRATEGY_BRANCH_BOUND SelectUtxosRequest_Strategy = 1 + SelectUtxosRequest_STRATEGY_FRAGMENT SelectUtxosRequest_Strategy = 2 +) + +// Enum value maps for SelectUtxosRequest_Strategy. +var ( + SelectUtxosRequest_Strategy_name = map[int32]string{ + 0: "STRATEGY_UNSPECIFIED", + 1: "STRATEGY_BRANCH_BOUND", + 2: "STRATEGY_FRAGMENT", + } + SelectUtxosRequest_Strategy_value = map[string]int32{ + "STRATEGY_UNSPECIFIED": 0, + "STRATEGY_BRANCH_BOUND": 1, + "STRATEGY_FRAGMENT": 2, + } +) + +func (x SelectUtxosRequest_Strategy) Enum() *SelectUtxosRequest_Strategy { + p := new(SelectUtxosRequest_Strategy) + *p = x + return p +} + +func (x SelectUtxosRequest_Strategy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SelectUtxosRequest_Strategy) Descriptor() protoreflect.EnumDescriptor { + return file_ocean_v1_transaction_proto_enumTypes[0].Descriptor() +} + +func (SelectUtxosRequest_Strategy) Type() protoreflect.EnumType { + return &file_ocean_v1_transaction_proto_enumTypes[0] +} + +func (x SelectUtxosRequest_Strategy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SelectUtxosRequest_Strategy.Descriptor instead. +func (SelectUtxosRequest_Strategy) EnumDescriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{2, 0} +} + +type GetTransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *GetTransactionRequest) Reset() { + *x = GetTransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTransactionRequest) ProtoMessage() {} + +func (x *GetTransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 GetTransactionRequest.ProtoReflect.Descriptor instead. +func (*GetTransactionRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{0} +} + +func (x *GetTransactionRequest) GetTxid() string { + if x != nil { + return x.Txid + } + return "" +} + +type GetTransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Raw transaction in hex format. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` + // Deatils of the block including the transaction. + BlockDetails *BlockDetails `protobuf:"bytes,2,opt,name=block_details,json=blockDetails,proto3" json:"block_details,omitempty"` +} + +func (x *GetTransactionResponse) Reset() { + *x = GetTransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTransactionResponse) ProtoMessage() {} + +func (x *GetTransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 GetTransactionResponse.ProtoReflect.Descriptor instead. +func (*GetTransactionResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{1} +} + +func (x *GetTransactionResponse) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +func (x *GetTransactionResponse) GetBlockDetails() *BlockDetails { + if x != nil { + return x.BlockDetails + } + return nil +} + +type SelectUtxosRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account name. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Asset hash of the utxos to select. + TargetAsset string `protobuf:"bytes,2,opt,name=target_asset,json=targetAsset,proto3" json:"target_asset,omitempty"` + // Target amount to cover. + TargetAmount uint64 `protobuf:"varint,3,opt,name=target_amount,json=targetAmount,proto3" json:"target_amount,omitempty"` + Strategy SelectUtxosRequest_Strategy `protobuf:"varint,4,opt,name=strategy,proto3,enum=ocean.v1.SelectUtxosRequest_Strategy" json:"strategy,omitempty"` +} + +func (x *SelectUtxosRequest) Reset() { + *x = SelectUtxosRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SelectUtxosRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SelectUtxosRequest) ProtoMessage() {} + +func (x *SelectUtxosRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 SelectUtxosRequest.ProtoReflect.Descriptor instead. +func (*SelectUtxosRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{2} +} + +func (x *SelectUtxosRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *SelectUtxosRequest) GetTargetAsset() string { + if x != nil { + return x.TargetAsset + } + return "" +} + +func (x *SelectUtxosRequest) GetTargetAmount() uint64 { + if x != nil { + return x.TargetAmount + } + return 0 +} + +func (x *SelectUtxosRequest) GetStrategy() SelectUtxosRequest_Strategy { + if x != nil { + return x.Strategy + } + return SelectUtxosRequest_STRATEGY_UNSPECIFIED +} + +type SelectUtxosResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of selected utxos. + Utxos []*Utxo `protobuf:"bytes,1,rep,name=utxos,proto3" json:"utxos,omitempty"` + // Eventual change amount if utxos cumulative sum exceeds the target amount. + Change uint64 `protobuf:"varint,2,opt,name=change,proto3" json:"change,omitempty"` + // Expiration date for the selected utxo, which are temporary locked to + // prevent double spending them. + ExpirationDate int64 `protobuf:"varint,3,opt,name=expiration_date,json=expirationDate,proto3" json:"expiration_date,omitempty"` +} + +func (x *SelectUtxosResponse) Reset() { + *x = SelectUtxosResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SelectUtxosResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SelectUtxosResponse) ProtoMessage() {} + +func (x *SelectUtxosResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 SelectUtxosResponse.ProtoReflect.Descriptor instead. +func (*SelectUtxosResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{3} +} + +func (x *SelectUtxosResponse) GetUtxos() []*Utxo { + if x != nil { + return x.Utxos + } + return nil +} + +func (x *SelectUtxosResponse) GetChange() uint64 { + if x != nil { + return x.Change + } + return 0 +} + +func (x *SelectUtxosResponse) GetExpirationDate() int64 { + if x != nil { + return x.ExpirationDate + } + return 0 +} + +type EstimateFeesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inputs []*Input `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"` + Outputs []*Output `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"` + MillisatsPerByte uint64 `protobuf:"varint,3,opt,name=millisats_per_byte,json=millisatsPerByte,proto3" json:"millisats_per_byte,omitempty"` +} + +func (x *EstimateFeesRequest) Reset() { + *x = EstimateFeesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateFeesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateFeesRequest) ProtoMessage() {} + +func (x *EstimateFeesRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 EstimateFeesRequest.ProtoReflect.Descriptor instead. +func (*EstimateFeesRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{4} +} + +func (x *EstimateFeesRequest) GetInputs() []*Input { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *EstimateFeesRequest) GetOutputs() []*Output { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *EstimateFeesRequest) GetMillisatsPerByte() uint64 { + if x != nil { + return x.MillisatsPerByte + } + return 0 +} + +type EstimateFeesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FeeAmount uint64 `protobuf:"varint,1,opt,name=fee_amount,json=feeAmount,proto3" json:"fee_amount,omitempty"` +} + +func (x *EstimateFeesResponse) Reset() { + *x = EstimateFeesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EstimateFeesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EstimateFeesResponse) ProtoMessage() {} + +func (x *EstimateFeesResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 EstimateFeesResponse.ProtoReflect.Descriptor instead. +func (*EstimateFeesResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{5} +} + +func (x *EstimateFeesResponse) GetFeeAmount() uint64 { + if x != nil { + return x.FeeAmount + } + return 0 +} + +type SignTransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Raw transaction to sign. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` + // The sighash type. SIGHASH_ALL is used if not defined. + SighashType uint32 `protobuf:"varint,2,opt,name=sighash_type,json=sighashType,proto3" json:"sighash_type,omitempty"` +} + +func (x *SignTransactionRequest) Reset() { + *x = SignTransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignTransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignTransactionRequest) ProtoMessage() {} + +func (x *SignTransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 SignTransactionRequest.ProtoReflect.Descriptor instead. +func (*SignTransactionRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{6} +} + +func (x *SignTransactionRequest) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +func (x *SignTransactionRequest) GetSighashType() uint32 { + if x != nil { + return x.SighashType + } + return 0 +} + +type SignTransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Raw signed transaction. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` +} + +func (x *SignTransactionResponse) Reset() { + *x = SignTransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignTransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignTransactionResponse) ProtoMessage() {} + +func (x *SignTransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 SignTransactionResponse.ProtoReflect.Descriptor instead. +func (*SignTransactionResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{7} +} + +func (x *SignTransactionResponse) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +type BroadcastTransactionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Transaction to broadcast. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` +} + +func (x *BroadcastTransactionRequest) Reset() { + *x = BroadcastTransactionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BroadcastTransactionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BroadcastTransactionRequest) ProtoMessage() {} + +func (x *BroadcastTransactionRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 BroadcastTransactionRequest.ProtoReflect.Descriptor instead. +func (*BroadcastTransactionRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{8} +} + +func (x *BroadcastTransactionRequest) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +type BroadcastTransactionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the broadcasted transaction. + Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *BroadcastTransactionResponse) Reset() { + *x = BroadcastTransactionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BroadcastTransactionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BroadcastTransactionResponse) ProtoMessage() {} + +func (x *BroadcastTransactionResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_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 BroadcastTransactionResponse.ProtoReflect.Descriptor instead. +func (*BroadcastTransactionResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{9} +} + +func (x *BroadcastTransactionResponse) GetTxid() string { + if x != nil { + return x.Txid + } + return "" +} + +type CreatePsetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Inputs of the partial transaction. + Inputs []*Input `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"` + // Outputs of the partial transaction + Outputs []*Output `protobuf:"bytes,2,rep,name=outputs,proto3" json:"outputs,omitempty"` +} + +func (x *CreatePsetRequest) Reset() { + *x = CreatePsetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePsetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePsetRequest) ProtoMessage() {} + +func (x *CreatePsetRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[10] + 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 CreatePsetRequest.ProtoReflect.Descriptor instead. +func (*CreatePsetRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{10} +} + +func (x *CreatePsetRequest) GetInputs() []*Input { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *CreatePsetRequest) GetOutputs() []*Output { + if x != nil { + return x.Outputs + } + return nil +} + +type CreatePsetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // New partial transaction in base64 format. + Pset string `protobuf:"bytes,1,opt,name=pset,proto3" json:"pset,omitempty"` +} + +func (x *CreatePsetResponse) Reset() { + *x = CreatePsetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatePsetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePsetResponse) ProtoMessage() {} + +func (x *CreatePsetResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[11] + 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 CreatePsetResponse.ProtoReflect.Descriptor instead. +func (*CreatePsetResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{11} +} + +func (x *CreatePsetResponse) GetPset() string { + if x != nil { + return x.Pset + } + return "" +} + +type UpdatePsetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The partial transaction to update in base64 format. + Pset string `protobuf:"bytes,1,opt,name=pset,proto3" json:"pset,omitempty"` + // Inputs to add to the partial transaction. + Inputs []*Input `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty"` + // Outputs to add to the partil transaction. + Outputs []*Output `protobuf:"bytes,3,rep,name=outputs,proto3" json:"outputs,omitempty"` +} + +func (x *UpdatePsetRequest) Reset() { + *x = UpdatePsetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdatePsetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePsetRequest) ProtoMessage() {} + +func (x *UpdatePsetRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[12] + 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 UpdatePsetRequest.ProtoReflect.Descriptor instead. +func (*UpdatePsetRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{12} +} + +func (x *UpdatePsetRequest) GetPset() string { + if x != nil { + return x.Pset + } + return "" +} + +func (x *UpdatePsetRequest) GetInputs() []*Input { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *UpdatePsetRequest) GetOutputs() []*Output { + if x != nil { + return x.Outputs + } + return nil +} + +type UpdatePsetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Updated partial transaction in base64 format. + Pset string `protobuf:"bytes,1,opt,name=pset,proto3" json:"pset,omitempty"` +} + +func (x *UpdatePsetResponse) Reset() { + *x = UpdatePsetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdatePsetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePsetResponse) ProtoMessage() {} + +func (x *UpdatePsetResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[13] + 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 UpdatePsetResponse.ProtoReflect.Descriptor instead. +func (*UpdatePsetResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{13} +} + +func (x *UpdatePsetResponse) GetPset() string { + if x != nil { + return x.Pset + } + return "" +} + +type BlindPsetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The partial transaction with inputs/outputs to blind. + Pset string `protobuf:"bytes,1,opt,name=pset,proto3" json:"pset,omitempty"` + // Whether blinding as last blinder. + LastBlinder bool `protobuf:"varint,2,opt,name=last_blinder,json=lastBlinder,proto3" json:"last_blinder,omitempty"` + // Optional list of unblinded data related to existing pset inputs in order + // to make the wallet blind also outputs it wouldn't own otherwise. + ExtraUnblindedInputs []*UnblindedInput `protobuf:"bytes,3,rep,name=extra_unblinded_inputs,json=extraUnblindedInputs,proto3" json:"extra_unblinded_inputs,omitempty"` +} + +func (x *BlindPsetRequest) Reset() { + *x = BlindPsetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlindPsetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlindPsetRequest) ProtoMessage() {} + +func (x *BlindPsetRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[14] + 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 BlindPsetRequest.ProtoReflect.Descriptor instead. +func (*BlindPsetRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{14} +} + +func (x *BlindPsetRequest) GetPset() string { + if x != nil { + return x.Pset + } + return "" +} + +func (x *BlindPsetRequest) GetLastBlinder() bool { + if x != nil { + return x.LastBlinder + } + return false +} + +func (x *BlindPsetRequest) GetExtraUnblindedInputs() []*UnblindedInput { + if x != nil { + return x.ExtraUnblindedInputs + } + return nil +} + +type BlindPsetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Updated partial transaction with blinded inputs/outputs in base64 format. + Pset string `protobuf:"bytes,1,opt,name=pset,proto3" json:"pset,omitempty"` +} + +func (x *BlindPsetResponse) Reset() { + *x = BlindPsetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlindPsetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlindPsetResponse) ProtoMessage() {} + +func (x *BlindPsetResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[15] + 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 BlindPsetResponse.ProtoReflect.Descriptor instead. +func (*BlindPsetResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{15} +} + +func (x *BlindPsetResponse) GetPset() string { + if x != nil { + return x.Pset + } + return "" +} + +type SignPsetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The partial transaction to sign in base64 format. + Pset string `protobuf:"bytes,1,opt,name=pset,proto3" json:"pset,omitempty"` + // The sighash type. If not specified, SIGHASH_ALL is used for any input + // to sign that doesn't already have one set. + SighashType uint32 `protobuf:"varint,2,opt,name=sighash_type,json=sighashType,proto3" json:"sighash_type,omitempty"` +} + +func (x *SignPsetRequest) Reset() { + *x = SignPsetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignPsetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignPsetRequest) ProtoMessage() {} + +func (x *SignPsetRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[16] + 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 SignPsetRequest.ProtoReflect.Descriptor instead. +func (*SignPsetRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{16} +} + +func (x *SignPsetRequest) GetPset() string { + if x != nil { + return x.Pset + } + return "" +} + +func (x *SignPsetRequest) GetSighashType() uint32 { + if x != nil { + return x.SighashType + } + return 0 +} + +type SignPsetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Signed partial transaction in base64 format. + Pset string `protobuf:"bytes,1,opt,name=pset,proto3" json:"pset,omitempty"` +} + +func (x *SignPsetResponse) Reset() { + *x = SignPsetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignPsetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignPsetResponse) ProtoMessage() {} + +func (x *SignPsetResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[17] + 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 SignPsetResponse.ProtoReflect.Descriptor instead. +func (*SignPsetResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{17} +} + +func (x *SignPsetResponse) GetPset() string { + if x != nil { + return x.Pset + } + return "" +} + +type MintRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account name. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Asset amount to mint. + AssetAmount uint64 `protobuf:"varint,2,opt,name=asset_amount,json=assetAmount,proto3" json:"asset_amount,omitempty"` + // Token amount to mint. + TokenAmount uint64 `protobuf:"varint,3,opt,name=token_amount,json=tokenAmount,proto3" json:"token_amount,omitempty"` + // Name of the asset. + AssetName string `protobuf:"bytes,4,opt,name=asset_name,json=assetName,proto3" json:"asset_name,omitempty"` + // Ticker of the asset. + AssetTicker string `protobuf:"bytes,5,opt,name=asset_ticker,json=assetTicker,proto3" json:"asset_ticker,omitempty"` + // Domain of the asset. + AssetDomain string `protobuf:"bytes,6,opt,name=asset_domain,json=assetDomain,proto3" json:"asset_domain,omitempty"` + // mSats/byte fee ratio. + MillisatsPerByte uint64 `protobuf:"varint,7,opt,name=millisats_per_byte,json=millisatsPerByte,proto3" json:"millisats_per_byte,omitempty"` +} + +func (x *MintRequest) Reset() { + *x = MintRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MintRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MintRequest) ProtoMessage() {} + +func (x *MintRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[18] + 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 MintRequest.ProtoReflect.Descriptor instead. +func (*MintRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{18} +} + +func (x *MintRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *MintRequest) GetAssetAmount() uint64 { + if x != nil { + return x.AssetAmount + } + return 0 +} + +func (x *MintRequest) GetTokenAmount() uint64 { + if x != nil { + return x.TokenAmount + } + return 0 +} + +func (x *MintRequest) GetAssetName() string { + if x != nil { + return x.AssetName + } + return "" +} + +func (x *MintRequest) GetAssetTicker() string { + if x != nil { + return x.AssetTicker + } + return "" +} + +func (x *MintRequest) GetAssetDomain() string { + if x != nil { + return x.AssetDomain + } + return "" +} + +func (x *MintRequest) GetMillisatsPerByte() uint64 { + if x != nil { + return x.MillisatsPerByte + } + return 0 +} + +type MintResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Signed tx in hex format. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` +} + +func (x *MintResponse) Reset() { + *x = MintResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MintResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MintResponse) ProtoMessage() {} + +func (x *MintResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[19] + 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 MintResponse.ProtoReflect.Descriptor instead. +func (*MintResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{19} +} + +func (x *MintResponse) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +type RemintRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account name. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Hash of the asset to remint. + Asset string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` + // Amount to remint. + Amount uint64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"` + // mSats/byte fee ratio. + MillisatsPerByte uint64 `protobuf:"varint,4,opt,name=millisats_per_byte,json=millisatsPerByte,proto3" json:"millisats_per_byte,omitempty"` +} + +func (x *RemintRequest) Reset() { + *x = RemintRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemintRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemintRequest) ProtoMessage() {} + +func (x *RemintRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[20] + 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 RemintRequest.ProtoReflect.Descriptor instead. +func (*RemintRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{20} +} + +func (x *RemintRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *RemintRequest) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +func (x *RemintRequest) GetAmount() uint64 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *RemintRequest) GetMillisatsPerByte() uint64 { + if x != nil { + return x.MillisatsPerByte + } + return 0 +} + +type RemintResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Signed tx in hex format. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` +} + +func (x *RemintResponse) Reset() { + *x = RemintResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemintResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemintResponse) ProtoMessage() {} + +func (x *RemintResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[21] + 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 RemintResponse.ProtoReflect.Descriptor instead. +func (*RemintResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{21} +} + +func (x *RemintResponse) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +type BurnRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account name. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Receivers contains a list of asset-amount to burn and their addresses are + // ignored and replaced with OP_RETURN output scripts. + Receivers []*Output `protobuf:"bytes,2,rep,name=receivers,proto3" json:"receivers,omitempty"` + // mSats/byte fee ratio. + MillisatsPerByte uint64 `protobuf:"varint,3,opt,name=millisats_per_byte,json=millisatsPerByte,proto3" json:"millisats_per_byte,omitempty"` +} + +func (x *BurnRequest) Reset() { + *x = BurnRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BurnRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BurnRequest) ProtoMessage() {} + +func (x *BurnRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[22] + 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 BurnRequest.ProtoReflect.Descriptor instead. +func (*BurnRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{22} +} + +func (x *BurnRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *BurnRequest) GetReceivers() []*Output { + if x != nil { + return x.Receivers + } + return nil +} + +func (x *BurnRequest) GetMillisatsPerByte() uint64 { + if x != nil { + return x.MillisatsPerByte + } + return 0 +} + +type BurnResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Signed tx in hex format. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` +} + +func (x *BurnResponse) Reset() { + *x = BurnResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BurnResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BurnResponse) ProtoMessage() {} + +func (x *BurnResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[23] + 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 BurnResponse.ProtoReflect.Descriptor instead. +func (*BurnResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{23} +} + +func (x *BurnResponse) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +type TransferRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account name. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Receivers are the receivers of the funds. + Receivers []*Output `protobuf:"bytes,2,rep,name=receivers,proto3" json:"receivers,omitempty"` + // mSats/byte fee ratio. + MillisatsPerByte uint64 `protobuf:"varint,3,opt,name=millisats_per_byte,json=millisatsPerByte,proto3" json:"millisats_per_byte,omitempty"` +} + +func (x *TransferRequest) Reset() { + *x = TransferRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransferRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransferRequest) ProtoMessage() {} + +func (x *TransferRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[24] + 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 TransferRequest.ProtoReflect.Descriptor instead. +func (*TransferRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{24} +} + +func (x *TransferRequest) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *TransferRequest) GetReceivers() []*Output { + if x != nil { + return x.Receivers + } + return nil +} + +func (x *TransferRequest) GetMillisatsPerByte() uint64 { + if x != nil { + return x.MillisatsPerByte + } + return 0 +} + +type TransferResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Signed tx in hex format. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` +} + +func (x *TransferResponse) Reset() { + *x = TransferResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransferResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransferResponse) ProtoMessage() {} + +func (x *TransferResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[25] + 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 TransferResponse.ProtoReflect.Descriptor instead. +func (*TransferResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{25} +} + +func (x *TransferResponse) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +type PegInAddressRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PegInAddressRequest) Reset() { + *x = PegInAddressRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PegInAddressRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PegInAddressRequest) ProtoMessage() {} + +func (x *PegInAddressRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[26] + 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 PegInAddressRequest.ProtoReflect.Descriptor instead. +func (*PegInAddressRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{26} +} + +type PegInAddressResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account name. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Main-chain deposit address to send bitcoin to. + MainChainAddress string `protobuf:"bytes,2,opt,name=main_chain_address,json=mainChainAddress,proto3" json:"main_chain_address,omitempty"` + // Claim script committed to by the main-chain address. + ClaimScript string `protobuf:"bytes,3,opt,name=claim_script,json=claimScript,proto3" json:"claim_script,omitempty"` +} + +func (x *PegInAddressResponse) Reset() { + *x = PegInAddressResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PegInAddressResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PegInAddressResponse) ProtoMessage() {} + +func (x *PegInAddressResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[27] + 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 PegInAddressResponse.ProtoReflect.Descriptor instead. +func (*PegInAddressResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{27} +} + +func (x *PegInAddressResponse) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *PegInAddressResponse) GetMainChainAddress() string { + if x != nil { + return x.MainChainAddress + } + return "" +} + +func (x *PegInAddressResponse) GetClaimScript() string { + if x != nil { + return x.ClaimScript + } + return "" +} + +type ClaimPegInRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The raw bitcoin transaction (in hex) depositing bitcoin to the main-chain address generated by PegInAddress. + BitcoinTx string `protobuf:"bytes,1,opt,name=bitcoin_tx,json=bitcoinTx,proto3" json:"bitcoin_tx,omitempty"` + // A raw tx_out_proof (in hex) generated by the main-chain daemon's `gettxoutproof` containing a proof of only bitcoin_tx. + TxOutProof string `protobuf:"bytes,2,opt,name=tx_out_proof,json=txOutProof,proto3" json:"tx_out_proof,omitempty"` + // The witness program generated by PegInAddress. + ClaimScript string `protobuf:"bytes,3,opt,name=claim_script,json=claimScript,proto3" json:"claim_script,omitempty"` +} + +func (x *ClaimPegInRequest) Reset() { + *x = ClaimPegInRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClaimPegInRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClaimPegInRequest) ProtoMessage() {} + +func (x *ClaimPegInRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[28] + 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 ClaimPegInRequest.ProtoReflect.Descriptor instead. +func (*ClaimPegInRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{28} +} + +func (x *ClaimPegInRequest) GetBitcoinTx() string { + if x != nil { + return x.BitcoinTx + } + return "" +} + +func (x *ClaimPegInRequest) GetTxOutProof() string { + if x != nil { + return x.TxOutProof + } + return "" +} + +func (x *ClaimPegInRequest) GetClaimScript() string { + if x != nil { + return x.ClaimScript + } + return "" +} + +type ClaimPegInResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Signed tx in hex format. + TxHex string `protobuf:"bytes,1,opt,name=tx_hex,json=txHex,proto3" json:"tx_hex,omitempty"` +} + +func (x *ClaimPegInResponse) Reset() { + *x = ClaimPegInResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_transaction_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClaimPegInResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClaimPegInResponse) ProtoMessage() {} + +func (x *ClaimPegInResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_transaction_proto_msgTypes[29] + 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 ClaimPegInResponse.ProtoReflect.Descriptor instead. +func (*ClaimPegInResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_transaction_proto_rawDescGZIP(), []int{29} +} + +func (x *ClaimPegInResponse) GetTxHex() string { + if x != nil { + return x.TxHex + } + return "" +} + +var File_ocean_v1_transaction_proto protoreflect.FileDescriptor + +var file_ocean_v1_transaction_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x63, + 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x14, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2b, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x22, 0x6c, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, 0x12, 0x3b, 0x0a, 0x0d, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x9a, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x63, + 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x74, 0x78, + 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x52, 0x08, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x22, 0x56, 0x0a, 0x08, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x54, 0x52, 0x41, + 0x54, 0x45, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x42, + 0x52, 0x41, 0x4e, 0x43, 0x48, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, + 0x4e, 0x54, 0x10, 0x02, 0x22, 0x7c, 0x0a, 0x13, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x74, + 0x78, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x75, + 0x74, 0x78, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x52, 0x05, 0x75, 0x74, 0x78, 0x6f, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x13, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x46, + 0x65, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, + 0x2c, 0x0a, 0x12, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x69, 0x6c, + 0x6c, 0x69, 0x73, 0x61, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x22, 0x35, 0x0a, + 0x14, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x65, 0x65, 0x5f, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x65, 0x65, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x52, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, + 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x78, 0x48, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x68, 0x61, 0x73, 0x68, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x69, 0x67, + 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, 0x22, 0x34, 0x0a, 0x1b, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, + 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, + 0x22, 0x32, 0x0a, 0x1c, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x74, 0x78, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x28, + 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x65, 0x74, 0x22, 0x7c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x65, + 0x74, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x63, + 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x28, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x65, 0x74, + 0x22, 0x99, 0x01, 0x0a, 0x10, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x16, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x75, 0x6e, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x5f, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, + 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x14, 0x65, 0x78, 0x74, 0x72, 0x61, 0x55, 0x6e, 0x62, + 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0x27, 0x0a, 0x11, + 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x73, 0x65, 0x74, 0x22, 0x48, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x50, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x65, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x69, 0x67, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x26, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x73, 0x65, 0x74, 0x22, 0x89, 0x02, 0x0a, 0x0b, 0x4d, 0x69, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, + 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, + 0x79, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, 0x22, 0x8e, 0x01, 0x0a, 0x0d, 0x52, + 0x65, 0x6d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, + 0x12, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x69, 0x6c, 0x6c, 0x69, + 0x73, 0x61, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x22, 0x27, 0x0a, 0x0e, 0x52, + 0x65, 0x6d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, + 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x78, 0x48, 0x65, 0x78, 0x22, 0x8e, 0x01, 0x0a, 0x0b, 0x42, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x09, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x69, 0x6c, 0x6c, 0x69, + 0x73, 0x61, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x73, 0x50, 0x65, + 0x72, 0x42, 0x79, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x0c, 0x42, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, 0x22, 0x92, 0x01, 0x0a, + 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x09, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x10, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x73, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, 0x22, 0x15, 0x0a, 0x13, + 0x50, 0x65, 0x67, 0x49, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x14, 0x50, 0x65, 0x67, 0x49, 0x6e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x69, + 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x22, 0x77, 0x0a, 0x11, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x65, 0x67, 0x49, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, + 0x5f, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x74, 0x63, 0x6f, + 0x69, 0x6e, 0x54, 0x78, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x78, 0x4f, 0x75, + 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x2b, 0x0a, 0x12, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x50, 0x65, 0x67, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x15, 0x0a, 0x06, 0x74, 0x78, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x78, 0x48, 0x65, 0x78, 0x32, 0xe4, 0x08, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1f, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x55, 0x74, 0x78, 0x6f, + 0x73, 0x12, 0x1c, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, + 0x0a, 0x0c, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x73, 0x12, 0x1d, + 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, + 0x65, 0x46, 0x65, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, + 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x14, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x73, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, + 0x0a, 0x09, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x50, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x6f, 0x63, + 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x50, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x50, 0x73, 0x65, 0x74, + 0x12, 0x19, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x50, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, + 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x50, 0x73, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x4d, 0x69, 0x6e, 0x74, 0x12, + 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, + 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x74, 0x12, 0x17, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, + 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x42, + 0x75, 0x72, 0x6e, 0x12, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x75, 0x72, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x72, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x41, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x19, + 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x50, 0x65, 0x67, 0x49, 0x6e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x65, 0x67, 0x49, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x65, 0x67, 0x49, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0a, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x65, 0x67, + 0x49, 0x6e, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, + 0x61, 0x69, 0x6d, 0x50, 0x65, 0x67, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x50, 0x65, 0x67, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xa4, 0x01, + 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, + 0x72, 0x6b, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x72, 0x6b, 0x2f, 0x61, + 0x70, 0x69, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x63, + 0x65, 0x61, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x58, 0x58, 0xaa, 0x02, 0x08, 0x4f, 0x63, + 0x65, 0x61, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x08, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x5c, 0x56, + 0x31, 0xe2, 0x02, 0x14, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x09, 0x4f, 0x63, 0x65, 0x61, 0x6e, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_ocean_v1_transaction_proto_rawDescOnce sync.Once + file_ocean_v1_transaction_proto_rawDescData = file_ocean_v1_transaction_proto_rawDesc +) + +func file_ocean_v1_transaction_proto_rawDescGZIP() []byte { + file_ocean_v1_transaction_proto_rawDescOnce.Do(func() { + file_ocean_v1_transaction_proto_rawDescData = protoimpl.X.CompressGZIP(file_ocean_v1_transaction_proto_rawDescData) + }) + return file_ocean_v1_transaction_proto_rawDescData +} + +var file_ocean_v1_transaction_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_ocean_v1_transaction_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_ocean_v1_transaction_proto_goTypes = []interface{}{ + (SelectUtxosRequest_Strategy)(0), // 0: ocean.v1.SelectUtxosRequest.Strategy + (*GetTransactionRequest)(nil), // 1: ocean.v1.GetTransactionRequest + (*GetTransactionResponse)(nil), // 2: ocean.v1.GetTransactionResponse + (*SelectUtxosRequest)(nil), // 3: ocean.v1.SelectUtxosRequest + (*SelectUtxosResponse)(nil), // 4: ocean.v1.SelectUtxosResponse + (*EstimateFeesRequest)(nil), // 5: ocean.v1.EstimateFeesRequest + (*EstimateFeesResponse)(nil), // 6: ocean.v1.EstimateFeesResponse + (*SignTransactionRequest)(nil), // 7: ocean.v1.SignTransactionRequest + (*SignTransactionResponse)(nil), // 8: ocean.v1.SignTransactionResponse + (*BroadcastTransactionRequest)(nil), // 9: ocean.v1.BroadcastTransactionRequest + (*BroadcastTransactionResponse)(nil), // 10: ocean.v1.BroadcastTransactionResponse + (*CreatePsetRequest)(nil), // 11: ocean.v1.CreatePsetRequest + (*CreatePsetResponse)(nil), // 12: ocean.v1.CreatePsetResponse + (*UpdatePsetRequest)(nil), // 13: ocean.v1.UpdatePsetRequest + (*UpdatePsetResponse)(nil), // 14: ocean.v1.UpdatePsetResponse + (*BlindPsetRequest)(nil), // 15: ocean.v1.BlindPsetRequest + (*BlindPsetResponse)(nil), // 16: ocean.v1.BlindPsetResponse + (*SignPsetRequest)(nil), // 17: ocean.v1.SignPsetRequest + (*SignPsetResponse)(nil), // 18: ocean.v1.SignPsetResponse + (*MintRequest)(nil), // 19: ocean.v1.MintRequest + (*MintResponse)(nil), // 20: ocean.v1.MintResponse + (*RemintRequest)(nil), // 21: ocean.v1.RemintRequest + (*RemintResponse)(nil), // 22: ocean.v1.RemintResponse + (*BurnRequest)(nil), // 23: ocean.v1.BurnRequest + (*BurnResponse)(nil), // 24: ocean.v1.BurnResponse + (*TransferRequest)(nil), // 25: ocean.v1.TransferRequest + (*TransferResponse)(nil), // 26: ocean.v1.TransferResponse + (*PegInAddressRequest)(nil), // 27: ocean.v1.PegInAddressRequest + (*PegInAddressResponse)(nil), // 28: ocean.v1.PegInAddressResponse + (*ClaimPegInRequest)(nil), // 29: ocean.v1.ClaimPegInRequest + (*ClaimPegInResponse)(nil), // 30: ocean.v1.ClaimPegInResponse + (*BlockDetails)(nil), // 31: ocean.v1.BlockDetails + (*Utxo)(nil), // 32: ocean.v1.Utxo + (*Input)(nil), // 33: ocean.v1.Input + (*Output)(nil), // 34: ocean.v1.Output + (*UnblindedInput)(nil), // 35: ocean.v1.UnblindedInput +} +var file_ocean_v1_transaction_proto_depIdxs = []int32{ + 31, // 0: ocean.v1.GetTransactionResponse.block_details:type_name -> ocean.v1.BlockDetails + 0, // 1: ocean.v1.SelectUtxosRequest.strategy:type_name -> ocean.v1.SelectUtxosRequest.Strategy + 32, // 2: ocean.v1.SelectUtxosResponse.utxos:type_name -> ocean.v1.Utxo + 33, // 3: ocean.v1.EstimateFeesRequest.inputs:type_name -> ocean.v1.Input + 34, // 4: ocean.v1.EstimateFeesRequest.outputs:type_name -> ocean.v1.Output + 33, // 5: ocean.v1.CreatePsetRequest.inputs:type_name -> ocean.v1.Input + 34, // 6: ocean.v1.CreatePsetRequest.outputs:type_name -> ocean.v1.Output + 33, // 7: ocean.v1.UpdatePsetRequest.inputs:type_name -> ocean.v1.Input + 34, // 8: ocean.v1.UpdatePsetRequest.outputs:type_name -> ocean.v1.Output + 35, // 9: ocean.v1.BlindPsetRequest.extra_unblinded_inputs:type_name -> ocean.v1.UnblindedInput + 34, // 10: ocean.v1.BurnRequest.receivers:type_name -> ocean.v1.Output + 34, // 11: ocean.v1.TransferRequest.receivers:type_name -> ocean.v1.Output + 1, // 12: ocean.v1.TransactionService.GetTransaction:input_type -> ocean.v1.GetTransactionRequest + 3, // 13: ocean.v1.TransactionService.SelectUtxos:input_type -> ocean.v1.SelectUtxosRequest + 5, // 14: ocean.v1.TransactionService.EstimateFees:input_type -> ocean.v1.EstimateFeesRequest + 7, // 15: ocean.v1.TransactionService.SignTransaction:input_type -> ocean.v1.SignTransactionRequest + 9, // 16: ocean.v1.TransactionService.BroadcastTransaction:input_type -> ocean.v1.BroadcastTransactionRequest + 11, // 17: ocean.v1.TransactionService.CreatePset:input_type -> ocean.v1.CreatePsetRequest + 13, // 18: ocean.v1.TransactionService.UpdatePset:input_type -> ocean.v1.UpdatePsetRequest + 15, // 19: ocean.v1.TransactionService.BlindPset:input_type -> ocean.v1.BlindPsetRequest + 17, // 20: ocean.v1.TransactionService.SignPset:input_type -> ocean.v1.SignPsetRequest + 19, // 21: ocean.v1.TransactionService.Mint:input_type -> ocean.v1.MintRequest + 21, // 22: ocean.v1.TransactionService.Remint:input_type -> ocean.v1.RemintRequest + 23, // 23: ocean.v1.TransactionService.Burn:input_type -> ocean.v1.BurnRequest + 25, // 24: ocean.v1.TransactionService.Transfer:input_type -> ocean.v1.TransferRequest + 27, // 25: ocean.v1.TransactionService.PegInAddress:input_type -> ocean.v1.PegInAddressRequest + 29, // 26: ocean.v1.TransactionService.ClaimPegIn:input_type -> ocean.v1.ClaimPegInRequest + 2, // 27: ocean.v1.TransactionService.GetTransaction:output_type -> ocean.v1.GetTransactionResponse + 4, // 28: ocean.v1.TransactionService.SelectUtxos:output_type -> ocean.v1.SelectUtxosResponse + 6, // 29: ocean.v1.TransactionService.EstimateFees:output_type -> ocean.v1.EstimateFeesResponse + 8, // 30: ocean.v1.TransactionService.SignTransaction:output_type -> ocean.v1.SignTransactionResponse + 10, // 31: ocean.v1.TransactionService.BroadcastTransaction:output_type -> ocean.v1.BroadcastTransactionResponse + 12, // 32: ocean.v1.TransactionService.CreatePset:output_type -> ocean.v1.CreatePsetResponse + 14, // 33: ocean.v1.TransactionService.UpdatePset:output_type -> ocean.v1.UpdatePsetResponse + 16, // 34: ocean.v1.TransactionService.BlindPset:output_type -> ocean.v1.BlindPsetResponse + 18, // 35: ocean.v1.TransactionService.SignPset:output_type -> ocean.v1.SignPsetResponse + 20, // 36: ocean.v1.TransactionService.Mint:output_type -> ocean.v1.MintResponse + 22, // 37: ocean.v1.TransactionService.Remint:output_type -> ocean.v1.RemintResponse + 24, // 38: ocean.v1.TransactionService.Burn:output_type -> ocean.v1.BurnResponse + 26, // 39: ocean.v1.TransactionService.Transfer:output_type -> ocean.v1.TransferResponse + 28, // 40: ocean.v1.TransactionService.PegInAddress:output_type -> ocean.v1.PegInAddressResponse + 30, // 41: ocean.v1.TransactionService.ClaimPegIn:output_type -> ocean.v1.ClaimPegInResponse + 27, // [27:42] is the sub-list for method output_type + 12, // [12:27] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name +} + +func init() { file_ocean_v1_transaction_proto_init() } +func file_ocean_v1_transaction_proto_init() { + if File_ocean_v1_transaction_proto != nil { + return + } + file_ocean_v1_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_ocean_v1_transaction_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SelectUtxosRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SelectUtxosResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateFeesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EstimateFeesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignTransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignTransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BroadcastTransactionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BroadcastTransactionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePsetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatePsetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdatePsetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdatePsetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlindPsetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlindPsetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignPsetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignPsetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MintRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MintResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemintRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemintResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BurnRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BurnResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PegInAddressRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PegInAddressResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClaimPegInRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_transaction_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClaimPegInResponse); 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_ocean_v1_transaction_proto_rawDesc, + NumEnums: 1, + NumMessages: 30, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_ocean_v1_transaction_proto_goTypes, + DependencyIndexes: file_ocean_v1_transaction_proto_depIdxs, + EnumInfos: file_ocean_v1_transaction_proto_enumTypes, + MessageInfos: file_ocean_v1_transaction_proto_msgTypes, + }.Build() + File_ocean_v1_transaction_proto = out.File + file_ocean_v1_transaction_proto_rawDesc = nil + file_ocean_v1_transaction_proto_goTypes = nil + file_ocean_v1_transaction_proto_depIdxs = nil +} diff --git a/api-spec/protobuf/gen/ocean/v1/transaction_grpc.pb.go b/api-spec/protobuf/gen/ocean/v1/transaction_grpc.pb.go new file mode 100644 index 0000000..5724dfa --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/transaction_grpc.pb.go @@ -0,0 +1,649 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package oceanv1 + +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 + +// TransactionServiceClient is the client API for TransactionService 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 TransactionServiceClient interface { + // GetTransaction returns the hex of a transaction given its id. + GetTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*GetTransactionResponse, error) + // SelectUtxos returns a selction of utxos, to be used in another + // transaction, for provided target amount and strategy. + // Selected utxos are locked for predefined amount of time to prevent + // double-spending them. + SelectUtxos(ctx context.Context, in *SelectUtxosRequest, opts ...grpc.CallOption) (*SelectUtxosResponse, error) + // EstimateFees returns the fee amount to pay for a tx containing the given + // inputs and outputs. + EstimateFees(ctx context.Context, in *EstimateFeesRequest, opts ...grpc.CallOption) (*EstimateFeesResponse, error) + // SignTransaction signs a raw transaction in hex format. + SignTransaction(ctx context.Context, in *SignTransactionRequest, opts ...grpc.CallOption) (*SignTransactionResponse, error) + // BroadcastTransaction broadacats a raw transaction in hex format. + BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) + // CreatePset returns an unsigned pset for given inputs and outputs. + CreatePset(ctx context.Context, in *CreatePsetRequest, opts ...grpc.CallOption) (*CreatePsetResponse, error) + // UpdatePset adds the given inputs and outputs to the partial transaction. + UpdatePset(ctx context.Context, in *UpdatePsetRequest, opts ...grpc.CallOption) (*UpdatePsetResponse, error) + // BlindPset updates the given pset with required ins and outs blinded. + BlindPset(ctx context.Context, in *BlindPsetRequest, opts ...grpc.CallOption) (*BlindPsetResponse, error) + // SignPset updates the given pset adding the required signatures. + SignPset(ctx context.Context, in *SignPsetRequest, opts ...grpc.CallOption) (*SignPsetResponse, error) + // Mint returns a transaction that issues a new asset. + Mint(ctx context.Context, in *MintRequest, opts ...grpc.CallOption) (*MintResponse, error) + // Remint returns a transaction that re-issues an existing asset. + Remint(ctx context.Context, in *RemintRequest, opts ...grpc.CallOption) (*RemintResponse, error) + // Burn returns a transaction that burns some funds. + Burn(ctx context.Context, in *BurnRequest, opts ...grpc.CallOption) (*BurnResponse, error) + // Transfer returns a transaction to send funds to some receiver. + Transfer(ctx context.Context, in *TransferRequest, opts ...grpc.CallOption) (*TransferResponse, error) + // PegInAddress returns what's necessary to peg funds of the Bitcoin + // main-chain and have them available on the Liquid side-chain. + // Bitcoin funds must be sent to the main-chain address while the claim + // output script must be used to redeem the LBTC ones. + PegInAddress(ctx context.Context, in *PegInAddressRequest, opts ...grpc.CallOption) (*PegInAddressResponse, error) + // ClaimPegIn returns a transaction to claim funds pegged on the Bitcoin + // main-chain to have them available on the Liquid side-chain. + ClaimPegIn(ctx context.Context, in *ClaimPegInRequest, opts ...grpc.CallOption) (*ClaimPegInResponse, error) +} + +type transactionServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewTransactionServiceClient(cc grpc.ClientConnInterface) TransactionServiceClient { + return &transactionServiceClient{cc} +} + +func (c *transactionServiceClient) GetTransaction(ctx context.Context, in *GetTransactionRequest, opts ...grpc.CallOption) (*GetTransactionResponse, error) { + out := new(GetTransactionResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/GetTransaction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) SelectUtxos(ctx context.Context, in *SelectUtxosRequest, opts ...grpc.CallOption) (*SelectUtxosResponse, error) { + out := new(SelectUtxosResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/SelectUtxos", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) EstimateFees(ctx context.Context, in *EstimateFeesRequest, opts ...grpc.CallOption) (*EstimateFeesResponse, error) { + out := new(EstimateFeesResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/EstimateFees", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) SignTransaction(ctx context.Context, in *SignTransactionRequest, opts ...grpc.CallOption) (*SignTransactionResponse, error) { + out := new(SignTransactionResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/SignTransaction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) BroadcastTransaction(ctx context.Context, in *BroadcastTransactionRequest, opts ...grpc.CallOption) (*BroadcastTransactionResponse, error) { + out := new(BroadcastTransactionResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/BroadcastTransaction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) CreatePset(ctx context.Context, in *CreatePsetRequest, opts ...grpc.CallOption) (*CreatePsetResponse, error) { + out := new(CreatePsetResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/CreatePset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) UpdatePset(ctx context.Context, in *UpdatePsetRequest, opts ...grpc.CallOption) (*UpdatePsetResponse, error) { + out := new(UpdatePsetResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/UpdatePset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) BlindPset(ctx context.Context, in *BlindPsetRequest, opts ...grpc.CallOption) (*BlindPsetResponse, error) { + out := new(BlindPsetResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/BlindPset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) SignPset(ctx context.Context, in *SignPsetRequest, opts ...grpc.CallOption) (*SignPsetResponse, error) { + out := new(SignPsetResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/SignPset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) Mint(ctx context.Context, in *MintRequest, opts ...grpc.CallOption) (*MintResponse, error) { + out := new(MintResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/Mint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) Remint(ctx context.Context, in *RemintRequest, opts ...grpc.CallOption) (*RemintResponse, error) { + out := new(RemintResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/Remint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) Burn(ctx context.Context, in *BurnRequest, opts ...grpc.CallOption) (*BurnResponse, error) { + out := new(BurnResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/Burn", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) Transfer(ctx context.Context, in *TransferRequest, opts ...grpc.CallOption) (*TransferResponse, error) { + out := new(TransferResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/Transfer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) PegInAddress(ctx context.Context, in *PegInAddressRequest, opts ...grpc.CallOption) (*PegInAddressResponse, error) { + out := new(PegInAddressResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/PegInAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transactionServiceClient) ClaimPegIn(ctx context.Context, in *ClaimPegInRequest, opts ...grpc.CallOption) (*ClaimPegInResponse, error) { + out := new(ClaimPegInResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.TransactionService/ClaimPegIn", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// TransactionServiceServer is the server API for TransactionService service. +// All implementations should embed UnimplementedTransactionServiceServer +// for forward compatibility +type TransactionServiceServer interface { + // GetTransaction returns the hex of a transaction given its id. + GetTransaction(context.Context, *GetTransactionRequest) (*GetTransactionResponse, error) + // SelectUtxos returns a selction of utxos, to be used in another + // transaction, for provided target amount and strategy. + // Selected utxos are locked for predefined amount of time to prevent + // double-spending them. + SelectUtxos(context.Context, *SelectUtxosRequest) (*SelectUtxosResponse, error) + // EstimateFees returns the fee amount to pay for a tx containing the given + // inputs and outputs. + EstimateFees(context.Context, *EstimateFeesRequest) (*EstimateFeesResponse, error) + // SignTransaction signs a raw transaction in hex format. + SignTransaction(context.Context, *SignTransactionRequest) (*SignTransactionResponse, error) + // BroadcastTransaction broadacats a raw transaction in hex format. + BroadcastTransaction(context.Context, *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error) + // CreatePset returns an unsigned pset for given inputs and outputs. + CreatePset(context.Context, *CreatePsetRequest) (*CreatePsetResponse, error) + // UpdatePset adds the given inputs and outputs to the partial transaction. + UpdatePset(context.Context, *UpdatePsetRequest) (*UpdatePsetResponse, error) + // BlindPset updates the given pset with required ins and outs blinded. + BlindPset(context.Context, *BlindPsetRequest) (*BlindPsetResponse, error) + // SignPset updates the given pset adding the required signatures. + SignPset(context.Context, *SignPsetRequest) (*SignPsetResponse, error) + // Mint returns a transaction that issues a new asset. + Mint(context.Context, *MintRequest) (*MintResponse, error) + // Remint returns a transaction that re-issues an existing asset. + Remint(context.Context, *RemintRequest) (*RemintResponse, error) + // Burn returns a transaction that burns some funds. + Burn(context.Context, *BurnRequest) (*BurnResponse, error) + // Transfer returns a transaction to send funds to some receiver. + Transfer(context.Context, *TransferRequest) (*TransferResponse, error) + // PegInAddress returns what's necessary to peg funds of the Bitcoin + // main-chain and have them available on the Liquid side-chain. + // Bitcoin funds must be sent to the main-chain address while the claim + // output script must be used to redeem the LBTC ones. + PegInAddress(context.Context, *PegInAddressRequest) (*PegInAddressResponse, error) + // ClaimPegIn returns a transaction to claim funds pegged on the Bitcoin + // main-chain to have them available on the Liquid side-chain. + ClaimPegIn(context.Context, *ClaimPegInRequest) (*ClaimPegInResponse, error) +} + +// UnimplementedTransactionServiceServer should be embedded to have forward compatible implementations. +type UnimplementedTransactionServiceServer struct { +} + +func (UnimplementedTransactionServiceServer) GetTransaction(context.Context, *GetTransactionRequest) (*GetTransactionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTransaction not implemented") +} +func (UnimplementedTransactionServiceServer) SelectUtxos(context.Context, *SelectUtxosRequest) (*SelectUtxosResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SelectUtxos not implemented") +} +func (UnimplementedTransactionServiceServer) EstimateFees(context.Context, *EstimateFeesRequest) (*EstimateFeesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EstimateFees not implemented") +} +func (UnimplementedTransactionServiceServer) SignTransaction(context.Context, *SignTransactionRequest) (*SignTransactionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignTransaction not implemented") +} +func (UnimplementedTransactionServiceServer) BroadcastTransaction(context.Context, *BroadcastTransactionRequest) (*BroadcastTransactionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BroadcastTransaction not implemented") +} +func (UnimplementedTransactionServiceServer) CreatePset(context.Context, *CreatePsetRequest) (*CreatePsetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePset not implemented") +} +func (UnimplementedTransactionServiceServer) UpdatePset(context.Context, *UpdatePsetRequest) (*UpdatePsetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdatePset not implemented") +} +func (UnimplementedTransactionServiceServer) BlindPset(context.Context, *BlindPsetRequest) (*BlindPsetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BlindPset not implemented") +} +func (UnimplementedTransactionServiceServer) SignPset(context.Context, *SignPsetRequest) (*SignPsetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignPset not implemented") +} +func (UnimplementedTransactionServiceServer) Mint(context.Context, *MintRequest) (*MintResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Mint not implemented") +} +func (UnimplementedTransactionServiceServer) Remint(context.Context, *RemintRequest) (*RemintResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Remint not implemented") +} +func (UnimplementedTransactionServiceServer) Burn(context.Context, *BurnRequest) (*BurnResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Burn not implemented") +} +func (UnimplementedTransactionServiceServer) Transfer(context.Context, *TransferRequest) (*TransferResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Transfer not implemented") +} +func (UnimplementedTransactionServiceServer) PegInAddress(context.Context, *PegInAddressRequest) (*PegInAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PegInAddress not implemented") +} +func (UnimplementedTransactionServiceServer) ClaimPegIn(context.Context, *ClaimPegInRequest) (*ClaimPegInResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ClaimPegIn not implemented") +} + +// UnsafeTransactionServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to TransactionServiceServer will +// result in compilation errors. +type UnsafeTransactionServiceServer interface { + mustEmbedUnimplementedTransactionServiceServer() +} + +func RegisterTransactionServiceServer(s grpc.ServiceRegistrar, srv TransactionServiceServer) { + s.RegisterService(&TransactionService_ServiceDesc, srv) +} + +func _TransactionService_GetTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTransactionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).GetTransaction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/GetTransaction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).GetTransaction(ctx, req.(*GetTransactionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_SelectUtxos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SelectUtxosRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).SelectUtxos(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/SelectUtxos", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).SelectUtxos(ctx, req.(*SelectUtxosRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_EstimateFees_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EstimateFeesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).EstimateFees(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/EstimateFees", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).EstimateFees(ctx, req.(*EstimateFeesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_SignTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SignTransactionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).SignTransaction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/SignTransaction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).SignTransaction(ctx, req.(*SignTransactionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_BroadcastTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BroadcastTransactionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).BroadcastTransaction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/BroadcastTransaction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).BroadcastTransaction(ctx, req.(*BroadcastTransactionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_CreatePset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreatePsetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).CreatePset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/CreatePset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).CreatePset(ctx, req.(*CreatePsetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_UpdatePset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdatePsetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).UpdatePset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/UpdatePset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).UpdatePset(ctx, req.(*UpdatePsetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_BlindPset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BlindPsetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).BlindPset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/BlindPset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).BlindPset(ctx, req.(*BlindPsetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_SignPset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SignPsetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).SignPset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/SignPset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).SignPset(ctx, req.(*SignPsetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_Mint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MintRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).Mint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/Mint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).Mint(ctx, req.(*MintRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_Remint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemintRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).Remint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/Remint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).Remint(ctx, req.(*RemintRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_Burn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BurnRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).Burn(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/Burn", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).Burn(ctx, req.(*BurnRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_Transfer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransferRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).Transfer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/Transfer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).Transfer(ctx, req.(*TransferRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_PegInAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PegInAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).PegInAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/PegInAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).PegInAddress(ctx, req.(*PegInAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransactionService_ClaimPegIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ClaimPegInRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransactionServiceServer).ClaimPegIn(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.TransactionService/ClaimPegIn", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransactionServiceServer).ClaimPegIn(ctx, req.(*ClaimPegInRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// TransactionService_ServiceDesc is the grpc.ServiceDesc for TransactionService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var TransactionService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "ocean.v1.TransactionService", + HandlerType: (*TransactionServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetTransaction", + Handler: _TransactionService_GetTransaction_Handler, + }, + { + MethodName: "SelectUtxos", + Handler: _TransactionService_SelectUtxos_Handler, + }, + { + MethodName: "EstimateFees", + Handler: _TransactionService_EstimateFees_Handler, + }, + { + MethodName: "SignTransaction", + Handler: _TransactionService_SignTransaction_Handler, + }, + { + MethodName: "BroadcastTransaction", + Handler: _TransactionService_BroadcastTransaction_Handler, + }, + { + MethodName: "CreatePset", + Handler: _TransactionService_CreatePset_Handler, + }, + { + MethodName: "UpdatePset", + Handler: _TransactionService_UpdatePset_Handler, + }, + { + MethodName: "BlindPset", + Handler: _TransactionService_BlindPset_Handler, + }, + { + MethodName: "SignPset", + Handler: _TransactionService_SignPset_Handler, + }, + { + MethodName: "Mint", + Handler: _TransactionService_Mint_Handler, + }, + { + MethodName: "Remint", + Handler: _TransactionService_Remint_Handler, + }, + { + MethodName: "Burn", + Handler: _TransactionService_Burn_Handler, + }, + { + MethodName: "Transfer", + Handler: _TransactionService_Transfer_Handler, + }, + { + MethodName: "PegInAddress", + Handler: _TransactionService_PegInAddress_Handler, + }, + { + MethodName: "ClaimPegIn", + Handler: _TransactionService_ClaimPegIn_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "ocean/v1/transaction.proto", +} diff --git a/api-spec/protobuf/gen/ocean/v1/types.pb.go b/api-spec/protobuf/gen/ocean/v1/types.pb.go new file mode 100644 index 0000000..c7426ce --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/types.pb.go @@ -0,0 +1,1457 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc (unknown) +// source: ocean/v1/types.proto + +package oceanv1 + +import ( + 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) +) + +type TxEventType int32 + +const ( + TxEventType_TX_EVENT_TYPE_UNSPECIFIED TxEventType = 0 + // Tx broadcasted. + TxEventType_TX_EVENT_TYPE_BROADCASTED TxEventType = 1 + // Tx unconfirmed. + TxEventType_TX_EVENT_TYPE_UNCONFIRMED TxEventType = 2 + // Tx confirmed. + TxEventType_TX_EVENT_TYPE_CONFIRMED TxEventType = 3 +) + +// Enum value maps for TxEventType. +var ( + TxEventType_name = map[int32]string{ + 0: "TX_EVENT_TYPE_UNSPECIFIED", + 1: "TX_EVENT_TYPE_BROADCASTED", + 2: "TX_EVENT_TYPE_UNCONFIRMED", + 3: "TX_EVENT_TYPE_CONFIRMED", + } + TxEventType_value = map[string]int32{ + "TX_EVENT_TYPE_UNSPECIFIED": 0, + "TX_EVENT_TYPE_BROADCASTED": 1, + "TX_EVENT_TYPE_UNCONFIRMED": 2, + "TX_EVENT_TYPE_CONFIRMED": 3, + } +) + +func (x TxEventType) Enum() *TxEventType { + p := new(TxEventType) + *p = x + return p +} + +func (x TxEventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TxEventType) Descriptor() protoreflect.EnumDescriptor { + return file_ocean_v1_types_proto_enumTypes[0].Descriptor() +} + +func (TxEventType) Type() protoreflect.EnumType { + return &file_ocean_v1_types_proto_enumTypes[0] +} + +func (x TxEventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TxEventType.Descriptor instead. +func (TxEventType) EnumDescriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{0} +} + +type UtxoEventType int32 + +const ( + UtxoEventType_UTXO_EVENT_TYPE_UNSPECIFIED UtxoEventType = 0 + UtxoEventType_UTXO_EVENT_TYPE_NEW UtxoEventType = 1 + UtxoEventType_UTXO_EVENT_TYPE_CONFIRMED UtxoEventType = 2 + UtxoEventType_UTXO_EVENT_TYPE_LOCKED UtxoEventType = 3 + UtxoEventType_UTXO_EVENT_TYPE_UNLOCKED UtxoEventType = 4 + UtxoEventType_UTXO_EVENT_TYPE_SPENT UtxoEventType = 5 +) + +// Enum value maps for UtxoEventType. +var ( + UtxoEventType_name = map[int32]string{ + 0: "UTXO_EVENT_TYPE_UNSPECIFIED", + 1: "UTXO_EVENT_TYPE_NEW", + 2: "UTXO_EVENT_TYPE_CONFIRMED", + 3: "UTXO_EVENT_TYPE_LOCKED", + 4: "UTXO_EVENT_TYPE_UNLOCKED", + 5: "UTXO_EVENT_TYPE_SPENT", + } + UtxoEventType_value = map[string]int32{ + "UTXO_EVENT_TYPE_UNSPECIFIED": 0, + "UTXO_EVENT_TYPE_NEW": 1, + "UTXO_EVENT_TYPE_CONFIRMED": 2, + "UTXO_EVENT_TYPE_LOCKED": 3, + "UTXO_EVENT_TYPE_UNLOCKED": 4, + "UTXO_EVENT_TYPE_SPENT": 5, + } +) + +func (x UtxoEventType) Enum() *UtxoEventType { + p := new(UtxoEventType) + *p = x + return p +} + +func (x UtxoEventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UtxoEventType) Descriptor() protoreflect.EnumDescriptor { + return file_ocean_v1_types_proto_enumTypes[1].Descriptor() +} + +func (UtxoEventType) Type() protoreflect.EnumType { + return &file_ocean_v1_types_proto_enumTypes[1] +} + +func (x UtxoEventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UtxoEventType.Descriptor instead. +func (UtxoEventType) EnumDescriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{1} +} + +type WebhookEventType int32 + +const ( + WebhookEventType_WEBHOOK_EVENT_TYPE_UNSPECIFIED WebhookEventType = 0 + // Receive notification about transactions. + WebhookEventType_WEBHOOK_EVENT_TYPE_TRANSACTION WebhookEventType = 1 + // Receive notifications about utxos. + WebhookEventType_WEBHOOK_EVENT_TYPE_UTXO WebhookEventType = 2 +) + +// Enum value maps for WebhookEventType. +var ( + WebhookEventType_name = map[int32]string{ + 0: "WEBHOOK_EVENT_TYPE_UNSPECIFIED", + 1: "WEBHOOK_EVENT_TYPE_TRANSACTION", + 2: "WEBHOOK_EVENT_TYPE_UTXO", + } + WebhookEventType_value = map[string]int32{ + "WEBHOOK_EVENT_TYPE_UNSPECIFIED": 0, + "WEBHOOK_EVENT_TYPE_TRANSACTION": 1, + "WEBHOOK_EVENT_TYPE_UTXO": 2, + } +) + +func (x WebhookEventType) Enum() *WebhookEventType { + p := new(WebhookEventType) + *p = x + return p +} + +func (x WebhookEventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebhookEventType) Descriptor() protoreflect.EnumDescriptor { + return file_ocean_v1_types_proto_enumTypes[2].Descriptor() +} + +func (WebhookEventType) Type() protoreflect.EnumType { + return &file_ocean_v1_types_proto_enumTypes[2] +} + +func (x WebhookEventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WebhookEventType.Descriptor instead. +func (WebhookEventType) EnumDescriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{2} +} + +type Template_Format int32 + +const ( + Template_FORMAT_UNSPECIFIED Template_Format = 0 + Template_FORMAT_DESCRIPTOR Template_Format = 1 + Template_FORMAT_MINISCRIPT Template_Format = 2 + Template_FORMAT_IONIO Template_Format = 3 + Template_FORMAT_RAW Template_Format = 4 +) + +// Enum value maps for Template_Format. +var ( + Template_Format_name = map[int32]string{ + 0: "FORMAT_UNSPECIFIED", + 1: "FORMAT_DESCRIPTOR", + 2: "FORMAT_MINISCRIPT", + 3: "FORMAT_IONIO", + 4: "FORMAT_RAW", + } + Template_Format_value = map[string]int32{ + "FORMAT_UNSPECIFIED": 0, + "FORMAT_DESCRIPTOR": 1, + "FORMAT_MINISCRIPT": 2, + "FORMAT_IONIO": 3, + "FORMAT_RAW": 4, + } +) + +func (x Template_Format) Enum() *Template_Format { + p := new(Template_Format) + *p = x + return p +} + +func (x Template_Format) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Template_Format) Descriptor() protoreflect.EnumDescriptor { + return file_ocean_v1_types_proto_enumTypes[3].Descriptor() +} + +func (Template_Format) Type() protoreflect.EnumType { + return &file_ocean_v1_types_proto_enumTypes[3] +} + +func (x Template_Format) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Template_Format.Descriptor instead. +func (Template_Format) EnumDescriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{10, 0} +} + +type BuildInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Number of the version. + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Hash of the commit. + Commit string `protobuf:"bytes,2,opt,name=commit,proto3" json:"commit,omitempty"` + // Date of the commit. + Date string `protobuf:"bytes,3,opt,name=date,proto3" json:"date,omitempty"` +} + +func (x *BuildInfo) Reset() { + *x = BuildInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuildInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuildInfo) ProtoMessage() {} + +func (x *BuildInfo) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 BuildInfo.ProtoReflect.Descriptor instead. +func (*BuildInfo) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{0} +} + +func (x *BuildInfo) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *BuildInfo) GetCommit() string { + if x != nil { + return x.Commit + } + return "" +} + +func (x *BuildInfo) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +type AccountInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace. + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + // Account label. + Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` + // Derivation path. + DerivationPath string `protobuf:"bytes,3,opt,name=derivation_path,json=derivationPath,proto3" json:"derivation_path,omitempty"` + // Xpubs. + Xpubs []string `protobuf:"bytes,4,rep,name=xpubs,proto3" json:"xpubs,omitempty"` + // The master blinding key of the account to derive blinding keypairs from. + MasterBlindingKey string `protobuf:"bytes,5,opt,name=master_blinding_key,json=masterBlindingKey,proto3" json:"master_blinding_key,omitempty"` +} + +func (x *AccountInfo) Reset() { + *x = AccountInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountInfo) ProtoMessage() {} + +func (x *AccountInfo) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 AccountInfo.ProtoReflect.Descriptor instead. +func (*AccountInfo) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{1} +} + +func (x *AccountInfo) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *AccountInfo) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *AccountInfo) GetDerivationPath() string { + if x != nil { + return x.DerivationPath + } + return "" +} + +func (x *AccountInfo) GetXpubs() []string { + if x != nil { + return x.Xpubs + } + return nil +} + +func (x *AccountInfo) GetMasterBlindingKey() string { + if x != nil { + return x.MasterBlindingKey + } + return "" +} + +type BalanceInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Balance of utxos with 1+ confirmations. + ConfirmedBalance uint64 `protobuf:"varint,1,opt,name=confirmed_balance,json=confirmedBalance,proto3" json:"confirmed_balance,omitempty"` + // Balance of utxos with no confirmations. + UnconfirmedBalance uint64 `protobuf:"varint,2,opt,name=unconfirmed_balance,json=unconfirmedBalance,proto3" json:"unconfirmed_balance,omitempty"` + // Balance of locked utxos. + LockedBalance uint64 `protobuf:"varint,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` + // Total balance. + TotalBalance uint64 `protobuf:"varint,4,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` +} + +func (x *BalanceInfo) Reset() { + *x = BalanceInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BalanceInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BalanceInfo) ProtoMessage() {} + +func (x *BalanceInfo) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 BalanceInfo.ProtoReflect.Descriptor instead. +func (*BalanceInfo) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{2} +} + +func (x *BalanceInfo) GetConfirmedBalance() uint64 { + if x != nil { + return x.ConfirmedBalance + } + return 0 +} + +func (x *BalanceInfo) GetUnconfirmedBalance() uint64 { + if x != nil { + return x.UnconfirmedBalance + } + return 0 +} + +func (x *BalanceInfo) GetLockedBalance() uint64 { + if x != nil { + return x.LockedBalance + } + return 0 +} + +func (x *BalanceInfo) GetTotalBalance() uint64 { + if x != nil { + return x.TotalBalance + } + return 0 +} + +type Input struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Previous output txid. + Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + // Previous tx output index. + Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` + // Prevout script. + Script string `protobuf:"bytes,3,opt,name=script,proto3" json:"script,omitempty"` + // Input scriptsig size. + ScriptsigSize uint64 `protobuf:"varint,4,opt,name=scriptsig_size,json=scriptsigSize,proto3" json:"scriptsig_size,omitempty"` + // Input witness size. + WitnessSize uint64 `protobuf:"varint,5,opt,name=witness_size,json=witnessSize,proto3" json:"witness_size,omitempty"` +} + +func (x *Input) Reset() { + *x = Input{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Input) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Input) ProtoMessage() {} + +func (x *Input) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 Input.ProtoReflect.Descriptor instead. +func (*Input) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{3} +} + +func (x *Input) GetTxid() string { + if x != nil { + return x.Txid + } + return "" +} + +func (x *Input) GetIndex() uint32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *Input) GetScript() string { + if x != nil { + return x.Script + } + return "" +} + +func (x *Input) GetScriptsigSize() uint64 { + if x != nil { + return x.ScriptsigSize + } + return 0 +} + +func (x *Input) GetWitnessSize() uint64 { + if x != nil { + return x.WitnessSize + } + return 0 +} + +type UnblindedInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Index of the pset input. + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + // Revealed prevout asset. + Asset string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` + // Revealed prevout amount. + Amount uint64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"` + // Prevout asset blinder. + AssetBlinder string `protobuf:"bytes,4,opt,name=asset_blinder,json=assetBlinder,proto3" json:"asset_blinder,omitempty"` + // Prevout amount blinder. + AmountBlinder string `protobuf:"bytes,5,opt,name=amount_blinder,json=amountBlinder,proto3" json:"amount_blinder,omitempty"` +} + +func (x *UnblindedInput) Reset() { + *x = UnblindedInput{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnblindedInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnblindedInput) ProtoMessage() {} + +func (x *UnblindedInput) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 UnblindedInput.ProtoReflect.Descriptor instead. +func (*UnblindedInput) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{4} +} + +func (x *UnblindedInput) GetIndex() uint32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *UnblindedInput) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +func (x *UnblindedInput) GetAmount() uint64 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *UnblindedInput) GetAssetBlinder() string { + if x != nil { + return x.AssetBlinder + } + return "" +} + +func (x *UnblindedInput) GetAmountBlinder() string { + if x != nil { + return x.AmountBlinder + } + return "" +} + +type Output struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Asset hash. + Asset string `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` + // Sent amount. + Amount uint64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"` + // Address to send funds to. + Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + // ScriptPubkey to send funds to (alternative to address). + Script string `protobuf:"bytes,4,opt,name=script,proto3" json:"script,omitempty"` + // Blinding public key to make output confidential (alternative to address). + BlindingPubkey string `protobuf:"bytes,5,opt,name=blinding_pubkey,json=blindingPubkey,proto3" json:"blinding_pubkey,omitempty"` +} + +func (x *Output) Reset() { + *x = Output{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Output) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Output) ProtoMessage() {} + +func (x *Output) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 Output.ProtoReflect.Descriptor instead. +func (*Output) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{5} +} + +func (x *Output) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +func (x *Output) GetAmount() uint64 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *Output) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *Output) GetScript() string { + if x != nil { + return x.Script + } + return "" +} + +func (x *Output) GetBlindingPubkey() string { + if x != nil { + return x.BlindingPubkey + } + return "" +} + +type Utxos struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account namespace. + AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // List of utxos. + Utxos []*Utxo `protobuf:"bytes,2,rep,name=utxos,proto3" json:"utxos,omitempty"` +} + +func (x *Utxos) Reset() { + *x = Utxos{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Utxos) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Utxos) ProtoMessage() {} + +func (x *Utxos) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 Utxos.ProtoReflect.Descriptor instead. +func (*Utxos) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{6} +} + +func (x *Utxos) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *Utxos) GetUtxos() []*Utxo { + if x != nil { + return x.Utxos + } + return nil +} + +type UtxoStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + BlockInfo *BlockDetails `protobuf:"bytes,2,opt,name=block_info,json=blockInfo,proto3" json:"block_info,omitempty"` + Txhex string `protobuf:"bytes,3,opt,name=txhex,proto3" json:"txhex,omitempty"` +} + +func (x *UtxoStatus) Reset() { + *x = UtxoStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UtxoStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UtxoStatus) ProtoMessage() {} + +func (x *UtxoStatus) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 UtxoStatus.ProtoReflect.Descriptor instead. +func (*UtxoStatus) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{7} +} + +func (x *UtxoStatus) GetTxid() string { + if x != nil { + return x.Txid + } + return "" +} + +func (x *UtxoStatus) GetBlockInfo() *BlockDetails { + if x != nil { + return x.BlockInfo + } + return nil +} + +func (x *UtxoStatus) GetTxhex() string { + if x != nil { + return x.Txhex + } + return "" +} + +type Utxo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Txid of the uxo. + Txid string `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + // Output index. + Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` + // Asset. + Asset string `protobuf:"bytes,3,opt,name=asset,proto3" json:"asset,omitempty"` + // Value. + Value uint64 `protobuf:"varint,4,opt,name=value,proto3" json:"value,omitempty"` + // Script. + Script string `protobuf:"bytes,5,opt,name=script,proto3" json:"script,omitempty"` + // Asset blinder for confidential utxo. + AssetBlinder string `protobuf:"bytes,6,opt,name=asset_blinder,json=assetBlinder,proto3" json:"asset_blinder,omitempty"` + // Value blinder for confidential utxo. + ValueBlinder string `protobuf:"bytes,7,opt,name=value_blinder,json=valueBlinder,proto3" json:"value_blinder,omitempty"` + // Namespace of the account owning the utxo. + AccountName string `protobuf:"bytes,8,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // Info about utxo's spent status. + SpentStatus *UtxoStatus `protobuf:"bytes,9,opt,name=spent_status,json=spentStatus,proto3" json:"spent_status,omitempty"` + // Info about utxo's confirmation status. + ConfirmedStatus *UtxoStatus `protobuf:"bytes,10,opt,name=confirmed_status,json=confirmedStatus,proto3" json:"confirmed_status,omitempty"` + // Redeem script locking the utxo in case its owned by a multisig account. + RedeemScript string `protobuf:"bytes,11,opt,name=redeem_script,json=redeemScript,proto3" json:"redeem_script,omitempty"` +} + +func (x *Utxo) Reset() { + *x = Utxo{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Utxo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Utxo) ProtoMessage() {} + +func (x *Utxo) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 Utxo.ProtoReflect.Descriptor instead. +func (*Utxo) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{8} +} + +func (x *Utxo) GetTxid() string { + if x != nil { + return x.Txid + } + return "" +} + +func (x *Utxo) GetIndex() uint32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *Utxo) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +func (x *Utxo) GetValue() uint64 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *Utxo) GetScript() string { + if x != nil { + return x.Script + } + return "" +} + +func (x *Utxo) GetAssetBlinder() string { + if x != nil { + return x.AssetBlinder + } + return "" +} + +func (x *Utxo) GetValueBlinder() string { + if x != nil { + return x.ValueBlinder + } + return "" +} + +func (x *Utxo) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" +} + +func (x *Utxo) GetSpentStatus() *UtxoStatus { + if x != nil { + return x.SpentStatus + } + return nil +} + +func (x *Utxo) GetConfirmedStatus() *UtxoStatus { + if x != nil { + return x.ConfirmedStatus + } + return nil +} + +func (x *Utxo) GetRedeemScript() string { + if x != nil { + return x.RedeemScript + } + return "" +} + +type BlockDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the block. + Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + // Heighth (index) of the block. + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + // Timestamp of the block. + Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *BlockDetails) Reset() { + *x = BlockDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockDetails) ProtoMessage() {} + +func (x *BlockDetails) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_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 BlockDetails.ProtoReflect.Descriptor instead. +func (*BlockDetails) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{9} +} + +func (x *BlockDetails) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +func (x *BlockDetails) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *BlockDetails) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type Template struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Format Template_Format `protobuf:"varint,1,opt,name=format,proto3,enum=ocean.v1.Template_Format" json:"format,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Template) Reset() { + *x = Template{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_types_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Template) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Template) ProtoMessage() {} + +func (x *Template) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_types_proto_msgTypes[10] + 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 Template.ProtoReflect.Descriptor instead. +func (*Template) Descriptor() ([]byte, []int) { + return file_ocean_v1_types_proto_rawDescGZIP(), []int{10} +} + +func (x *Template) GetFormat() Template_Format { + if x != nil { + return x.Format + } + return Template_FORMAT_UNSPECIFIED +} + +func (x *Template) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +var File_ocean_v1_types_proto protoreflect.FileDescriptor + +var file_ocean_v1_types_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x22, 0x51, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x78, 0x70, 0x75, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x05, 0x78, 0x70, 0x75, 0x62, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x42, 0x6c, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x22, 0xb7, 0x01, 0x0a, 0x0b, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x12, 0x75, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0x93, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x69, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x73, 0x69, 0x67, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0e, 0x55, 0x6e, 0x62, 0x6c, 0x69, + 0x6e, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x6c, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x06, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, + 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, 0x50, 0x0a, + 0x05, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x75, 0x74, 0x78, + 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x52, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x22, + 0x6d, 0x0a, 0x0a, 0x55, 0x74, 0x78, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, + 0x64, 0x12, 0x35, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x09, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x78, 0x68, 0x65, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x78, 0x68, 0x65, 0x78, 0x22, 0x80, + 0x03, 0x0a, 0x04, 0x55, 0x74, 0x78, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x62, + 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, + 0x73, 0x70, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x53, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x22, 0x58, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xc5, 0x01, 0x0a, 0x08, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x70, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x46, + 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x44, 0x45, + 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x4f, + 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, + 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x4f, 0x4e, 0x49, + 0x4f, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x52, 0x41, + 0x57, 0x10, 0x04, 0x2a, 0x87, 0x01, 0x0a, 0x0b, 0x54, 0x78, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x02, + 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x58, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xbd, 0x01, + 0x0a, 0x0d, 0x55, 0x74, 0x78, 0x6f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x1b, 0x55, 0x54, 0x58, 0x4f, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x13, 0x55, 0x54, 0x58, 0x4f, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x54, 0x58, + 0x4f, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x54, 0x58, 0x4f, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x54, 0x58, 0x4f, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x54, 0x58, 0x4f, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x2a, 0x77, 0x0a, + 0x10, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x57, 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, + 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x57, 0x45, 0x42, + 0x48, 0x4f, 0x4f, 0x4b, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x54, 0x58, 0x4f, 0x10, 0x02, 0x42, 0x9e, 0x01, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, + 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x72, 0x6b, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x72, + 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, + 0x3b, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x58, 0x58, 0xaa, 0x02, + 0x08, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x08, 0x4f, 0x63, 0x65, 0x61, + 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x14, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x09, 0x4f, 0x63, + 0x65, 0x61, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_ocean_v1_types_proto_rawDescOnce sync.Once + file_ocean_v1_types_proto_rawDescData = file_ocean_v1_types_proto_rawDesc +) + +func file_ocean_v1_types_proto_rawDescGZIP() []byte { + file_ocean_v1_types_proto_rawDescOnce.Do(func() { + file_ocean_v1_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_ocean_v1_types_proto_rawDescData) + }) + return file_ocean_v1_types_proto_rawDescData +} + +var file_ocean_v1_types_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_ocean_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_ocean_v1_types_proto_goTypes = []interface{}{ + (TxEventType)(0), // 0: ocean.v1.TxEventType + (UtxoEventType)(0), // 1: ocean.v1.UtxoEventType + (WebhookEventType)(0), // 2: ocean.v1.WebhookEventType + (Template_Format)(0), // 3: ocean.v1.Template.Format + (*BuildInfo)(nil), // 4: ocean.v1.BuildInfo + (*AccountInfo)(nil), // 5: ocean.v1.AccountInfo + (*BalanceInfo)(nil), // 6: ocean.v1.BalanceInfo + (*Input)(nil), // 7: ocean.v1.Input + (*UnblindedInput)(nil), // 8: ocean.v1.UnblindedInput + (*Output)(nil), // 9: ocean.v1.Output + (*Utxos)(nil), // 10: ocean.v1.Utxos + (*UtxoStatus)(nil), // 11: ocean.v1.UtxoStatus + (*Utxo)(nil), // 12: ocean.v1.Utxo + (*BlockDetails)(nil), // 13: ocean.v1.BlockDetails + (*Template)(nil), // 14: ocean.v1.Template +} +var file_ocean_v1_types_proto_depIdxs = []int32{ + 12, // 0: ocean.v1.Utxos.utxos:type_name -> ocean.v1.Utxo + 13, // 1: ocean.v1.UtxoStatus.block_info:type_name -> ocean.v1.BlockDetails + 11, // 2: ocean.v1.Utxo.spent_status:type_name -> ocean.v1.UtxoStatus + 11, // 3: ocean.v1.Utxo.confirmed_status:type_name -> ocean.v1.UtxoStatus + 3, // 4: ocean.v1.Template.format:type_name -> ocean.v1.Template.Format + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_ocean_v1_types_proto_init() } +func file_ocean_v1_types_proto_init() { + if File_ocean_v1_types_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_ocean_v1_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuildInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BalanceInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Input); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnblindedInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Output); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Utxos); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UtxoStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Utxo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Template); 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_ocean_v1_types_proto_rawDesc, + NumEnums: 4, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_ocean_v1_types_proto_goTypes, + DependencyIndexes: file_ocean_v1_types_proto_depIdxs, + EnumInfos: file_ocean_v1_types_proto_enumTypes, + MessageInfos: file_ocean_v1_types_proto_msgTypes, + }.Build() + File_ocean_v1_types_proto = out.File + file_ocean_v1_types_proto_rawDesc = nil + file_ocean_v1_types_proto_goTypes = nil + file_ocean_v1_types_proto_depIdxs = nil +} diff --git a/api-spec/protobuf/gen/ocean/v1/wallet.pb.go b/api-spec/protobuf/gen/ocean/v1/wallet.pb.go new file mode 100644 index 0000000..ef7b5c6 --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/wallet.pb.go @@ -0,0 +1,1466 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc (unknown) +// source: ocean/v1/wallet.proto + +package oceanv1 + +import ( + 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) +) + +type GetInfoResponse_Network int32 + +const ( + GetInfoResponse_NETWORK_UNSPECIFIED GetInfoResponse_Network = 0 + GetInfoResponse_NETWORK_MAINNET GetInfoResponse_Network = 1 + GetInfoResponse_NETWORK_TESTNET GetInfoResponse_Network = 2 + GetInfoResponse_NETWORK_REGTEST GetInfoResponse_Network = 3 +) + +// Enum value maps for GetInfoResponse_Network. +var ( + GetInfoResponse_Network_name = map[int32]string{ + 0: "NETWORK_UNSPECIFIED", + 1: "NETWORK_MAINNET", + 2: "NETWORK_TESTNET", + 3: "NETWORK_REGTEST", + } + GetInfoResponse_Network_value = map[string]int32{ + "NETWORK_UNSPECIFIED": 0, + "NETWORK_MAINNET": 1, + "NETWORK_TESTNET": 2, + "NETWORK_REGTEST": 3, + } +) + +func (x GetInfoResponse_Network) Enum() *GetInfoResponse_Network { + p := new(GetInfoResponse_Network) + *p = x + return p +} + +func (x GetInfoResponse_Network) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetInfoResponse_Network) Descriptor() protoreflect.EnumDescriptor { + return file_ocean_v1_wallet_proto_enumTypes[0].Descriptor() +} + +func (GetInfoResponse_Network) Type() protoreflect.EnumType { + return &file_ocean_v1_wallet_proto_enumTypes[0] +} + +func (x GetInfoResponse_Network) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetInfoResponse_Network.Descriptor instead. +func (GetInfoResponse_Network) EnumDescriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{15, 0} +} + +type GenSeedRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GenSeedRequest) Reset() { + *x = GenSeedRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenSeedRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenSeedRequest) ProtoMessage() {} + +func (x *GenSeedRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 GenSeedRequest.ProtoReflect.Descriptor instead. +func (*GenSeedRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{0} +} + +type GenSeedResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A mnemonic from where deriving signing and blinding key pairs. + Mnemonic string `protobuf:"bytes,1,opt,name=mnemonic,proto3" json:"mnemonic,omitempty"` +} + +func (x *GenSeedResponse) Reset() { + *x = GenSeedResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenSeedResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenSeedResponse) ProtoMessage() {} + +func (x *GenSeedResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 GenSeedResponse.ProtoReflect.Descriptor instead. +func (*GenSeedResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{1} +} + +func (x *GenSeedResponse) GetMnemonic() string { + if x != nil { + return x.Mnemonic + } + return "" +} + +type CreateWalletRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The mnemonic from where deriving signing and blinding key pairs. + Mnemonic string `protobuf:"bytes,1,opt,name=mnemonic,proto3" json:"mnemonic,omitempty"` + // The password to decrypt HD wallet. After creation, the wallet is locked + // and the same password is required to unlock it. + Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *CreateWalletRequest) Reset() { + *x = CreateWalletRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWalletRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWalletRequest) ProtoMessage() {} + +func (x *CreateWalletRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 CreateWalletRequest.ProtoReflect.Descriptor instead. +func (*CreateWalletRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{2} +} + +func (x *CreateWalletRequest) GetMnemonic() string { + if x != nil { + return x.Mnemonic + } + return "" +} + +func (x *CreateWalletRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type CreateWalletResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateWalletResponse) Reset() { + *x = CreateWalletResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateWalletResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateWalletResponse) ProtoMessage() {} + +func (x *CreateWalletResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 CreateWalletResponse.ProtoReflect.Descriptor instead. +func (*CreateWalletResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{3} +} + +type UnlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The password to unlock the wallet. + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *UnlockRequest) Reset() { + *x = UnlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnlockRequest) ProtoMessage() {} + +func (x *UnlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 UnlockRequest.ProtoReflect.Descriptor instead. +func (*UnlockRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{4} +} + +func (x *UnlockRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type UnlockResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UnlockResponse) Reset() { + *x = UnlockResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnlockResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnlockResponse) ProtoMessage() {} + +func (x *UnlockResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 UnlockResponse.ProtoReflect.Descriptor instead. +func (*UnlockResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{5} +} + +type LockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The password to lock the wallet. + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *LockRequest) Reset() { + *x = LockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LockRequest) ProtoMessage() {} + +func (x *LockRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 LockRequest.ProtoReflect.Descriptor instead. +func (*LockRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{6} +} + +func (x *LockRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type LockResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *LockResponse) Reset() { + *x = LockResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LockResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LockResponse) ProtoMessage() {} + +func (x *LockResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 LockResponse.ProtoReflect.Descriptor instead. +func (*LockResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{7} +} + +type ChangePasswordRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The current password used to encrypt the walley. + CurrentPassword string `protobuf:"bytes,1,opt,name=current_password,json=currentPassword,proto3" json:"current_password,omitempty"` + // The new password replacing the current one. + NewPassword string `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"` +} + +func (x *ChangePasswordRequest) Reset() { + *x = ChangePasswordRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangePasswordRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangePasswordRequest) ProtoMessage() {} + +func (x *ChangePasswordRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 ChangePasswordRequest.ProtoReflect.Descriptor instead. +func (*ChangePasswordRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{8} +} + +func (x *ChangePasswordRequest) GetCurrentPassword() string { + if x != nil { + return x.CurrentPassword + } + return "" +} + +func (x *ChangePasswordRequest) GetNewPassword() string { + if x != nil { + return x.NewPassword + } + return "" +} + +type ChangePasswordResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChangePasswordResponse) Reset() { + *x = ChangePasswordResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangePasswordResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangePasswordResponse) ProtoMessage() {} + +func (x *ChangePasswordResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_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 ChangePasswordResponse.ProtoReflect.Descriptor instead. +func (*ChangePasswordResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{9} +} + +type RestoreWalletRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The mnemonic from where deriving signing and blinding key pairs. + Mnemonic string `protobuf:"bytes,1,opt,name=mnemonic,proto3" json:"mnemonic,omitempty"` + // The password to decrypt HD wallet. After restoration, the wallet is locked + // and the same password is required to unlock it. + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` + // The height of the block at original wallet creation time. This will be the + // starting block for the wallet rescan. + // If not given, will rescan from genesis block. + BirthdayBlockHeight uint32 `protobuf:"varint,3,opt,name=birthday_block_height,json=birthdayBlockHeight,proto3" json:"birthday_block_height,omitempty"` + // The root path of the wallet in the form `m/purpose'/network'`. + // If not defined, a default one must be used. + RootPath string `protobuf:"bytes,4,opt,name=root_path,json=rootPath,proto3" json:"root_path,omitempty"` + // The number of consecutive empty accounts to find in order to stop + // their restoration. + EmptyAccountThreshold uint32 `protobuf:"varint,5,opt,name=empty_account_threshold,json=emptyAccountThreshold,proto3" json:"empty_account_threshold,omitempty"` + // The number of consecutive unused addresses to find in order to stop + // their restoration. + UnusedAddressThreshold uint32 `protobuf:"varint,6,opt,name=unused_address_threshold,json=unusedAddressThreshold,proto3" json:"unused_address_threshold,omitempty"` +} + +func (x *RestoreWalletRequest) Reset() { + *x = RestoreWalletRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestoreWalletRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestoreWalletRequest) ProtoMessage() {} + +func (x *RestoreWalletRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[10] + 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 RestoreWalletRequest.ProtoReflect.Descriptor instead. +func (*RestoreWalletRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{10} +} + +func (x *RestoreWalletRequest) GetMnemonic() string { + if x != nil { + return x.Mnemonic + } + return "" +} + +func (x *RestoreWalletRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *RestoreWalletRequest) GetBirthdayBlockHeight() uint32 { + if x != nil { + return x.BirthdayBlockHeight + } + return 0 +} + +func (x *RestoreWalletRequest) GetRootPath() string { + if x != nil { + return x.RootPath + } + return "" +} + +func (x *RestoreWalletRequest) GetEmptyAccountThreshold() uint32 { + if x != nil { + return x.EmptyAccountThreshold + } + return 0 +} + +func (x *RestoreWalletRequest) GetUnusedAddressThreshold() uint32 { + if x != nil { + return x.UnusedAddressThreshold + } + return 0 +} + +type RestoreWalletResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // String message returned within the process. + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *RestoreWalletResponse) Reset() { + *x = RestoreWalletResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestoreWalletResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestoreWalletResponse) ProtoMessage() {} + +func (x *RestoreWalletResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[11] + 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 RestoreWalletResponse.ProtoReflect.Descriptor instead. +func (*RestoreWalletResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{11} +} + +func (x *RestoreWalletResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type StatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StatusRequest) Reset() { + *x = StatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusRequest) ProtoMessage() {} + +func (x *StatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[12] + 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 StatusRequest.ProtoReflect.Descriptor instead. +func (*StatusRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{12} +} + +type StatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Whether the wallet is initialized with seeds. + Initialized bool `protobuf:"varint,1,opt,name=initialized,proto3" json:"initialized,omitempty"` + // Whether the wallet is in sync, meaning it's keeping track of every utxo + // of every account. + Synced bool `protobuf:"varint,2,opt,name=synced,proto3" json:"synced,omitempty"` + // Whether the wallet is unlocked. + Unlocked bool `protobuf:"varint,3,opt,name=unlocked,proto3" json:"unlocked,omitempty"` +} + +func (x *StatusResponse) Reset() { + *x = StatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusResponse) ProtoMessage() {} + +func (x *StatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[13] + 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 StatusResponse.ProtoReflect.Descriptor instead. +func (*StatusResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{13} +} + +func (x *StatusResponse) GetInitialized() bool { + if x != nil { + return x.Initialized + } + return false +} + +func (x *StatusResponse) GetSynced() bool { + if x != nil { + return x.Synced + } + return false +} + +func (x *StatusResponse) GetUnlocked() bool { + if x != nil { + return x.Unlocked + } + return false +} + +type GetInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetInfoRequest) Reset() { + *x = GetInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInfoRequest) ProtoMessage() {} + +func (x *GetInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[14] + 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 GetInfoRequest.ProtoReflect.Descriptor instead. +func (*GetInfoRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{14} +} + +type GetInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Liquid network of the wallet + Network GetInfoResponse_Network `protobuf:"varint,1,opt,name=network,proto3,enum=ocean.v1.GetInfoResponse_Network" json:"network,omitempty"` + // The Liquid Bitcoin (LBTC) asset hash of the network. + NativeAsset string `protobuf:"bytes,2,opt,name=native_asset,json=nativeAsset,proto3" json:"native_asset,omitempty"` + // The root derivation path of the HD wallet. + RootPath string `protobuf:"bytes,3,opt,name=root_path,json=rootPath,proto3" json:"root_path,omitempty"` + // The hash of the block at wallet creation time. + BirthdayBlockHash string `protobuf:"bytes,4,opt,name=birthday_block_hash,json=birthdayBlockHash,proto3" json:"birthday_block_hash,omitempty"` + // The height of the block at wallet creation time. + BirthdayBlockHeight uint32 `protobuf:"varint,5,opt,name=birthday_block_height,json=birthdayBlockHeight,proto3" json:"birthday_block_height,omitempty"` + // List containing info about the wallet accounts. + Accounts []*AccountInfo `protobuf:"bytes,6,rep,name=accounts,proto3" json:"accounts,omitempty"` + // Info about the current version of the ocean wallet. + BuildInfo *BuildInfo `protobuf:"bytes,7,opt,name=build_info,json=buildInfo,proto3" json:"build_info,omitempty"` +} + +func (x *GetInfoResponse) Reset() { + *x = GetInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInfoResponse) ProtoMessage() {} + +func (x *GetInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[15] + 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 GetInfoResponse.ProtoReflect.Descriptor instead. +func (*GetInfoResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{15} +} + +func (x *GetInfoResponse) GetNetwork() GetInfoResponse_Network { + if x != nil { + return x.Network + } + return GetInfoResponse_NETWORK_UNSPECIFIED +} + +func (x *GetInfoResponse) GetNativeAsset() string { + if x != nil { + return x.NativeAsset + } + return "" +} + +func (x *GetInfoResponse) GetRootPath() string { + if x != nil { + return x.RootPath + } + return "" +} + +func (x *GetInfoResponse) GetBirthdayBlockHash() string { + if x != nil { + return x.BirthdayBlockHash + } + return "" +} + +func (x *GetInfoResponse) GetBirthdayBlockHeight() uint32 { + if x != nil { + return x.BirthdayBlockHeight + } + return 0 +} + +func (x *GetInfoResponse) GetAccounts() []*AccountInfo { + if x != nil { + return x.Accounts + } + return nil +} + +func (x *GetInfoResponse) GetBuildInfo() *BuildInfo { + if x != nil { + return x.BuildInfo + } + return nil +} + +type AuthRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *AuthRequest) Reset() { + *x = AuthRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthRequest) ProtoMessage() {} + +func (x *AuthRequest) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[16] + 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 AuthRequest.ProtoReflect.Descriptor instead. +func (*AuthRequest) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{16} +} + +func (x *AuthRequest) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type AuthResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Verified bool `protobuf:"varint,1,opt,name=verified,proto3" json:"verified,omitempty"` +} + +func (x *AuthResponse) Reset() { + *x = AuthResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ocean_v1_wallet_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthResponse) ProtoMessage() {} + +func (x *AuthResponse) ProtoReflect() protoreflect.Message { + mi := &file_ocean_v1_wallet_proto_msgTypes[17] + 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 AuthResponse.ProtoReflect.Descriptor instead. +func (*AuthResponse) Descriptor() ([]byte, []int) { + return file_ocean_v1_wallet_proto_rawDescGZIP(), []int{17} +} + +func (x *AuthResponse) GetVerified() bool { + if x != nil { + return x.Verified + } + return false +} + +var File_ocean_v1_wallet_proto protoreflect.FileDescriptor + +var file_ocean_v1_wallet_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x1a, 0x14, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x53, 0x65, + 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x0f, 0x47, 0x65, 0x6e, + 0x53, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x22, 0x4d, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2b, 0x0a, 0x0d, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x10, 0x0a, 0x0e, + 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, + 0x0a, 0x0b, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x4c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x15, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a, + 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x22, 0x18, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x91, 0x02, 0x0a, 0x14, 0x52, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6e, 0x65, 0x6d, 0x6f, 0x6e, 0x69, 0x63, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x17, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x31, + 0x0a, 0x15, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x66, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xbc, 0x03, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x21, 0x0a, + 0x0c, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, + 0x13, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x32, 0x0a, + 0x15, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x61, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, + 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x4e, 0x45, 0x54, 0x10, + 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x54, 0x45, 0x53, + 0x54, 0x4e, 0x45, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x52, 0x45, 0x47, 0x54, 0x45, 0x53, 0x54, 0x10, 0x03, 0x22, 0x29, 0x0a, 0x0b, 0x41, + 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x2a, 0x0a, 0x0c, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x32, 0xef, 0x04, 0x0a, 0x0d, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x47, 0x65, 0x6e, 0x53, 0x65, 0x65, 0x64, 0x12, + 0x18, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x53, 0x65, + 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x53, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x17, 0x2e, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x35, 0x0a, 0x04, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x6f, 0x63, 0x65, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0d, + 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x1e, 0x2e, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x3b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, + 0x07, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, + 0x04, 0x41, 0x75, 0x74, 0x68, 0x12, 0x15, 0x2e, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, + 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x9f, 0x01, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x63, 0x65, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x72, 0x6b, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x72, 0x6b, + 0x2f, 0x61, 0x70, 0x69, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x2f, 0x76, 0x31, 0x3b, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x58, 0x58, 0xaa, 0x02, 0x08, + 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x08, 0x4f, 0x63, 0x65, 0x61, 0x6e, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x14, 0x4f, 0x63, 0x65, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x09, 0x4f, 0x63, 0x65, + 0x61, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_ocean_v1_wallet_proto_rawDescOnce sync.Once + file_ocean_v1_wallet_proto_rawDescData = file_ocean_v1_wallet_proto_rawDesc +) + +func file_ocean_v1_wallet_proto_rawDescGZIP() []byte { + file_ocean_v1_wallet_proto_rawDescOnce.Do(func() { + file_ocean_v1_wallet_proto_rawDescData = protoimpl.X.CompressGZIP(file_ocean_v1_wallet_proto_rawDescData) + }) + return file_ocean_v1_wallet_proto_rawDescData +} + +var file_ocean_v1_wallet_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_ocean_v1_wallet_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_ocean_v1_wallet_proto_goTypes = []interface{}{ + (GetInfoResponse_Network)(0), // 0: ocean.v1.GetInfoResponse.Network + (*GenSeedRequest)(nil), // 1: ocean.v1.GenSeedRequest + (*GenSeedResponse)(nil), // 2: ocean.v1.GenSeedResponse + (*CreateWalletRequest)(nil), // 3: ocean.v1.CreateWalletRequest + (*CreateWalletResponse)(nil), // 4: ocean.v1.CreateWalletResponse + (*UnlockRequest)(nil), // 5: ocean.v1.UnlockRequest + (*UnlockResponse)(nil), // 6: ocean.v1.UnlockResponse + (*LockRequest)(nil), // 7: ocean.v1.LockRequest + (*LockResponse)(nil), // 8: ocean.v1.LockResponse + (*ChangePasswordRequest)(nil), // 9: ocean.v1.ChangePasswordRequest + (*ChangePasswordResponse)(nil), // 10: ocean.v1.ChangePasswordResponse + (*RestoreWalletRequest)(nil), // 11: ocean.v1.RestoreWalletRequest + (*RestoreWalletResponse)(nil), // 12: ocean.v1.RestoreWalletResponse + (*StatusRequest)(nil), // 13: ocean.v1.StatusRequest + (*StatusResponse)(nil), // 14: ocean.v1.StatusResponse + (*GetInfoRequest)(nil), // 15: ocean.v1.GetInfoRequest + (*GetInfoResponse)(nil), // 16: ocean.v1.GetInfoResponse + (*AuthRequest)(nil), // 17: ocean.v1.AuthRequest + (*AuthResponse)(nil), // 18: ocean.v1.AuthResponse + (*AccountInfo)(nil), // 19: ocean.v1.AccountInfo + (*BuildInfo)(nil), // 20: ocean.v1.BuildInfo +} +var file_ocean_v1_wallet_proto_depIdxs = []int32{ + 0, // 0: ocean.v1.GetInfoResponse.network:type_name -> ocean.v1.GetInfoResponse.Network + 19, // 1: ocean.v1.GetInfoResponse.accounts:type_name -> ocean.v1.AccountInfo + 20, // 2: ocean.v1.GetInfoResponse.build_info:type_name -> ocean.v1.BuildInfo + 1, // 3: ocean.v1.WalletService.GenSeed:input_type -> ocean.v1.GenSeedRequest + 3, // 4: ocean.v1.WalletService.CreateWallet:input_type -> ocean.v1.CreateWalletRequest + 5, // 5: ocean.v1.WalletService.Unlock:input_type -> ocean.v1.UnlockRequest + 7, // 6: ocean.v1.WalletService.Lock:input_type -> ocean.v1.LockRequest + 9, // 7: ocean.v1.WalletService.ChangePassword:input_type -> ocean.v1.ChangePasswordRequest + 11, // 8: ocean.v1.WalletService.RestoreWallet:input_type -> ocean.v1.RestoreWalletRequest + 13, // 9: ocean.v1.WalletService.Status:input_type -> ocean.v1.StatusRequest + 15, // 10: ocean.v1.WalletService.GetInfo:input_type -> ocean.v1.GetInfoRequest + 17, // 11: ocean.v1.WalletService.Auth:input_type -> ocean.v1.AuthRequest + 2, // 12: ocean.v1.WalletService.GenSeed:output_type -> ocean.v1.GenSeedResponse + 4, // 13: ocean.v1.WalletService.CreateWallet:output_type -> ocean.v1.CreateWalletResponse + 6, // 14: ocean.v1.WalletService.Unlock:output_type -> ocean.v1.UnlockResponse + 8, // 15: ocean.v1.WalletService.Lock:output_type -> ocean.v1.LockResponse + 10, // 16: ocean.v1.WalletService.ChangePassword:output_type -> ocean.v1.ChangePasswordResponse + 12, // 17: ocean.v1.WalletService.RestoreWallet:output_type -> ocean.v1.RestoreWalletResponse + 14, // 18: ocean.v1.WalletService.Status:output_type -> ocean.v1.StatusResponse + 16, // 19: ocean.v1.WalletService.GetInfo:output_type -> ocean.v1.GetInfoResponse + 18, // 20: ocean.v1.WalletService.Auth:output_type -> ocean.v1.AuthResponse + 12, // [12:21] is the sub-list for method output_type + 3, // [3:12] 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_ocean_v1_wallet_proto_init() } +func file_ocean_v1_wallet_proto_init() { + if File_ocean_v1_wallet_proto != nil { + return + } + file_ocean_v1_types_proto_init() + if !protoimpl.UnsafeEnabled { + file_ocean_v1_wallet_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenSeedRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenSeedResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWalletRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateWalletResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnlockResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LockResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangePasswordRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangePasswordResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestoreWalletRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestoreWalletResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ocean_v1_wallet_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthResponse); 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_ocean_v1_wallet_proto_rawDesc, + NumEnums: 1, + NumMessages: 18, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_ocean_v1_wallet_proto_goTypes, + DependencyIndexes: file_ocean_v1_wallet_proto_depIdxs, + EnumInfos: file_ocean_v1_wallet_proto_enumTypes, + MessageInfos: file_ocean_v1_wallet_proto_msgTypes, + }.Build() + File_ocean_v1_wallet_proto = out.File + file_ocean_v1_wallet_proto_rawDesc = nil + file_ocean_v1_wallet_proto_goTypes = nil + file_ocean_v1_wallet_proto_depIdxs = nil +} diff --git a/api-spec/protobuf/gen/ocean/v1/wallet_grpc.pb.go b/api-spec/protobuf/gen/ocean/v1/wallet_grpc.pb.go new file mode 100644 index 0000000..d6a4496 --- /dev/null +++ b/api-spec/protobuf/gen/ocean/v1/wallet_grpc.pb.go @@ -0,0 +1,441 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package oceanv1 + +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 + +// WalletServiceClient is the client API for WalletService 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 WalletServiceClient interface { + // GenSeed returns signing and blinding seed that should be used to create a + // new HD Wallet. + GenSeed(ctx context.Context, in *GenSeedRequest, opts ...grpc.CallOption) (*GenSeedResponse, error) + // CreateWallet creates an HD Wallet based on signing, blinding seeds, + // encrypts them with the password and persists the encrypted seeds. + CreateWallet(ctx context.Context, in *CreateWalletRequest, opts ...grpc.CallOption) (*CreateWalletResponse, error) + // Unlock tries to unlock the HD Wallet using the given password. + Unlock(ctx context.Context, in *UnlockRequest, opts ...grpc.CallOption) (*UnlockResponse, error) + // Lock locks the HD wallet. + Lock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (*LockResponse, error) + // ChangePassword changes the password used to encrypt/decrypt the HD seeds. + // It requires the wallet to be locked. + ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error) + // RestoreWallet restores an HD Wallet based on signing and blinding seeds, + // encrypts them with the password and persists the encrypted seeds. + RestoreWallet(ctx context.Context, in *RestoreWalletRequest, opts ...grpc.CallOption) (WalletService_RestoreWalletClient, error) + // Status returns info about the status of the wallet. + Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) + // GetInfo returns info about the HD wallet. + GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error) + // Auth verifies whether the given password is valid without unlocking the wallet + Auth(ctx context.Context, in *AuthRequest, opts ...grpc.CallOption) (*AuthResponse, error) +} + +type walletServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewWalletServiceClient(cc grpc.ClientConnInterface) WalletServiceClient { + return &walletServiceClient{cc} +} + +func (c *walletServiceClient) GenSeed(ctx context.Context, in *GenSeedRequest, opts ...grpc.CallOption) (*GenSeedResponse, error) { + out := new(GenSeedResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/GenSeed", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *walletServiceClient) CreateWallet(ctx context.Context, in *CreateWalletRequest, opts ...grpc.CallOption) (*CreateWalletResponse, error) { + out := new(CreateWalletResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/CreateWallet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *walletServiceClient) Unlock(ctx context.Context, in *UnlockRequest, opts ...grpc.CallOption) (*UnlockResponse, error) { + out := new(UnlockResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/Unlock", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *walletServiceClient) Lock(ctx context.Context, in *LockRequest, opts ...grpc.CallOption) (*LockResponse, error) { + out := new(LockResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/Lock", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *walletServiceClient) ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error) { + out := new(ChangePasswordResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/ChangePassword", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *walletServiceClient) RestoreWallet(ctx context.Context, in *RestoreWalletRequest, opts ...grpc.CallOption) (WalletService_RestoreWalletClient, error) { + stream, err := c.cc.NewStream(ctx, &WalletService_ServiceDesc.Streams[0], "/ocean.v1.WalletService/RestoreWallet", opts...) + if err != nil { + return nil, err + } + x := &walletServiceRestoreWalletClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type WalletService_RestoreWalletClient interface { + Recv() (*RestoreWalletResponse, error) + grpc.ClientStream +} + +type walletServiceRestoreWalletClient struct { + grpc.ClientStream +} + +func (x *walletServiceRestoreWalletClient) Recv() (*RestoreWalletResponse, error) { + m := new(RestoreWalletResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *walletServiceClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) { + out := new(StatusResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/Status", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *walletServiceClient) GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error) { + out := new(GetInfoResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/GetInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *walletServiceClient) Auth(ctx context.Context, in *AuthRequest, opts ...grpc.CallOption) (*AuthResponse, error) { + out := new(AuthResponse) + err := c.cc.Invoke(ctx, "/ocean.v1.WalletService/Auth", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WalletServiceServer is the server API for WalletService service. +// All implementations should embed UnimplementedWalletServiceServer +// for forward compatibility +type WalletServiceServer interface { + // GenSeed returns signing and blinding seed that should be used to create a + // new HD Wallet. + GenSeed(context.Context, *GenSeedRequest) (*GenSeedResponse, error) + // CreateWallet creates an HD Wallet based on signing, blinding seeds, + // encrypts them with the password and persists the encrypted seeds. + CreateWallet(context.Context, *CreateWalletRequest) (*CreateWalletResponse, error) + // Unlock tries to unlock the HD Wallet using the given password. + Unlock(context.Context, *UnlockRequest) (*UnlockResponse, error) + // Lock locks the HD wallet. + Lock(context.Context, *LockRequest) (*LockResponse, error) + // ChangePassword changes the password used to encrypt/decrypt the HD seeds. + // It requires the wallet to be locked. + ChangePassword(context.Context, *ChangePasswordRequest) (*ChangePasswordResponse, error) + // RestoreWallet restores an HD Wallet based on signing and blinding seeds, + // encrypts them with the password and persists the encrypted seeds. + RestoreWallet(*RestoreWalletRequest, WalletService_RestoreWalletServer) error + // Status returns info about the status of the wallet. + Status(context.Context, *StatusRequest) (*StatusResponse, error) + // GetInfo returns info about the HD wallet. + GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error) + // Auth verifies whether the given password is valid without unlocking the wallet + Auth(context.Context, *AuthRequest) (*AuthResponse, error) +} + +// UnimplementedWalletServiceServer should be embedded to have forward compatible implementations. +type UnimplementedWalletServiceServer struct { +} + +func (UnimplementedWalletServiceServer) GenSeed(context.Context, *GenSeedRequest) (*GenSeedResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenSeed not implemented") +} +func (UnimplementedWalletServiceServer) CreateWallet(context.Context, *CreateWalletRequest) (*CreateWalletResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateWallet not implemented") +} +func (UnimplementedWalletServiceServer) Unlock(context.Context, *UnlockRequest) (*UnlockResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Unlock not implemented") +} +func (UnimplementedWalletServiceServer) Lock(context.Context, *LockRequest) (*LockResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Lock not implemented") +} +func (UnimplementedWalletServiceServer) ChangePassword(context.Context, *ChangePasswordRequest) (*ChangePasswordResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangePassword not implemented") +} +func (UnimplementedWalletServiceServer) RestoreWallet(*RestoreWalletRequest, WalletService_RestoreWalletServer) error { + return status.Errorf(codes.Unimplemented, "method RestoreWallet not implemented") +} +func (UnimplementedWalletServiceServer) Status(context.Context, *StatusRequest) (*StatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Status not implemented") +} +func (UnimplementedWalletServiceServer) GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInfo not implemented") +} +func (UnimplementedWalletServiceServer) Auth(context.Context, *AuthRequest) (*AuthResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Auth not implemented") +} + +// UnsafeWalletServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to WalletServiceServer will +// result in compilation errors. +type UnsafeWalletServiceServer interface { + mustEmbedUnimplementedWalletServiceServer() +} + +func RegisterWalletServiceServer(s grpc.ServiceRegistrar, srv WalletServiceServer) { + s.RegisterService(&WalletService_ServiceDesc, srv) +} + +func _WalletService_GenSeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenSeedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).GenSeed(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/GenSeed", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).GenSeed(ctx, req.(*GenSeedRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WalletService_CreateWallet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateWalletRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).CreateWallet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/CreateWallet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).CreateWallet(ctx, req.(*CreateWalletRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WalletService_Unlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UnlockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).Unlock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/Unlock", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).Unlock(ctx, req.(*UnlockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WalletService_Lock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).Lock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/Lock", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).Lock(ctx, req.(*LockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WalletService_ChangePassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChangePasswordRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).ChangePassword(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/ChangePassword", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).ChangePassword(ctx, req.(*ChangePasswordRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WalletService_RestoreWallet_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(RestoreWalletRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(WalletServiceServer).RestoreWallet(m, &walletServiceRestoreWalletServer{stream}) +} + +type WalletService_RestoreWalletServer interface { + Send(*RestoreWalletResponse) error + grpc.ServerStream +} + +type walletServiceRestoreWalletServer struct { + grpc.ServerStream +} + +func (x *walletServiceRestoreWalletServer) Send(m *RestoreWalletResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _WalletService_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).Status(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/Status", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).Status(ctx, req.(*StatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WalletService_GetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).GetInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/GetInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).GetInfo(ctx, req.(*GetInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WalletService_Auth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AuthRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WalletServiceServer).Auth(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/ocean.v1.WalletService/Auth", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WalletServiceServer).Auth(ctx, req.(*AuthRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// WalletService_ServiceDesc is the grpc.ServiceDesc for WalletService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var WalletService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "ocean.v1.WalletService", + HandlerType: (*WalletServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GenSeed", + Handler: _WalletService_GenSeed_Handler, + }, + { + MethodName: "CreateWallet", + Handler: _WalletService_CreateWallet_Handler, + }, + { + MethodName: "Unlock", + Handler: _WalletService_Unlock_Handler, + }, + { + MethodName: "Lock", + Handler: _WalletService_Lock_Handler, + }, + { + MethodName: "ChangePassword", + Handler: _WalletService_ChangePassword_Handler, + }, + { + MethodName: "Status", + Handler: _WalletService_Status_Handler, + }, + { + MethodName: "GetInfo", + Handler: _WalletService_GetInfo_Handler, + }, + { + MethodName: "Auth", + Handler: _WalletService_Auth_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "RestoreWallet", + Handler: _WalletService_RestoreWallet_Handler, + ServerStreams: true, + }, + }, + Metadata: "ocean/v1/wallet.proto", +} diff --git a/buf.gen.yaml b/buf.gen.yaml index 6efcb2d..e019b47 100755 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -3,18 +3,19 @@ managed: enabled: true go_package_prefix: default: github.com/ark-network/ark/api-spec/protobuf/gen + except: + - buf.build/googleapis/googleapis plugins: # Golang - - remote: buf.build/protocolbuffers/plugins/go - out: api-spec/protobuf/gen/go + - plugin: go + out: api-spec/protobuf/gen opt: paths=source_relative - - remote: buf.build/grpc/plugins/go - out: api-spec/protobuf/gen/go + - plugin: go-grpc + out: api-spec/protobuf/gen opt: paths=source_relative,require_unimplemented_servers=false - - remote: buf.build/grpc-ecosystem/plugins/grpc-gateway + - plugin: grpc-gateway out: api-spec/protobuf/gen opt: paths=source_relative #OpenApi - - remote: buf.build/grpc-ecosystem/plugins/openapiv2 + - plugin: openapiv2 out: api-spec/openapi/swagger - \ No newline at end of file diff --git a/go.mod b/go.mod index 15024b2..21a460a 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,48 @@ go 1.21.0 replace github.com/ark-network/ark/common => ./pkg/common -require github.com/sirupsen/logrus v1.9.3 +require ( + github.com/ark-network/ark/common v0.0.0-00010101000000-000000000000 + github.com/sirupsen/logrus v1.9.3 + github.com/spf13/viper v1.17.0 + github.com/vulpemventures/go-elements v0.4.7 + google.golang.org/grpc v1.59.0 + google.golang.org/protobuf v1.31.0 +) require ( - github.com/stretchr/testify v1.8.0 // indirect - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect + github.com/btcsuite/btcd v0.23.1 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect + github.com/btcsuite/btcd/btcutil v1.1.3 // indirect + github.com/btcsuite/btcd/btcutil/psbt v1.1.4 // indirect + github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect + github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f // indirect + github.com/decred/dcrd/crypto/blake256 v1.0.1 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/sagikazarmark/locafero v0.3.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.10.0 // indirect + github.com/spf13/cast v1.5.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/vulpemventures/fastsha256 v0.0.0-20160815193821-637e65642941 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/multierr v1.9.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/text v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 199d0b8..c731e3c 100644 --- a/go.sum +++ b/go.sum @@ -1,19 +1,596 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= +github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd v0.23.1 h1:IB8cVQcC2X5mHbnfirLG5IZnkWYNTPlLZVrxUYSotbE= +github.com/btcsuite/btcd v0.23.1/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= +github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= +github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= +github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/btcutil/psbt v1.1.4 h1:Edx4AfBn+YPam2KP5AobDitulGp4r1Oibm8oruzkMdI= +github.com/btcsuite/btcd/btcutil/psbt v1.1.4/go.mod h1:9AyU6EQVJ9Iw9zPyNT1lcdHd6cnEZdno5wLu5FY74os= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/sagikazarmark/locafero v0.3.0 h1:zT7VEGWC2DTflmccN/5T1etyKvxSxpHsjb9cJvm4SvQ= +github.com/sagikazarmark/locafero v0.3.0/go.mod h1:w+v7UsPNFwzF1cHuOajOOzoq4U7v/ig1mpRjqV+Bu1U= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= +github.com/spf13/afero v1.10.0/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= +github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.17.0 h1:I5txKw7MJasPL/BrfkbA0Jyo/oELqVmux4pR/UxOMfI= +github.com/spf13/viper v1.17.0/go.mod h1:BmMMMLQXSbcHK6KAOiFLz0l5JHrU89OdIRHvsk0+yVI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/vulpemventures/fastsha256 v0.0.0-20160815193821-637e65642941 h1:CTcw80hz/Sw8hqlKX5ZYvBUF5gAHSHwdjXxRf/cjDcI= +github.com/vulpemventures/fastsha256 v0.0.0-20160815193821-637e65642941/go.mod h1:GXBJykxW2kUcktGdsgyay7uwwWvkljASfljNcT0mbh8= +github.com/vulpemventures/go-elements v0.4.7 h1:M5dtBHwRXqct75DJeEv5b0PUFS93t0gh2naJaGlvp60= +github.com/vulpemventures/go-elements v0.4.7/go.mod h1:aBGuWXHaiAIUIcwqCdtEh2iQ3kJjKwHU9ywvhlcRSeU= +github.com/vulpemventures/go-secp256k1-zkp v1.1.6 h1:BmsrmXRLUibwa75Qkk8yELjpzCzlAjYFGLiLiOdq7Xo= +github.com/vulpemventures/go-secp256k1-zkp v1.1.6/go.mod h1:zo7CpgkuPgoe7fAV+inyxsI9IhGmcoFgyD8nqZaPSOM= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= +go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 h1:AB/lmRny7e2pLhFEYIbl5qkDAUt2h0ZRO4wGPhZf+ik= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/internal/config/.gitkeep b/internal/config/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..5677749 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,59 @@ +package config + +import ( + "fmt" + "os" + + common "github.com/ark-network/ark/common" + "github.com/spf13/viper" +) + +type Config struct { + WalletAddr string +} + +var ( + Datadir = "DATADIR" + WalletAddr = "WALLET_ADDR" + + defaultDatadir = common.AppDataDir("coordinatord", false) +) + +func LoadConfig() (*Config, error) { + viper.SetEnvPrefix("ARK_COORDINATOR") + viper.AutomaticEnv() + + viper.SetDefault(Datadir, defaultDatadir) + + if err := initDatadir(); err != nil { + return nil, fmt.Errorf("error while creating datadir: %s", err) + } + + cfg := &Config{ + WalletAddr: viper.GetString(WalletAddr), + } + + if err := cfg.validate(); err != nil { + return nil, err + } + return cfg, nil +} + +func (c *Config) validate() error { + if len(c.WalletAddr) <= 0 { + return fmt.Errorf("missing wallet address") + } + return nil +} + +func initDatadir() error { + datadir := viper.GetString(Datadir) + return makeDirectoryIfNotExists(datadir) +} + +func makeDirectoryIfNotExists(path string) error { + if _, err := os.Stat(path); os.IsNotExist(err) { + return os.MkdirAll(path, os.ModeDir|0755) + } + return nil +} diff --git a/internal/core/ports/.gitkeep b/internal/core/ports/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/internal/core/ports/wallet.go b/internal/core/ports/wallet.go new file mode 100644 index 0000000..5a75ae9 --- /dev/null +++ b/internal/core/ports/wallet.go @@ -0,0 +1,120 @@ +package ports + +import "context" + +type WalletService interface { + Wallet() Wallet + Account() Account + Transaction() Transaction + Notification() Notification + Close() +} + +type Wallet interface { + GenSeed(ctx context.Context) ([]string, error) + InitWallet(ctx context.Context, mnemonic []string, password string) error + Unlock(ctx context.Context, password string) error + Lock(ctx context.Context, password string) error + Status(ctx context.Context) (WalletStatus, error) +} + +type Account interface { + DeriveAddresses(ctx context.Context, num int) ([]string, error) + GetBalance(ctx context.Context) (map[string]Balance, error) + ListUtxos(ctx context.Context) ([]Utxo, []Utxo, error) +} + +type Transaction interface { + GetTransaction(ctx context.Context, txid string) (string, error) + UpdatePset( + ctx context.Context, pset string, + ins []TxInput, outs []TxOutput, + ) (string, error) + SignPset( + ctx context.Context, pset string, extractRawTx bool, + ) (string, error) + Transfer(ctx context.Context, outs []TxOutput) (string, error) + BroadcastTransaction(ctx context.Context, txHex string) (string, error) +} + +type Notification interface { + GetTxNotifications() chan WalletTxNotification + GetUtxoNotifications() chan WalletUtxoNotification +} + +type WalletStatus interface { + IsInitialized() bool + IsUnlocked() bool + IsSynced() bool +} + +type WalletTxNotification interface { + GetEventType() WalletTxEventType + GetAccountNames() []string + GetTxHex() string + GetBlockDetails() BlockInfo +} + +type WalletUtxoNotification interface { + GetEventType() WalletUtxoEventType + GetUtxos() []Utxo +} + +type WalletTxEventType interface { + IsUnconfirmed() bool + IsConfirmed() bool + IsBroadcasted() bool +} + +type WalletUtxoEventType interface { + IsUnconfirmed() bool + IsConfirmed() bool + IsLocked() bool + IsUnlocked() bool + IsSpent() bool +} + +type Balance interface { + GetConfirmedBalance() uint64 + GetUnconfirmedBalance() uint64 + GetLockedBalance() uint64 + GetTotalBalance() uint64 +} + +type UtxoKey interface { + GetTxid() string + GetIndex() uint32 +} + +type UtxoStatus interface { + GetTxid() string + GetBlockInfo() BlockInfo +} + +type Utxo interface { + UtxoKey + GetAsset() string + GetValue() uint64 + GetScript() string + GetConfirmedStatus() UtxoStatus + GetSpentStatus() UtxoStatus +} + +type TxInput interface { + UtxoKey + GetScript() string + GetScriptSigSize() int + GetWitnessSize() int +} + +type TxOutput interface { + GetAsset() string + GetAmount() uint64 + GetScript() string +} + +type BlockInfo interface { + GetHash() string + GetHeight() uint64 + GetTimestamp() int64 +} diff --git a/internal/infrastructure/.gitkeep b/internal/infrastructure/.gitkeep deleted file mode 100755 index e69de29..0000000 diff --git a/internal/infrastructure/ocean-wallet/account.go b/internal/infrastructure/ocean-wallet/account.go new file mode 100644 index 0000000..298902d --- /dev/null +++ b/internal/infrastructure/ocean-wallet/account.go @@ -0,0 +1,82 @@ +package oceanwallet + +import ( + "context" + + pb "github.com/ark-network/ark/api-spec/protobuf/gen/ocean/v1" + "github.com/ark-network/ark/internal/core/ports" + "github.com/vulpemventures/go-elements/address" + "google.golang.org/grpc" +) + +type account struct { + client pb.AccountServiceClient +} + +func newAccount(conn *grpc.ClientConn) *account { + return &account{pb.NewAccountServiceClient(conn)} +} + +func (m *account) DeriveAddresses( + ctx context.Context, numOfAddresses int, +) ([]string, error) { + res, err := m.client.DeriveAddresses(ctx, &pb.DeriveAddressesRequest{ + AccountName: accountLabel, + NumOfAddresses: uint64(numOfAddresses), + }) + if err != nil { + return nil, err + } + // By default, ocean generates confidential addresses. Since we're going to + // create unconfidential txs only, let's return unconf addresses. + addresses := make([]string, 0, numOfAddresses) + for _, addr := range res.GetAddresses() { + info, _ := address.FromConfidential(addr) + addresses = append(addresses, info.Address) + } + return addresses, nil +} + +func (m *account) GetBalance( + ctx context.Context, +) (map[string]ports.Balance, error) { + res, err := m.client.Balance(ctx, &pb.BalanceRequest{ + AccountName: accountLabel, + }) + if err != nil { + return nil, err + } + balance := make(map[string]ports.Balance) + for asset, bal := range res.GetBalance() { + balance[asset] = bal + } + return balance, nil +} + +func (m *account) ListUtxos( + ctx context.Context, +) (spendableUtxos, lockedUtxos []ports.Utxo, err error) { + res, err := m.client.ListUtxos(ctx, &pb.ListUtxosRequest{ + AccountName: accountLabel, + }) + if err != nil { + return nil, nil, err + } + if res.GetSpendableUtxos() != nil { + spendableUtxos = utxoList(res.GetSpendableUtxos().GetUtxos()).toPortableList() + } + if res.GetLockedUtxos() != nil { + lockedUtxos = utxoList(res.GetLockedUtxos().GetUtxos()).toPortableList() + } + return +} + +type utxoList []*pb.Utxo + +func (l utxoList) toPortableList() []ports.Utxo { + utxos := make([]ports.Utxo, 0, len(l)) + for _, u := range l { + utxos = append(utxos, utxoInfo{u}) + } + return utxos +} diff --git a/internal/infrastructure/ocean-wallet/notify.go b/internal/infrastructure/ocean-wallet/notify.go new file mode 100644 index 0000000..db77c95 --- /dev/null +++ b/internal/infrastructure/ocean-wallet/notify.go @@ -0,0 +1,195 @@ +package oceanwallet + +import ( + "context" + "fmt" + "io" + + pb "github.com/ark-network/ark/api-spec/protobuf/gen/ocean/v1" + "github.com/ark-network/ark/internal/core/ports" + log "github.com/sirupsen/logrus" + "google.golang.org/grpc" +) + +type notify struct { + client pb.NotificationServiceClient + chTxNotifications chan ports.WalletTxNotification + chUtxoNotifications chan ports.WalletUtxoNotification +} + +func newNotify(conn *grpc.ClientConn) (*notify, error) { + svc := ¬ify{ + client: pb.NewNotificationServiceClient(conn), + chTxNotifications: make(chan ports.WalletTxNotification), + chUtxoNotifications: make(chan ports.WalletUtxoNotification), + } + + txStream, err := svc.client.TransactionNotifications( + context.Background(), &pb.TransactionNotificationsRequest{}, + ) + if err != nil { + return nil, fmt.Errorf( + "failed to open stream for tx notifications: %s", err, + ) + } + go svc.startListeningForTxNotifications(txStream) + + utxoStream, err := svc.client.UtxosNotifications( + context.Background(), &pb.UtxosNotificationsRequest{}, + ) + if err != nil { + return nil, fmt.Errorf( + "failed to open stream for utxo notifications: %s", err, + ) + } + go svc.startListeningForUtxoNotifications(utxoStream) + + return svc, nil +} + +func (m *notify) GetTxNotifications() chan ports.WalletTxNotification { + return m.chTxNotifications +} + +func (m *notify) GetUtxoNotifications() chan ports.WalletUtxoNotification { + return m.chUtxoNotifications +} + +func (m *notify) startListeningForTxNotifications( + stream pb.NotificationService_TransactionNotificationsClient, +) { + var err error + defer func() { + if err != nil { + log.WithError(err).Fatal( + "notification handler: error while listenting to tx notifications", + ) + } + }() + + for { + var notification *pb.TransactionNotificationsResponse + notification, err = stream.Recv() + if err != nil { + if err == io.EOF { + break + } + return + } + + select { + case m.chTxNotifications <- txNotifyInfo{notification}: + continue + default: + } + } +} + +func (m *notify) startListeningForUtxoNotifications( + stream pb.NotificationService_UtxosNotificationsClient, +) { + var err error + defer func() { + if err != nil { + log.WithError(err).Fatal( + "notification handler: error while listenting to utxo notifications", + ) + } + }() + + for { + var notification *pb.UtxosNotificationsResponse + notification, err = stream.Recv() + if err != nil { + if err == io.EOF { + break + } + return + } + + select { + case m.chUtxoNotifications <- utxoNotifyInfo{notification}: + continue + default: + } + } +} + +type txNotifyInfo struct { + *pb.TransactionNotificationsResponse +} + +func (i txNotifyInfo) GetEventType() ports.WalletTxEventType { + return txEventType(i.TransactionNotificationsResponse.GetEventType()) +} +func (i txNotifyInfo) GetTxHex() string { + return i.TransactionNotificationsResponse.GetTxhex() +} +func (i txNotifyInfo) GetBlockDetails() ports.BlockInfo { + return i.TransactionNotificationsResponse.GetBlockDetails() +} + +type txEventType pb.TxEventType + +func (t txEventType) IsUnconfirmed() bool { + return int(t) == int(pb.TxEventType_TX_EVENT_TYPE_UNCONFIRMED) +} +func (t txEventType) IsConfirmed() bool { + return int(t) == int(pb.TxEventType_TX_EVENT_TYPE_CONFIRMED) +} +func (t txEventType) IsBroadcasted() bool { + return int(t) == int(pb.TxEventType_TX_EVENT_TYPE_BROADCASTED) +} + +type utxoNotifyInfo struct { + *pb.UtxosNotificationsResponse +} + +func (i utxoNotifyInfo) GetEventType() ports.WalletUtxoEventType { + return utxoEventType(i.UtxosNotificationsResponse.GetEventType()) +} +func (i utxoNotifyInfo) GetUtxos() []ports.Utxo { + utxos := make([]ports.Utxo, 0, len(i.UtxosNotificationsResponse.GetUtxos())) + for _, u := range i.UtxosNotificationsResponse.GetUtxos() { + utxos = append(utxos, utxoInfo{u}) + } + return utxos +} + +type utxoEventType pb.UtxoEventType + +func (t utxoEventType) IsUnconfirmed() bool { + return int(t) == int(pb.UtxoEventType_UTXO_EVENT_TYPE_NEW) +} +func (t utxoEventType) IsSpent() bool { + return int(t) == int(pb.UtxoEventType_UTXO_EVENT_TYPE_SPENT) +} +func (t utxoEventType) IsConfirmed() bool { + return int(t) == int(pb.UtxoEventType_UTXO_EVENT_TYPE_CONFIRMED) +} +func (t utxoEventType) IsLocked() bool { + return int(t) == int(pb.UtxoEventType_UTXO_EVENT_TYPE_LOCKED) +} +func (t utxoEventType) IsUnlocked() bool { + return int(t) == int(pb.UtxoEventType_UTXO_EVENT_TYPE_UNLOCKED) +} + +type utxoInfo struct { + *pb.Utxo +} + +func (i utxoInfo) GetConfirmedStatus() ports.UtxoStatus { + return utxoStatusInfo{i.Utxo.GetConfirmedStatus()} +} + +func (i utxoInfo) GetSpentStatus() ports.UtxoStatus { + return utxoStatusInfo{i.Utxo.GetSpentStatus()} +} + +type utxoStatusInfo struct { + *pb.UtxoStatus +} + +func (i utxoStatusInfo) GetBlockInfo() ports.BlockInfo { + return i.UtxoStatus.GetBlockInfo() +} diff --git a/internal/infrastructure/ocean-wallet/service.go b/internal/infrastructure/ocean-wallet/service.go new file mode 100644 index 0000000..264057f --- /dev/null +++ b/internal/infrastructure/ocean-wallet/service.go @@ -0,0 +1,59 @@ +package oceanwallet + +import ( + "context" + + "github.com/ark-network/ark/internal/core/ports" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" +) + +type service struct { + addr string + conn *grpc.ClientConn + + wallet *wallet + account *account + tx *tx + notify *notify +} + +func NewService(addr string) (ports.WalletService, error) { + conn, err := grpc.Dial(addr, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + return nil, err + } + svc := &service{ + addr: addr, + conn: conn, + wallet: newWallet(conn), + account: newAccount(conn), + tx: newTx(conn), + } + if _, err := svc.Wallet().Status(context.Background()); err != nil { + return nil, err + } + svc.notify, _ = newNotify(conn) + + return svc, nil +} + +func (s *service) Wallet() ports.Wallet { + return s.wallet +} + +func (s *service) Account() ports.Account { + return s.account +} + +func (s *service) Transaction() ports.Transaction { + return s.tx +} + +func (s *service) Notification() ports.Notification { + return s.notify +} + +func (s *service) Close() { + s.conn.Close() +} diff --git a/internal/infrastructure/ocean-wallet/transaction.go b/internal/infrastructure/ocean-wallet/transaction.go new file mode 100644 index 0000000..bf22883 --- /dev/null +++ b/internal/infrastructure/ocean-wallet/transaction.go @@ -0,0 +1,127 @@ +package oceanwallet + +import ( + "context" + "fmt" + + pb "github.com/ark-network/ark/api-spec/protobuf/gen/ocean/v1" + "github.com/ark-network/ark/internal/core/ports" + "github.com/vulpemventures/go-elements/psetv2" + "google.golang.org/grpc" +) + +const msatsPerByte = 110 + +type tx struct { + client pb.TransactionServiceClient +} + +func newTx(conn *grpc.ClientConn) *tx { + return &tx{pb.NewTransactionServiceClient(conn)} +} + +func (m *tx) GetTransaction( + ctx context.Context, txid string, +) (string, error) { + res, err := m.client.GetTransaction(ctx, &pb.GetTransactionRequest{ + Txid: txid, + }) + if err != nil { + return "", err + } + return res.GetTxHex(), nil +} + +func (m *tx) UpdatePset( + ctx context.Context, pset string, + ins []ports.TxInput, outs []ports.TxOutput, +) (string, error) { + res, err := m.client.UpdatePset(ctx, &pb.UpdatePsetRequest{ + Pset: pset, + Inputs: inputList(ins).toProto(), + Outputs: outputList(outs).toProto(), + }) + if err != nil { + return "", err + } + return res.GetPset(), nil +} + +func (m *tx) SignPset( + ctx context.Context, pset string, extractRawTx bool, +) (string, error) { + res, err := m.client.SignPset(ctx, &pb.SignPsetRequest{ + Pset: pset, + }) + if err != nil { + return "", err + } + signedPset := res.GetPset() + if !extractRawTx { + return signedPset, nil + } + + ptx, _ := psetv2.NewPsetFromBase64(signedPset) + if err := psetv2.MaybeFinalizeAll(ptx); err != nil { + return "", fmt.Errorf("failed to finalize signed pset: %s", err) + } + return ptx.ToBase64() +} + +func (m *tx) Transfer( + ctx context.Context, outs []ports.TxOutput, +) (string, error) { + res, err := m.client.Transfer(ctx, &pb.TransferRequest{ + AccountName: accountLabel, + Receivers: outputList(outs).toProto(), + MillisatsPerByte: msatsPerByte, + }) + if err != nil { + return "", err + } + return res.GetTxHex(), nil +} + +func (m *tx) BroadcastTransaction( + ctx context.Context, txHex string, +) (string, error) { + res, err := m.client.BroadcastTransaction( + ctx, &pb.BroadcastTransactionRequest{ + TxHex: txHex, + }, + ) + if err != nil { + return "", err + } + return res.GetTxid(), nil +} + +type inputList []ports.TxInput + +func (l inputList) toProto() []*pb.Input { + list := make([]*pb.Input, 0, len(l)) + for _, in := range l { + list = append(list, &pb.Input{ + Txid: in.GetTxid(), + Index: in.GetIndex(), + Script: in.GetScript(), + ScriptsigSize: uint64(in.GetScriptSigSize()), + WitnessSize: uint64(in.GetWitnessSize()), + }) + } + return list +} + +type outputList []ports.TxOutput + +func (l outputList) toProto() []*pb.Output { + list := make([]*pb.Output, 0, len(l)) + for _, out := range l { + list = append(list, &pb.Output{ + Asset: out.GetAsset(), + Amount: out.GetAmount(), + Script: out.GetScript(), + }) + } + return list +} diff --git a/internal/infrastructure/ocean-wallet/wallet.go b/internal/infrastructure/ocean-wallet/wallet.go new file mode 100644 index 0000000..acffdd6 --- /dev/null +++ b/internal/infrastructure/ocean-wallet/wallet.go @@ -0,0 +1,97 @@ +package oceanwallet + +import ( + "context" + "strings" + + pb "github.com/ark-network/ark/api-spec/protobuf/gen/ocean/v1" + "github.com/ark-network/ark/internal/core/ports" + "google.golang.org/grpc" +) + +const accountLabel = "ark" + +type wallet struct { + client pb.WalletServiceClient + accountClient pb.AccountServiceClient +} + +func newWallet(conn *grpc.ClientConn) *wallet { + return &wallet{ + pb.NewWalletServiceClient(conn), + pb.NewAccountServiceClient(conn), + } +} + +func (m *wallet) GenSeed(ctx context.Context) ([]string, error) { + res, err := m.client.GenSeed(ctx, &pb.GenSeedRequest{}) + if err != nil { + return nil, err + } + mnemonic := strings.Split(res.GetMnemonic(), " ") + + return mnemonic, nil +} + +func (m *wallet) InitWallet( + ctx context.Context, mnemonic []string, password string, +) error { + _, err := m.client.CreateWallet(ctx, &pb.CreateWalletRequest{ + Mnemonic: strings.Join(mnemonic, " "), + Password: password, + }) + return err +} + +func (m *wallet) Unlock(ctx context.Context, password string) error { + if _, err := m.client.Unlock(ctx, &pb.UnlockRequest{ + Password: password, + }); err != nil { + return err + } + // Let's always make sure the 'ark' account is created after unlocking. + info, err := m.client.GetInfo(ctx, &pb.GetInfoRequest{}) + if err != nil { + return err + } + if len(info.GetAccounts()) <= 0 { + _, err := m.accountClient.CreateAccountBIP44( + ctx, &pb.CreateAccountBIP44Request{ + Label: accountLabel, + }, + ) + return err + } + return nil +} + +func (m *wallet) Lock(ctx context.Context, password string) error { + _, err := m.client.Lock(ctx, &pb.LockRequest{ + Password: password, + }) + return err +} + +func (m *wallet) Status( + ctx context.Context, +) (ports.WalletStatus, error) { + res, err := m.client.Status(ctx, &pb.StatusRequest{}) + if err != nil { + return nil, err + } + return walletStatus{res}, nil +} + +type walletStatus struct { + *pb.StatusResponse +} + +func (w walletStatus) IsInitialized() bool { + return w.StatusResponse.GetInitialized() +} +func (w walletStatus) IsUnlocked() bool { + return w.StatusResponse.GetUnlocked() +} +func (w walletStatus) IsSynced() bool { + return w.StatusResponse.GetSynced() +} diff --git a/pkg/common/appdata.go b/pkg/common/appdata.go new file mode 100644 index 0000000..6ca7a63 --- /dev/null +++ b/pkg/common/appdata.go @@ -0,0 +1,106 @@ +// Copyright (c) 2013-2017 The btcsuite developers +// Use of this source code is governed by an ISC +// license that can be found in the LICENSE file. + +package common + +import ( + "os" + "os/user" + "path/filepath" + "runtime" + "strings" + "unicode" +) + +// appDataDir returns an operating system specific directory to be used for +// storing application data for an application. See AppDataDir for more +// details. This unexported version takes an operating system argument +// primarily to enable the testing package to properly test the function by +// forcing an operating system that is not the currently one. +func appDataDir(goos, appName string, roaming bool) string { + if appName == "" || appName == "." { + return "." + } + + // The caller really shouldn't prepend the appName with a period, but + // if they do, handle it gracefully by trimming it. + appName = strings.TrimPrefix(appName, ".") + appNameUpper := string(unicode.ToUpper(rune(appName[0]))) + appName[1:] + appNameLower := string(unicode.ToLower(rune(appName[0]))) + appName[1:] + + // Get the OS specific home directory via the Go standard lib. + var homeDir string + usr, err := user.Current() + if err == nil { + homeDir = usr.HomeDir + } + + // Fall back to standard HOME environment variable that works + // for most POSIX OSes if the directory from the Go standard + // lib failed. + if err != nil || homeDir == "" { + homeDir = os.Getenv("HOME") + } + + switch goos { + // Attempt to use the LOCALAPPDATA or APPDATA environment variable on + // Windows. + case "windows": + // Windows XP and before didn't have a LOCALAPPDATA, so fallback + // to regular APPDATA when LOCALAPPDATA is not set. + appData := os.Getenv("LOCALAPPDATA") + if roaming || appData == "" { + appData = os.Getenv("APPDATA") + } + + if appData != "" { + return filepath.Join(appData, appNameUpper) + } + + case "darwin": + if homeDir != "" { + return filepath.Join(homeDir, "Library", + "Application Support", appNameUpper) + } + + case "plan9": + if homeDir != "" { + return filepath.Join(homeDir, appNameLower) + } + + default: + if homeDir != "" { + return filepath.Join(homeDir, "."+appNameLower) + } + } + + // Fall back to the current directory if all else fails. + return "." +} + +// AppDataDir returns an operating system specific directory to be used for +// storing application data for an application. +// +// The appName parameter is the name of the application the data directory is +// being requested for. This function will prepend a period to the appName for +// POSIX style operating systems since that is standard practice. An empty +// appName or one with a single dot is treated as requesting the current +// directory so only "." will be returned. Further, the first character +// of appName will be made lowercase for POSIX style operating systems and +// uppercase for Mac and Windows since that is standard practice. +// +// The roaming parameter only applies to Windows where it specifies the roaming +// application data profile (%APPDATA%) should be used instead of the local one +// (%LOCALAPPDATA%) that is used by default. +// +// Example results: +// +// dir := AppDataDir("myapp", false) +// POSIX (Linux/BSD): ~/.myapp +// Mac OS: $HOME/Library/Application Support/Myapp +// Windows: %LOCALAPPDATA%\Myapp +// Plan 9: $home/myapp +func AppDataDir(appName string, roaming bool) string { + return appDataDir(runtime.GOOS, appName, roaming) +}