diff --git a/protos/README.md b/protos/README.md new file mode 100644 index 00000000000000..f71918abaa287d --- /dev/null +++ b/protos/README.md @@ -0,0 +1,26 @@ +# Protos +This directory contains the protobuf definitions for all Aptos services. For the sake of simplifying release and minimizing potential version conflicts, we include all protos and code generated from those protos in one place. + +If you update the proto definitions in `proto/`, you can regenerate them for all languages by running this script: +``` +./scripts/build_protos.sh +``` + +Make sure you have the following deps installed: +```bash +# Install buf +brew install bufbuild/buf/buf + +# For generating Rust code +cargo install protoc-gen-prost +cargo install protoc-gen-prost-serde +cargo install protoc-gen-prost-crate +cargo install protoc-gen-tonic + +# For generating TS code +pnpm install -g protoc-gen-ts@0.8.7 + +# For generating Python code +cd python/aptos-indexer-protos +poetry install +``` diff --git a/protos/buf.rust.gen.yaml b/protos/buf.rust.gen.yaml new file mode 100644 index 00000000000000..e910b0adca580d --- /dev/null +++ b/protos/buf.rust.gen.yaml @@ -0,0 +1,20 @@ +version: v1 +managed: + enabled: true +plugins: + - name: prost + out: rust/src/pb/ + opt: + - file_descriptor_set + + - name: prost-serde + out: rust/src/pb/ + + - name: prost-crate + out: rust/src/pb/ + strategy: all + opt: + - no_features + + - name: tonic + out: rust/src/pb/ diff --git a/protos/buf.ts.gen.yaml b/protos/buf.ts.gen.yaml new file mode 100644 index 00000000000000..e9ed7bce3349f4 --- /dev/null +++ b/protos/buf.ts.gen.yaml @@ -0,0 +1,19 @@ +version: v1 +managed: + enabled: true +plugins: + - plugin: buf.build/community/stephenh-ts-proto + out: typescript/src + opt: + # See an explanation of these options here: + # https://github.com/stephenh/ts-proto + - outputServices=grpc-js + - outputIndex=true + - esModuleInterop=true + - forceLong=bigint + - useOptionals=all + - addGrpcMetadata=true + - useAsyncIterable=true + - useMapType=true + # https://github.com/stephenh/ts-proto/issues/449 + - useExactTypes=false diff --git a/protos/buf.work.yaml b/protos/buf.work.yaml new file mode 100644 index 00000000000000..1878b341beb5ed --- /dev/null +++ b/protos/buf.work.yaml @@ -0,0 +1,3 @@ +version: v1 +directories: + - proto diff --git a/protos/proto/aptos/bigquery_schema/v1/transaction.proto b/protos/proto/aptos/bigquery_schema/v1/transaction.proto new file mode 100644 index 00000000000000..20ec9be5f076ca --- /dev/null +++ b/protos/proto/aptos/bigquery_schema/v1/transaction.proto @@ -0,0 +1,33 @@ +// Copyright © Aptos Foundation +// SPDX-License-Identifier: Apache-2.0 + +// Proto2 is required. +// Current BigQuery runs over proto2, thus optional(nullable) +// field with default value will be ignored. For example, +// `int64 value = null` will be translated to 0 under column `value`. +// To avoid any analytics hassle, proto2 is required here. +syntax = "proto2"; + +package aptos.bigquery_schema.transaction.v1; + +// Transaction is a simplified representation for the transaction +// happened on the chain. Mainly built for streaming into BigQuery. +// It matches with the structure defined for the transaction in Indexer. +message Transaction { + required int64 version = 1; + required int64 block_height = 2; + required string hash = 3; + required string type = 4; + optional string payload = 5; + required string state_change_hash = 6; + required string event_root_hash = 7; + optional string state_checkpoint_hash = 8; + required uint64 gas_used = 9; + required bool success = 10; + required string vm_status = 11; + required string accumulator_root_hash = 12; + required int64 num_events = 13; + required int64 num_write_set_changes = 14; + required int64 epoch = 15; + required int64 inserted_at = 16; +} diff --git a/crates/aptos-protos/proto/aptos/indexer/v1/raw_data.proto b/protos/proto/aptos/indexer/v1/raw_data.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/indexer/v1/raw_data.proto rename to protos/proto/aptos/indexer/v1/raw_data.proto diff --git a/crates/aptos-protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto b/protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto rename to protos/proto/aptos/internal/fullnode/v1/fullnode_data.proto diff --git a/crates/aptos-protos/proto/aptos/remote_executor/v1/network_msg.proto b/protos/proto/aptos/remote_executor/v1/network_msg.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/remote_executor/v1/network_msg.proto rename to protos/proto/aptos/remote_executor/v1/network_msg.proto diff --git a/crates/aptos-protos/proto/aptos/transaction/v1/transaction.proto b/protos/proto/aptos/transaction/v1/transaction.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/transaction/v1/transaction.proto rename to protos/proto/aptos/transaction/v1/transaction.proto diff --git a/crates/aptos-protos/proto/aptos/util/timestamp/timestamp.proto b/protos/proto/aptos/util/timestamp/timestamp.proto similarity index 100% rename from crates/aptos-protos/proto/aptos/util/timestamp/timestamp.proto rename to protos/proto/aptos/util/timestamp/timestamp.proto diff --git a/crates/aptos-protos/proto/buf.yaml b/protos/proto/buf.yaml similarity index 100% rename from crates/aptos-protos/proto/buf.yaml rename to protos/proto/buf.yaml diff --git a/protos/python/.gitignore b/protos/python/.gitignore new file mode 100644 index 00000000000000..90572f75ee0ddc --- /dev/null +++ b/protos/python/.gitignore @@ -0,0 +1,161 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +myvenv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ diff --git a/protos/python/CHANGELOG.md b/protos/python/CHANGELOG.md new file mode 100644 index 00000000000000..9418b622443db6 --- /dev/null +++ b/protos/python/CHANGELOG.md @@ -0,0 +1,8 @@ +# Aptos Protos Changelog + +All notable changes to the Aptos Protos will be captured in this file. This changelog is written by hand for now. + +## Unreleased + +## 1.1.2 +- Initial release. diff --git a/protos/python/CONTRIBUTING.md b/protos/python/CONTRIBUTING.md new file mode 100644 index 00000000000000..1194ec185e5b3d --- /dev/null +++ b/protos/python/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Aptos Indexer Protos + +## Regenerating code +Note: This is only for debugging. For normal uses, just use scripts/build_protos.sh in the parent directory. + +Install deps: +``` +poetry install +``` + +Generate code: +``` +poetry run poe generate +``` + +## Publishing +To publish the package, follow these steps. + +First, make sure you have updated the changelog and bumped the package version if necessary. + +Configure Poetry with the PyPi credentials: +``` +poetry config pypi-token.pypi +``` + +You can get the token from our credential management system, search for PyPi. + +Build and publish: +``` +poetry publish --build +``` diff --git a/protos/python/README.md b/protos/python/README.md new file mode 100644 index 00000000000000..c3a48af3e78735 --- /dev/null +++ b/protos/python/README.md @@ -0,0 +1,18 @@ +# Aptos Indexer Protos + +This repository contains the protobuf definitions for Aptos. + +## Usage +Import generated classes like this: +```python +from aptos_protos.aptos.transaction.v1.transaction_pb2 import Transaction +``` + +Then use them like this: +```python +def parse(transaction: Transaction): + # Parse the transaction. +``` + +## Contributing +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. diff --git a/protos/python/aptos_protos/__init__.py b/protos/python/aptos_protos/__init__.py new file mode 100644 index 00000000000000..9a5f310a9de6ea --- /dev/null +++ b/protos/python/aptos_protos/__init__.py @@ -0,0 +1,7 @@ +# The following is required to make it possible to use the generated code as a package: +# https://github.com/protocolbuffers/protobuf/issues/881#issuecomment-1615919615 + +import os +import sys + +sys.path.insert(0, os.path.abspath(os.path.dirname(__file__))) diff --git a/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.py b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.py new file mode 100644 index 00000000000000..d40812b67bc1fa --- /dev/null +++ b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/bigquery_schema/v1/transaction.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n*aptos/bigquery_schema/v1/transaction.proto\x12$aptos.bigquery_schema.transaction.v1"\xe0\x02\n\x0bTransaction\x12\x0f\n\x07version\x18\x01 \x02(\x03\x12\x14\n\x0c\x62lock_height\x18\x02 \x02(\x03\x12\x0c\n\x04hash\x18\x03 \x02(\t\x12\x0c\n\x04type\x18\x04 \x02(\t\x12\x0f\n\x07payload\x18\x05 \x01(\t\x12\x19\n\x11state_change_hash\x18\x06 \x02(\t\x12\x17\n\x0f\x65vent_root_hash\x18\x07 \x02(\t\x12\x1d\n\x15state_checkpoint_hash\x18\x08 \x01(\t\x12\x10\n\x08gas_used\x18\t \x02(\x04\x12\x0f\n\x07success\x18\n \x02(\x08\x12\x11\n\tvm_status\x18\x0b \x02(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x0c \x02(\t\x12\x12\n\nnum_events\x18\r \x02(\x03\x12\x1d\n\x15num_write_set_changes\x18\x0e \x02(\x03\x12\r\n\x05\x65poch\x18\x0f \x02(\x03\x12\x13\n\x0binserted_at\x18\x10 \x02(\x03' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.bigquery_schema.v1.transaction_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals["_TRANSACTION"]._serialized_start = 85 + _globals["_TRANSACTION"]._serialized_end = 437 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.pyi b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.pyi new file mode 100644 index 00000000000000..e789d40ec12bb5 --- /dev/null +++ b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2.pyi @@ -0,0 +1,78 @@ +from typing import ClassVar as _ClassVar +from typing import Optional as _Optional + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message + +DESCRIPTOR: _descriptor.FileDescriptor + +class Transaction(_message.Message): + __slots__ = [ + "version", + "block_height", + "hash", + "type", + "payload", + "state_change_hash", + "event_root_hash", + "state_checkpoint_hash", + "gas_used", + "success", + "vm_status", + "accumulator_root_hash", + "num_events", + "num_write_set_changes", + "epoch", + "inserted_at", + ] + VERSION_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + STATE_CHANGE_HASH_FIELD_NUMBER: _ClassVar[int] + EVENT_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_HASH_FIELD_NUMBER: _ClassVar[int] + GAS_USED_FIELD_NUMBER: _ClassVar[int] + SUCCESS_FIELD_NUMBER: _ClassVar[int] + VM_STATUS_FIELD_NUMBER: _ClassVar[int] + ACCUMULATOR_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + NUM_EVENTS_FIELD_NUMBER: _ClassVar[int] + NUM_WRITE_SET_CHANGES_FIELD_NUMBER: _ClassVar[int] + EPOCH_FIELD_NUMBER: _ClassVar[int] + INSERTED_AT_FIELD_NUMBER: _ClassVar[int] + version: int + block_height: int + hash: str + type: str + payload: str + state_change_hash: str + event_root_hash: str + state_checkpoint_hash: str + gas_used: int + success: bool + vm_status: str + accumulator_root_hash: str + num_events: int + num_write_set_changes: int + epoch: int + inserted_at: int + def __init__( + self, + version: _Optional[int] = ..., + block_height: _Optional[int] = ..., + hash: _Optional[str] = ..., + type: _Optional[str] = ..., + payload: _Optional[str] = ..., + state_change_hash: _Optional[str] = ..., + event_root_hash: _Optional[str] = ..., + state_checkpoint_hash: _Optional[str] = ..., + gas_used: _Optional[int] = ..., + success: bool = ..., + vm_status: _Optional[str] = ..., + accumulator_root_hash: _Optional[str] = ..., + num_events: _Optional[int] = ..., + num_write_set_changes: _Optional[int] = ..., + epoch: _Optional[int] = ..., + inserted_at: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2_grpc.py b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2_grpc.py new file mode 100644 index 00000000000000..8a9393943bdf46 --- /dev/null +++ b/protos/python/aptos_protos/aptos/bigquery_schema/v1/transaction_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py new file mode 100644 index 00000000000000..e6348eda54c761 --- /dev/null +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/indexer/v1/raw_data.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.transaction.v1 import ( + transaction_pb2 as aptos_dot_transaction_dot_v1_dot_transaction__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n\x1f\x61ptos/indexer/v1/raw_data.proto\x12\x10\x61ptos.indexer.v1\x1a&aptos/transaction/v1/transaction.proto"\xb4\x01\n\x16GetTransactionsRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x12\x17\n\nbatch_size\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_countB\r\n\x0b_batch_size"w\n\x14TransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x42\x0b\n\t_chain_id2p\n\x07RawData\x12\x65\n\x0fGetTransactions\x12(.aptos.indexer.v1.GetTransactionsRequest\x1a&.aptos.indexer.v1.TransactionsResponse0\x01\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.indexer.v1.raw_data_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _GETTRANSACTIONSREQUEST.fields_by_name["starting_version"]._options = None + _GETTRANSACTIONSREQUEST.fields_by_name[ + "starting_version" + ]._serialized_options = b"0\001" + _GETTRANSACTIONSREQUEST.fields_by_name["transactions_count"]._options = None + _GETTRANSACTIONSREQUEST.fields_by_name[ + "transactions_count" + ]._serialized_options = b"0\001" + _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._options = None + _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._serialized_options = b"0\001" + _globals["_GETTRANSACTIONSREQUEST"]._serialized_start = 94 + _globals["_GETTRANSACTIONSREQUEST"]._serialized_end = 274 + _globals["_TRANSACTIONSRESPONSE"]._serialized_start = 276 + _globals["_TRANSACTIONSRESPONSE"]._serialized_end = 395 + _globals["_RAWDATA"]._serialized_start = 397 + _globals["_RAWDATA"]._serialized_end = 509 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi new file mode 100644 index 00000000000000..4d53fd9de6088e --- /dev/null +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2.pyi @@ -0,0 +1,43 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.transaction.v1 import transaction_pb2 as _transaction_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetTransactionsRequest(_message.Message): + __slots__ = ["starting_version", "transactions_count", "batch_size"] + STARTING_VERSION_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_COUNT_FIELD_NUMBER: _ClassVar[int] + BATCH_SIZE_FIELD_NUMBER: _ClassVar[int] + starting_version: int + transactions_count: int + batch_size: int + def __init__( + self, + starting_version: _Optional[int] = ..., + transactions_count: _Optional[int] = ..., + batch_size: _Optional[int] = ..., + ) -> None: ... + +class TransactionsResponse(_message.Message): + __slots__ = ["transactions", "chain_id"] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + transactions: _containers.RepeatedCompositeFieldContainer[ + _transaction_pb2.Transaction + ] + chain_id: int + def __init__( + self, + transactions: _Optional[ + _Iterable[_Union[_transaction_pb2.Transaction, _Mapping]] + ] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2_grpc.py b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2_grpc.py new file mode 100644 index 00000000000000..9c17321add39db --- /dev/null +++ b/protos/python/aptos_protos/aptos/indexer/v1/raw_data_pb2_grpc.py @@ -0,0 +1,78 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +from aptos.indexer.v1 import raw_data_pb2 as aptos_dot_indexer_dot_v1_dot_raw__data__pb2 + + +class RawDataStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTransactions = channel.unary_stream( + "/aptos.indexer.v1.RawData/GetTransactions", + request_serializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.SerializeToString, + response_deserializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.FromString, + ) + + +class RawDataServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetTransactions(self, request, context): + """Get transactions batch without any filtering from starting version and end if transaction count is present.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + +def add_RawDataServicer_to_server(servicer, server): + rpc_method_handlers = { + "GetTransactions": grpc.unary_stream_rpc_method_handler( + servicer.GetTransactions, + request_deserializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.FromString, + response_serializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + "aptos.indexer.v1.RawData", rpc_method_handlers + ) + server.add_generic_rpc_handlers((generic_handler,)) + + +# This class is part of an EXPERIMENTAL API. +class RawData(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTransactions( + request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None, + ): + return grpc.experimental.unary_stream( + request, + target, + "/aptos.indexer.v1.RawData/GetTransactions", + aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.SerializeToString, + aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) diff --git a/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.py b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.py new file mode 100644 index 00000000000000..454819ebde23f6 --- /dev/null +++ b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/internal/fullnode/v1/fullnode_data.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.transaction.v1 import ( + transaction_pb2 as aptos_dot_transaction_dot_v1_dot_transaction__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n.aptos/internal/fullnode/v1/fullnode_data.proto\x12\x1a\x61ptos.internal.fullnode.v1\x1a&aptos/transaction/v1/transaction.proto"M\n\x12TransactionsOutput\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction"\xf2\x01\n\x0cStreamStatus\x12\x41\n\x04type\x18\x01 \x01(\x0e\x32\x33.aptos.internal.fullnode.v1.StreamStatus.StatusType\x12\x15\n\rstart_version\x18\x02 \x01(\x04\x12\x1c\n\x0b\x65nd_version\x18\x03 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01"Z\n\nStatusType\x12\x1b\n\x17STATUS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10STATUS_TYPE_INIT\x10\x01\x12\x19\n\x15STATUS_TYPE_BATCH_END\x10\x02\x42\x0e\n\x0c_end_version"\x94\x01\n\x1eGetTransactionsFromNodeRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_count"\xb8\x01\n\x1cTransactionsFromNodeResponse\x12:\n\x06status\x18\x01 \x01(\x0b\x32(.aptos.internal.fullnode.v1.StreamStatusH\x00\x12>\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..aptos.internal.fullnode.v1.TransactionsOutputH\x00\x12\x10\n\x08\x63hain_id\x18\x03 \x01(\rB\n\n\x08response2\xa2\x01\n\x0c\x46ullnodeData\x12\x91\x01\n\x17GetTransactionsFromNode\x12:.aptos.internal.fullnode.v1.GetTransactionsFromNodeRequest\x1a\x38.aptos.internal.fullnode.v1.TransactionsFromNodeResponse0\x01\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.internal.fullnode.v1.fullnode_data_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _STREAMSTATUS.fields_by_name["end_version"]._options = None + _STREAMSTATUS.fields_by_name["end_version"]._serialized_options = b"0\001" + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name["starting_version"]._options = None + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name[ + "starting_version" + ]._serialized_options = b"0\001" + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name["transactions_count"]._options = None + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name[ + "transactions_count" + ]._serialized_options = b"0\001" + _globals["_TRANSACTIONSOUTPUT"]._serialized_start = 118 + _globals["_TRANSACTIONSOUTPUT"]._serialized_end = 195 + _globals["_STREAMSTATUS"]._serialized_start = 198 + _globals["_STREAMSTATUS"]._serialized_end = 440 + _globals["_STREAMSTATUS_STATUSTYPE"]._serialized_start = 334 + _globals["_STREAMSTATUS_STATUSTYPE"]._serialized_end = 424 + _globals["_GETTRANSACTIONSFROMNODEREQUEST"]._serialized_start = 443 + _globals["_GETTRANSACTIONSFROMNODEREQUEST"]._serialized_end = 591 + _globals["_TRANSACTIONSFROMNODERESPONSE"]._serialized_start = 594 + _globals["_TRANSACTIONSFROMNODERESPONSE"]._serialized_end = 778 + _globals["_FULLNODEDATA"]._serialized_start = 781 + _globals["_FULLNODEDATA"]._serialized_end = 943 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi new file mode 100644 index 00000000000000..cade8b80a51e8d --- /dev/null +++ b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi @@ -0,0 +1,77 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.transaction.v1 import transaction_pb2 as _transaction_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper + +DESCRIPTOR: _descriptor.FileDescriptor + +class TransactionsOutput(_message.Message): + __slots__ = ["transactions"] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + transactions: _containers.RepeatedCompositeFieldContainer[ + _transaction_pb2.Transaction + ] + def __init__( + self, + transactions: _Optional[ + _Iterable[_Union[_transaction_pb2.Transaction, _Mapping]] + ] = ..., + ) -> None: ... + +class StreamStatus(_message.Message): + __slots__ = ["type", "start_version", "end_version"] + + class StatusType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + STATUS_TYPE_UNSPECIFIED: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_INIT: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_BATCH_END: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_UNSPECIFIED: StreamStatus.StatusType + STATUS_TYPE_INIT: StreamStatus.StatusType + STATUS_TYPE_BATCH_END: StreamStatus.StatusType + TYPE_FIELD_NUMBER: _ClassVar[int] + START_VERSION_FIELD_NUMBER: _ClassVar[int] + END_VERSION_FIELD_NUMBER: _ClassVar[int] + type: StreamStatus.StatusType + start_version: int + end_version: int + def __init__( + self, + type: _Optional[_Union[StreamStatus.StatusType, str]] = ..., + start_version: _Optional[int] = ..., + end_version: _Optional[int] = ..., + ) -> None: ... + +class GetTransactionsFromNodeRequest(_message.Message): + __slots__ = ["starting_version", "transactions_count"] + STARTING_VERSION_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_COUNT_FIELD_NUMBER: _ClassVar[int] + starting_version: int + transactions_count: int + def __init__( + self, + starting_version: _Optional[int] = ..., + transactions_count: _Optional[int] = ..., + ) -> None: ... + +class TransactionsFromNodeResponse(_message.Message): + __slots__ = ["status", "data", "chain_id"] + STATUS_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + status: StreamStatus + data: TransactionsOutput + chain_id: int + def __init__( + self, + status: _Optional[_Union[StreamStatus, _Mapping]] = ..., + data: _Optional[_Union[TransactionsOutput, _Mapping]] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py new file mode 100644 index 00000000000000..bb869dab77dfd3 --- /dev/null +++ b/protos/python/aptos_protos/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py @@ -0,0 +1,80 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +from aptos.internal.fullnode.v1 import ( + fullnode_data_pb2 as aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2, +) + + +class FullnodeDataStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTransactionsFromNode = channel.unary_stream( + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + request_serializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.SerializeToString, + response_deserializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.FromString, + ) + + +class FullnodeDataServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetTransactionsFromNode(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + +def add_FullnodeDataServicer_to_server(servicer, server): + rpc_method_handlers = { + "GetTransactionsFromNode": grpc.unary_stream_rpc_method_handler( + servicer.GetTransactionsFromNode, + request_deserializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.FromString, + response_serializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + "aptos.internal.fullnode.v1.FullnodeData", rpc_method_handlers + ) + server.add_generic_rpc_handlers((generic_handler,)) + + +# This class is part of an EXPERIMENTAL API. +class FullnodeData(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTransactionsFromNode( + request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None, + ): + return grpc.experimental.unary_stream( + request, + target, + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.SerializeToString, + aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py new file mode 100644 index 00000000000000..9df32cd7712eef --- /dev/null +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.py @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/transaction/v1/transaction.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.util.timestamp import ( + timestamp_pb2 as aptos_dot_util_dot_timestamp_dot_timestamp__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n&aptos/transaction/v1/transaction.proto\x12\x14\x61ptos.transaction.v1\x1a$aptos/util/timestamp/timestamp.proto"\x9a\x01\n\x05\x42lock\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x12\n\x06height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x37\n\x0ctransactions\x18\x03 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x10\n\x08\x63hain_id\x18\x04 \x01(\r"\xcc\x05\n\x0bTransaction\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x13\n\x07version\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x33\n\x04info\x18\x03 \x01(\x0b\x32%.aptos.transaction.v1.TransactionInfo\x12\x11\n\x05\x65poch\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x18\n\x0c\x62lock_height\x18\x05 \x01(\x04\x42\x02\x30\x01\x12?\n\x04type\x18\x06 \x01(\x0e\x32\x31.aptos.transaction.v1.Transaction.TransactionType\x12H\n\x0e\x62lock_metadata\x18\x07 \x01(\x0b\x32..aptos.transaction.v1.BlockMetadataTransactionH\x00\x12;\n\x07genesis\x18\x08 \x01(\x0b\x32(.aptos.transaction.v1.GenesisTransactionH\x00\x12L\n\x10state_checkpoint\x18\t \x01(\x0b\x32\x30.aptos.transaction.v1.StateCheckpointTransactionH\x00\x12\x35\n\x04user\x18\n \x01(\x0b\x32%.aptos.transaction.v1.UserTransactionH\x00"\xb8\x01\n\x0fTransactionType\x12 \n\x1cTRANSACTION_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRANSACTION_TYPE_GENESIS\x10\x01\x12#\n\x1fTRANSACTION_TYPE_BLOCK_METADATA\x10\x02\x12%\n!TRANSACTION_TYPE_STATE_CHECKPOINT\x10\x03\x12\x19\n\x15TRANSACTION_TYPE_USER\x10\x04\x42\n\n\x08txn_data"\xbe\x01\n\x18\x42lockMetadataTransaction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x05round\x18\x02 \x01(\x04\x42\x02\x30\x01\x12+\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event\x12#\n\x1bprevious_block_votes_bitvec\x18\x04 \x01(\x0c\x12\x10\n\x08proposer\x18\x05 \x01(\t\x12\x1f\n\x17\x66\x61iled_proposer_indices\x18\x06 \x03(\r"r\n\x12GenesisTransaction\x12/\n\x07payload\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x1c\n\x1aStateCheckpointTransaction"}\n\x0fUserTransaction\x12=\n\x07request\x18\x01 \x01(\x0b\x32,.aptos.transaction.v1.UserTransactionRequest\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x9f\x01\n\x05\x45vent\x12+\n\x03key\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.EventKey\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12,\n\x04type\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x10\n\x08type_str\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\t"\xa1\x02\n\x0fTransactionInfo\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x19\n\x11state_change_hash\x18\x02 \x01(\x0c\x12\x17\n\x0f\x65vent_root_hash\x18\x03 \x01(\x0c\x12"\n\x15state_checkpoint_hash\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x08gas_used\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x0f\n\x07success\x18\x06 \x01(\x08\x12\x11\n\tvm_status\x18\x07 \x01(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x08 \x01(\x0c\x12\x35\n\x07\x63hanges\x18\t \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChangeB\x18\n\x16_state_checkpoint_hash"@\n\x08\x45ventKey\x12\x1b\n\x0f\x63reation_number\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\t"\xb0\x02\n\x16UserTransactionRequest\x12\x0e\n\x06sender\x18\x01 \x01(\t\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0emax_gas_amount\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0egas_unit_price\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x42\n\x19\x65xpiration_timestamp_secs\x18\x05 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x39\n\x07payload\x18\x06 \x01(\x0b\x32(.aptos.transaction.v1.TransactionPayload\x12\x32\n\tsignature\x18\x07 \x01(\x0b\x32\x1f.aptos.transaction.v1.Signature"\xda\x02\n\x08WriteSet\x12\x43\n\x0ewrite_set_type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.WriteSet.WriteSetType\x12@\n\x10script_write_set\x18\x02 \x01(\x0b\x32$.aptos.transaction.v1.ScriptWriteSetH\x00\x12@\n\x10\x64irect_write_set\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DirectWriteSetH\x00"x\n\x0cWriteSetType\x12\x1e\n\x1aWRITE_SET_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fWRITE_SET_TYPE_SCRIPT_WRITE_SET\x10\x01\x12#\n\x1fWRITE_SET_TYPE_DIRECT_WRITE_SET\x10\x02\x42\x0b\n\twrite_set"Y\n\x0eScriptWriteSet\x12\x12\n\nexecute_as\x18\x01 \x01(\t\x12\x33\n\x06script\x18\x02 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayload"}\n\x0e\x44irectWriteSet\x12>\n\x10write_set_change\x18\x01 \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChange\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x89\x05\n\x0eWriteSetChange\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).aptos.transaction.v1.WriteSetChange.Type\x12;\n\rdelete_module\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.DeleteModuleH\x00\x12?\n\x0f\x64\x65lete_resource\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DeleteResourceH\x00\x12\x42\n\x11\x64\x65lete_table_item\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableItemH\x00\x12\x39\n\x0cwrite_module\x18\x05 \x01(\x0b\x32!.aptos.transaction.v1.WriteModuleH\x00\x12=\n\x0ewrite_resource\x18\x06 \x01(\x0b\x32#.aptos.transaction.v1.WriteResourceH\x00\x12@\n\x10write_table_item\x18\x07 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableItemH\x00"\xb5\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_DELETE_MODULE\x10\x01\x12\x18\n\x14TYPE_DELETE_RESOURCE\x10\x02\x12\x1a\n\x16TYPE_DELETE_TABLE_ITEM\x10\x03\x12\x15\n\x11TYPE_WRITE_MODULE\x10\x04\x12\x17\n\x13TYPE_WRITE_RESOURCE\x10\x05\x12\x19\n\x15TYPE_WRITE_TABLE_ITEM\x10\x06\x42\x08\n\x06\x63hange"k\n\x0c\x44\x65leteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x32\n\x06module\x18\x03 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId"~\n\x0e\x44\x65leteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t"{\n\x0f\x44\x65leteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x33\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableData"0\n\x0f\x44\x65leteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t"n\n\x0bWriteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x36\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"\x8b\x01\n\rWriteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\t"R\n\x0eWriteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x12\n\nvalue_type\x18\x04 \x01(\t"y\n\x0eWriteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x32\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableData"\xec\x04\n\x12TransactionPayload\x12;\n\x04type\x18\x01 \x01(\x0e\x32-.aptos.transaction.v1.TransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00\x12=\n\x0escript_payload\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayloadH\x00\x12J\n\x15module_bundle_payload\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.ModuleBundlePayloadH\x00\x12\x42\n\x11write_set_payload\x18\x05 \x01(\x0b\x32%.aptos.transaction.v1.WriteSetPayloadH\x00\x12\x41\n\x10multisig_payload\x18\x06 \x01(\x0b\x32%.aptos.transaction.v1.MultisigPayloadH\x00"\xad\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x12\x17\n\x13TYPE_SCRIPT_PAYLOAD\x10\x02\x12\x1e\n\x1aTYPE_MODULE_BUNDLE_PAYLOAD\x10\x03\x12\x1a\n\x16TYPE_WRITE_SET_PAYLOAD\x10\x04\x12\x19\n\x15TYPE_MULTISIG_PAYLOAD\x10\x05\x42\t\n\x07payload"\xb9\x01\n\x14\x45ntryFunctionPayload\x12\x37\n\x08\x66unction\x18\x01 \x01(\x0b\x32%.aptos.transaction.v1.EntryFunctionId\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x1d\n\x15\x65ntry_function_id_str\x18\x04 \x01(\t"W\n\x12MoveScriptBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12/\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.MoveFunction"\x92\x01\n\rScriptPayload\x12\x36\n\x04\x63ode\x18\x01 \x01(\x0b\x32(.aptos.transaction.v1.MoveScriptBytecode\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t"\x97\x01\n\x0fMultisigPayload\x12\x18\n\x10multisig_address\x18\x01 \x01(\t\x12R\n\x13transaction_payload\x18\x02 \x01(\x0b\x32\x30.aptos.transaction.v1.MultisigTransactionPayloadH\x00\x88\x01\x01\x42\x16\n\x14_transaction_payload"\xf9\x01\n\x1aMultisigTransactionPayload\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.aptos.transaction.v1.MultisigTransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00"=\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x42\t\n\x07payload"P\n\x13ModuleBundlePayload\x12\x39\n\x07modules\x18\x01 \x03(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"U\n\x12MoveModuleBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12-\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32 .aptos.transaction.v1.MoveModule"\xd2\x01\n\nMoveModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\x07\x66riends\x18\x03 \x03(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12=\n\x11\x65xposed_functions\x18\x04 \x03(\x0b\x32".aptos.transaction.v1.MoveFunction\x12\x31\n\x07structs\x18\x05 \x03(\x0b\x32 .aptos.transaction.v1.MoveStruct"\x92\x03\n\x0cMoveFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x41\n\nvisibility\x18\x02 \x01(\x0e\x32-.aptos.transaction.v1.MoveFunction.Visibility\x12\x10\n\x08is_entry\x18\x03 \x01(\x08\x12O\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x32.aptos.transaction.v1.MoveFunctionGenericTypeParam\x12.\n\x06params\x18\x05 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12.\n\x06return\x18\x06 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"n\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x02\x12\x15\n\x11VISIBILITY_FRIEND\x10\x03"\xe9\x01\n\nMoveStruct\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tis_native\x18\x02 \x01(\x08\x12\x34\n\tabilities\x18\x03 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12M\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x30.aptos.transaction.v1.MoveStructGenericTypeParam\x12\x35\n\x06\x66ields\x18\x05 \x03(\x0b\x32%.aptos.transaction.v1.MoveStructField"h\n\x1aMoveStructGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12\x12\n\nis_phantom\x18\x02 \x01(\x08"M\n\x0fMoveStructField\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x04type\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType"V\n\x1cMoveFunctionGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility"\xf8\x02\n\x08MoveType\x12-\n\x04type\x18\x01 \x01(\x0e\x32\x1f.aptos.transaction.v1.MoveTypes\x12\x30\n\x06vector\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeH\x00\x12\x35\n\x06struct\x18\x04 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTagH\x00\x12"\n\x18generic_type_param_index\x18\x05 \x01(\rH\x00\x12\x41\n\treference\x18\x06 \x01(\x0b\x32,.aptos.transaction.v1.MoveType.ReferenceTypeH\x00\x12\x14\n\nunparsable\x18\x07 \x01(\tH\x00\x1aL\n\rReferenceType\x12\x0f\n\x07mutable\x18\x01 \x01(\x08\x12*\n\x02to\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeB\t\n\x07\x63ontent"D\n\x0fWriteSetPayload\x12\x31\n\twrite_set\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet"S\n\x0f\x45ntryFunctionId\x12\x32\n\x06module\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12\x0c\n\x04name\x18\x02 \x01(\t"-\n\x0cMoveModuleId\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t"{\n\rMoveStructTag\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0e\n\x06module\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12;\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"\x95\x04\n\tSignature\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32$.aptos.transaction.v1.Signature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12@\n\x0bmulti_agent\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.MultiAgentSignatureH\x00\x12<\n\tfee_payer\x18\x05 \x01(\x0b\x32\'.aptos.transaction.v1.FeePayerSignatureH\x00\x12;\n\rsingle_sender\x18\x07 \x01(\x0b\x32".aptos.transaction.v1.SingleSenderH\x00"\x88\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x14\n\x10TYPE_MULTI_AGENT\x10\x03\x12\x12\n\x0eTYPE_FEE_PAYER\x10\x04\x12\x16\n\x12TYPE_SINGLE_SENDER\x10\x06\x42\x0b\n\tsignature"9\n\x10\x45\x64\x32\x35\x35\x31\x39Signature\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c"o\n\x15MultiEd25519Signature\x12\x13\n\x0bpublic_keys\x18\x01 \x03(\x0c\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\x11\n\tthreshold\x18\x03 \x01(\r\x12\x1a\n\x12public_key_indices\x18\x04 \x03(\r"\xb4\x01\n\x13MultiAgentSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature"\x8f\x02\n\x11\x46\x65\x65PayerSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12\x19\n\x11\x66\x65\x65_payer_address\x18\x04 \x01(\t\x12@\n\x10\x66\x65\x65_payer_signer\x18\x05 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xa3\x01\n\x0c\x41nyPublicKey\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnyPublicKey.Type\x12\x12\n\npublic_key\x18\x02 \x01(\x0c"H\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02"\xa2\x01\n\x0c\x41nySignature\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnySignature.Type\x12\x11\n\tsignature\x18\x02 \x01(\x0c"H\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02"\x83\x01\n\x12SingleKeySignature\x12\x36\n\npublic_key\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"X\n\x10IndexedSignature\x12\r\n\x05index\x18\x01 \x01(\r\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"\xa5\x01\n\x11MultiKeySignature\x12\x37\n\x0bpublic_keys\x18\x01 \x03(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12:\n\nsignatures\x18\x02 \x03(\x0b\x32&.aptos.transaction.v1.IndexedSignature\x12\x1b\n\x13signatures_required\x18\x03 \x01(\r"F\n\x0cSingleSender\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xde\x03\n\x10\x41\x63\x63ountSignature\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.AccountSignature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12H\n\x14single_key_signature\x18\x05 \x01(\x0b\x32(.aptos.transaction.v1.SingleKeySignatureH\x00\x12\x46\n\x13multi_key_signature\x18\x06 \x01(\x0b\x32\'.aptos.transaction.v1.MultiKeySignatureH\x00"o\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x13\n\x0fTYPE_SINGLE_KEY\x10\x04\x12\x12\n\x0eTYPE_MULTI_KEY\x10\x05\x42\x0b\n\tsignature*\xea\x02\n\tMoveTypes\x12\x1a\n\x16MOVE_TYPES_UNSPECIFIED\x10\x00\x12\x13\n\x0fMOVE_TYPES_BOOL\x10\x01\x12\x11\n\rMOVE_TYPES_U8\x10\x02\x12\x12\n\x0eMOVE_TYPES_U16\x10\x0c\x12\x12\n\x0eMOVE_TYPES_U32\x10\r\x12\x12\n\x0eMOVE_TYPES_U64\x10\x03\x12\x13\n\x0fMOVE_TYPES_U128\x10\x04\x12\x13\n\x0fMOVE_TYPES_U256\x10\x0e\x12\x16\n\x12MOVE_TYPES_ADDRESS\x10\x05\x12\x15\n\x11MOVE_TYPES_SIGNER\x10\x06\x12\x15\n\x11MOVE_TYPES_VECTOR\x10\x07\x12\x15\n\x11MOVE_TYPES_STRUCT\x10\x08\x12!\n\x1dMOVE_TYPES_GENERIC_TYPE_PARAM\x10\t\x12\x18\n\x14MOVE_TYPES_REFERENCE\x10\n\x12\x19\n\x15MOVE_TYPES_UNPARSABLE\x10\x0b*\x87\x01\n\x0bMoveAbility\x12\x1c\n\x18MOVE_ABILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11MOVE_ABILITY_COPY\x10\x01\x12\x15\n\x11MOVE_ABILITY_DROP\x10\x02\x12\x16\n\x12MOVE_ABILITY_STORE\x10\x03\x12\x14\n\x10MOVE_ABILITY_KEY\x10\x04\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.transaction.v1.transaction_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _BLOCK.fields_by_name["height"]._options = None + _BLOCK.fields_by_name["height"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["version"]._options = None + _TRANSACTION.fields_by_name["version"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["epoch"]._options = None + _TRANSACTION.fields_by_name["epoch"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["block_height"]._options = None + _TRANSACTION.fields_by_name["block_height"]._serialized_options = b"0\001" + _BLOCKMETADATATRANSACTION.fields_by_name["round"]._options = None + _BLOCKMETADATATRANSACTION.fields_by_name["round"]._serialized_options = b"0\001" + _EVENT.fields_by_name["sequence_number"]._options = None + _EVENT.fields_by_name["sequence_number"]._serialized_options = b"0\001" + _TRANSACTIONINFO.fields_by_name["gas_used"]._options = None + _TRANSACTIONINFO.fields_by_name["gas_used"]._serialized_options = b"0\001" + _EVENTKEY.fields_by_name["creation_number"]._options = None + _EVENTKEY.fields_by_name["creation_number"]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["sequence_number"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "sequence_number" + ]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["max_gas_amount"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "max_gas_amount" + ]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["gas_unit_price"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "gas_unit_price" + ]._serialized_options = b"0\001" + _globals["_MOVETYPES"]._serialized_start = 10262 + _globals["_MOVETYPES"]._serialized_end = 10624 + _globals["_MOVEABILITY"]._serialized_start = 10627 + _globals["_MOVEABILITY"]._serialized_end = 10762 + _globals["_BLOCK"]._serialized_start = 103 + _globals["_BLOCK"]._serialized_end = 257 + _globals["_TRANSACTION"]._serialized_start = 260 + _globals["_TRANSACTION"]._serialized_end = 976 + _globals["_TRANSACTION_TRANSACTIONTYPE"]._serialized_start = 780 + _globals["_TRANSACTION_TRANSACTIONTYPE"]._serialized_end = 964 + _globals["_BLOCKMETADATATRANSACTION"]._serialized_start = 979 + _globals["_BLOCKMETADATATRANSACTION"]._serialized_end = 1169 + _globals["_GENESISTRANSACTION"]._serialized_start = 1171 + _globals["_GENESISTRANSACTION"]._serialized_end = 1285 + _globals["_STATECHECKPOINTTRANSACTION"]._serialized_start = 1287 + _globals["_STATECHECKPOINTTRANSACTION"]._serialized_end = 1315 + _globals["_USERTRANSACTION"]._serialized_start = 1317 + _globals["_USERTRANSACTION"]._serialized_end = 1442 + _globals["_EVENT"]._serialized_start = 1445 + _globals["_EVENT"]._serialized_end = 1604 + _globals["_TRANSACTIONINFO"]._serialized_start = 1607 + _globals["_TRANSACTIONINFO"]._serialized_end = 1896 + _globals["_EVENTKEY"]._serialized_start = 1898 + _globals["_EVENTKEY"]._serialized_end = 1962 + _globals["_USERTRANSACTIONREQUEST"]._serialized_start = 1965 + _globals["_USERTRANSACTIONREQUEST"]._serialized_end = 2269 + _globals["_WRITESET"]._serialized_start = 2272 + _globals["_WRITESET"]._serialized_end = 2618 + _globals["_WRITESET_WRITESETTYPE"]._serialized_start = 2485 + _globals["_WRITESET_WRITESETTYPE"]._serialized_end = 2605 + _globals["_SCRIPTWRITESET"]._serialized_start = 2620 + _globals["_SCRIPTWRITESET"]._serialized_end = 2709 + _globals["_DIRECTWRITESET"]._serialized_start = 2711 + _globals["_DIRECTWRITESET"]._serialized_end = 2836 + _globals["_WRITESETCHANGE"]._serialized_start = 2839 + _globals["_WRITESETCHANGE"]._serialized_end = 3488 + _globals["_WRITESETCHANGE_TYPE"]._serialized_start = 3297 + _globals["_WRITESETCHANGE_TYPE"]._serialized_end = 3478 + _globals["_DELETEMODULE"]._serialized_start = 3490 + _globals["_DELETEMODULE"]._serialized_end = 3597 + _globals["_DELETERESOURCE"]._serialized_start = 3599 + _globals["_DELETERESOURCE"]._serialized_end = 3725 + _globals["_DELETETABLEITEM"]._serialized_start = 3727 + _globals["_DELETETABLEITEM"]._serialized_end = 3850 + _globals["_DELETETABLEDATA"]._serialized_start = 3852 + _globals["_DELETETABLEDATA"]._serialized_end = 3900 + _globals["_WRITEMODULE"]._serialized_start = 3902 + _globals["_WRITEMODULE"]._serialized_end = 4012 + _globals["_WRITERESOURCE"]._serialized_start = 4015 + _globals["_WRITERESOURCE"]._serialized_end = 4154 + _globals["_WRITETABLEDATA"]._serialized_start = 4156 + _globals["_WRITETABLEDATA"]._serialized_end = 4238 + _globals["_WRITETABLEITEM"]._serialized_start = 4240 + _globals["_WRITETABLEITEM"]._serialized_end = 4361 + _globals["_TRANSACTIONPAYLOAD"]._serialized_start = 4364 + _globals["_TRANSACTIONPAYLOAD"]._serialized_end = 4984 + _globals["_TRANSACTIONPAYLOAD_TYPE"]._serialized_start = 4800 + _globals["_TRANSACTIONPAYLOAD_TYPE"]._serialized_end = 4973 + _globals["_ENTRYFUNCTIONPAYLOAD"]._serialized_start = 4987 + _globals["_ENTRYFUNCTIONPAYLOAD"]._serialized_end = 5172 + _globals["_MOVESCRIPTBYTECODE"]._serialized_start = 5174 + _globals["_MOVESCRIPTBYTECODE"]._serialized_end = 5261 + _globals["_SCRIPTPAYLOAD"]._serialized_start = 5264 + _globals["_SCRIPTPAYLOAD"]._serialized_end = 5410 + _globals["_MULTISIGPAYLOAD"]._serialized_start = 5413 + _globals["_MULTISIGPAYLOAD"]._serialized_end = 5564 + _globals["_MULTISIGTRANSACTIONPAYLOAD"]._serialized_start = 5567 + _globals["_MULTISIGTRANSACTIONPAYLOAD"]._serialized_end = 5816 + _globals["_MULTISIGTRANSACTIONPAYLOAD_TYPE"]._serialized_start = 4800 + _globals["_MULTISIGTRANSACTIONPAYLOAD_TYPE"]._serialized_end = 4861 + _globals["_MODULEBUNDLEPAYLOAD"]._serialized_start = 5818 + _globals["_MODULEBUNDLEPAYLOAD"]._serialized_end = 5898 + _globals["_MOVEMODULEBYTECODE"]._serialized_start = 5900 + _globals["_MOVEMODULEBYTECODE"]._serialized_end = 5985 + _globals["_MOVEMODULE"]._serialized_start = 5988 + _globals["_MOVEMODULE"]._serialized_end = 6198 + _globals["_MOVEFUNCTION"]._serialized_start = 6201 + _globals["_MOVEFUNCTION"]._serialized_end = 6603 + _globals["_MOVEFUNCTION_VISIBILITY"]._serialized_start = 6493 + _globals["_MOVEFUNCTION_VISIBILITY"]._serialized_end = 6603 + _globals["_MOVESTRUCT"]._serialized_start = 6606 + _globals["_MOVESTRUCT"]._serialized_end = 6839 + _globals["_MOVESTRUCTGENERICTYPEPARAM"]._serialized_start = 6841 + _globals["_MOVESTRUCTGENERICTYPEPARAM"]._serialized_end = 6945 + _globals["_MOVESTRUCTFIELD"]._serialized_start = 6947 + _globals["_MOVESTRUCTFIELD"]._serialized_end = 7024 + _globals["_MOVEFUNCTIONGENERICTYPEPARAM"]._serialized_start = 7026 + _globals["_MOVEFUNCTIONGENERICTYPEPARAM"]._serialized_end = 7112 + _globals["_MOVETYPE"]._serialized_start = 7115 + _globals["_MOVETYPE"]._serialized_end = 7491 + _globals["_MOVETYPE_REFERENCETYPE"]._serialized_start = 7404 + _globals["_MOVETYPE_REFERENCETYPE"]._serialized_end = 7480 + _globals["_WRITESETPAYLOAD"]._serialized_start = 7493 + _globals["_WRITESETPAYLOAD"]._serialized_end = 7561 + _globals["_ENTRYFUNCTIONID"]._serialized_start = 7563 + _globals["_ENTRYFUNCTIONID"]._serialized_end = 7646 + _globals["_MOVEMODULEID"]._serialized_start = 7648 + _globals["_MOVEMODULEID"]._serialized_end = 7693 + _globals["_MOVESTRUCTTAG"]._serialized_start = 7695 + _globals["_MOVESTRUCTTAG"]._serialized_end = 7818 + _globals["_SIGNATURE"]._serialized_start = 7821 + _globals["_SIGNATURE"]._serialized_end = 8354 + _globals["_SIGNATURE_TYPE"]._serialized_start = 8205 + _globals["_SIGNATURE_TYPE"]._serialized_end = 8341 + _globals["_ED25519SIGNATURE"]._serialized_start = 8356 + _globals["_ED25519SIGNATURE"]._serialized_end = 8413 + _globals["_MULTIED25519SIGNATURE"]._serialized_start = 8415 + _globals["_MULTIED25519SIGNATURE"]._serialized_end = 8526 + _globals["_MULTIAGENTSIGNATURE"]._serialized_start = 8529 + _globals["_MULTIAGENTSIGNATURE"]._serialized_end = 8709 + _globals["_FEEPAYERSIGNATURE"]._serialized_start = 8712 + _globals["_FEEPAYERSIGNATURE"]._serialized_end = 8983 + _globals["_ANYPUBLICKEY"]._serialized_start = 8986 + _globals["_ANYPUBLICKEY"]._serialized_end = 9149 + _globals["_ANYPUBLICKEY_TYPE"]._serialized_start = 9077 + _globals["_ANYPUBLICKEY_TYPE"]._serialized_end = 9149 + _globals["_ANYSIGNATURE"]._serialized_start = 9152 + _globals["_ANYSIGNATURE"]._serialized_end = 9314 + _globals["_ANYSIGNATURE_TYPE"]._serialized_start = 9077 + _globals["_ANYSIGNATURE_TYPE"]._serialized_end = 9149 + _globals["_SINGLEKEYSIGNATURE"]._serialized_start = 9317 + _globals["_SINGLEKEYSIGNATURE"]._serialized_end = 9448 + _globals["_INDEXEDSIGNATURE"]._serialized_start = 9450 + _globals["_INDEXEDSIGNATURE"]._serialized_end = 9538 + _globals["_MULTIKEYSIGNATURE"]._serialized_start = 9541 + _globals["_MULTIKEYSIGNATURE"]._serialized_end = 9706 + _globals["_SINGLESENDER"]._serialized_start = 9708 + _globals["_SINGLESENDER"]._serialized_end = 9778 + _globals["_ACCOUNTSIGNATURE"]._serialized_start = 9781 + _globals["_ACCOUNTSIGNATURE"]._serialized_end = 10259 + _globals["_ACCOUNTSIGNATURE_TYPE"]._serialized_start = 10135 + _globals["_ACCOUNTSIGNATURE_TYPE"]._serialized_end = 10246 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi new file mode 100644 index 00000000000000..82cc1f753ca1db --- /dev/null +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2.pyi @@ -0,0 +1,1141 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.util.timestamp import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper + +DESCRIPTOR: _descriptor.FileDescriptor + +class MoveTypes(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MOVE_TYPES_UNSPECIFIED: _ClassVar[MoveTypes] + MOVE_TYPES_BOOL: _ClassVar[MoveTypes] + MOVE_TYPES_U8: _ClassVar[MoveTypes] + MOVE_TYPES_U16: _ClassVar[MoveTypes] + MOVE_TYPES_U32: _ClassVar[MoveTypes] + MOVE_TYPES_U64: _ClassVar[MoveTypes] + MOVE_TYPES_U128: _ClassVar[MoveTypes] + MOVE_TYPES_U256: _ClassVar[MoveTypes] + MOVE_TYPES_ADDRESS: _ClassVar[MoveTypes] + MOVE_TYPES_SIGNER: _ClassVar[MoveTypes] + MOVE_TYPES_VECTOR: _ClassVar[MoveTypes] + MOVE_TYPES_STRUCT: _ClassVar[MoveTypes] + MOVE_TYPES_GENERIC_TYPE_PARAM: _ClassVar[MoveTypes] + MOVE_TYPES_REFERENCE: _ClassVar[MoveTypes] + MOVE_TYPES_UNPARSABLE: _ClassVar[MoveTypes] + +class MoveAbility(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MOVE_ABILITY_UNSPECIFIED: _ClassVar[MoveAbility] + MOVE_ABILITY_COPY: _ClassVar[MoveAbility] + MOVE_ABILITY_DROP: _ClassVar[MoveAbility] + MOVE_ABILITY_STORE: _ClassVar[MoveAbility] + MOVE_ABILITY_KEY: _ClassVar[MoveAbility] + +MOVE_TYPES_UNSPECIFIED: MoveTypes +MOVE_TYPES_BOOL: MoveTypes +MOVE_TYPES_U8: MoveTypes +MOVE_TYPES_U16: MoveTypes +MOVE_TYPES_U32: MoveTypes +MOVE_TYPES_U64: MoveTypes +MOVE_TYPES_U128: MoveTypes +MOVE_TYPES_U256: MoveTypes +MOVE_TYPES_ADDRESS: MoveTypes +MOVE_TYPES_SIGNER: MoveTypes +MOVE_TYPES_VECTOR: MoveTypes +MOVE_TYPES_STRUCT: MoveTypes +MOVE_TYPES_GENERIC_TYPE_PARAM: MoveTypes +MOVE_TYPES_REFERENCE: MoveTypes +MOVE_TYPES_UNPARSABLE: MoveTypes +MOVE_ABILITY_UNSPECIFIED: MoveAbility +MOVE_ABILITY_COPY: MoveAbility +MOVE_ABILITY_DROP: MoveAbility +MOVE_ABILITY_STORE: MoveAbility +MOVE_ABILITY_KEY: MoveAbility + +class Block(_message.Message): + __slots__ = ["timestamp", "height", "transactions", "chain_id"] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + HEIGHT_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + height: int + transactions: _containers.RepeatedCompositeFieldContainer[Transaction] + chain_id: int + def __init__( + self, + timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., + height: _Optional[int] = ..., + transactions: _Optional[_Iterable[_Union[Transaction, _Mapping]]] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... + +class Transaction(_message.Message): + __slots__ = [ + "timestamp", + "version", + "info", + "epoch", + "block_height", + "type", + "block_metadata", + "genesis", + "state_checkpoint", + "user", + ] + + class TransactionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TRANSACTION_TYPE_UNSPECIFIED: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_GENESIS: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_BLOCK_METADATA: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_STATE_CHECKPOINT: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_USER: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_UNSPECIFIED: Transaction.TransactionType + TRANSACTION_TYPE_GENESIS: Transaction.TransactionType + TRANSACTION_TYPE_BLOCK_METADATA: Transaction.TransactionType + TRANSACTION_TYPE_STATE_CHECKPOINT: Transaction.TransactionType + TRANSACTION_TYPE_USER: Transaction.TransactionType + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + INFO_FIELD_NUMBER: _ClassVar[int] + EPOCH_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + BLOCK_METADATA_FIELD_NUMBER: _ClassVar[int] + GENESIS_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + version: int + info: TransactionInfo + epoch: int + block_height: int + type: Transaction.TransactionType + block_metadata: BlockMetadataTransaction + genesis: GenesisTransaction + state_checkpoint: StateCheckpointTransaction + user: UserTransaction + def __init__( + self, + timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., + version: _Optional[int] = ..., + info: _Optional[_Union[TransactionInfo, _Mapping]] = ..., + epoch: _Optional[int] = ..., + block_height: _Optional[int] = ..., + type: _Optional[_Union[Transaction.TransactionType, str]] = ..., + block_metadata: _Optional[_Union[BlockMetadataTransaction, _Mapping]] = ..., + genesis: _Optional[_Union[GenesisTransaction, _Mapping]] = ..., + state_checkpoint: _Optional[_Union[StateCheckpointTransaction, _Mapping]] = ..., + user: _Optional[_Union[UserTransaction, _Mapping]] = ..., + ) -> None: ... + +class BlockMetadataTransaction(_message.Message): + __slots__ = [ + "id", + "round", + "events", + "previous_block_votes_bitvec", + "proposer", + "failed_proposer_indices", + ] + ID_FIELD_NUMBER: _ClassVar[int] + ROUND_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + PREVIOUS_BLOCK_VOTES_BITVEC_FIELD_NUMBER: _ClassVar[int] + PROPOSER_FIELD_NUMBER: _ClassVar[int] + FAILED_PROPOSER_INDICES_FIELD_NUMBER: _ClassVar[int] + id: str + round: int + events: _containers.RepeatedCompositeFieldContainer[Event] + previous_block_votes_bitvec: bytes + proposer: str + failed_proposer_indices: _containers.RepeatedScalarFieldContainer[int] + def __init__( + self, + id: _Optional[str] = ..., + round: _Optional[int] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + previous_block_votes_bitvec: _Optional[bytes] = ..., + proposer: _Optional[str] = ..., + failed_proposer_indices: _Optional[_Iterable[int]] = ..., + ) -> None: ... + +class GenesisTransaction(_message.Message): + __slots__ = ["payload", "events"] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + payload: WriteSet + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + payload: _Optional[_Union[WriteSet, _Mapping]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class StateCheckpointTransaction(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class UserTransaction(_message.Message): + __slots__ = ["request", "events"] + REQUEST_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + request: UserTransactionRequest + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + request: _Optional[_Union[UserTransactionRequest, _Mapping]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class Event(_message.Message): + __slots__ = ["key", "sequence_number", "type", "type_str", "data"] + KEY_FIELD_NUMBER: _ClassVar[int] + SEQUENCE_NUMBER_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + key: EventKey + sequence_number: int + type: MoveType + type_str: str + data: str + def __init__( + self, + key: _Optional[_Union[EventKey, _Mapping]] = ..., + sequence_number: _Optional[int] = ..., + type: _Optional[_Union[MoveType, _Mapping]] = ..., + type_str: _Optional[str] = ..., + data: _Optional[str] = ..., + ) -> None: ... + +class TransactionInfo(_message.Message): + __slots__ = [ + "hash", + "state_change_hash", + "event_root_hash", + "state_checkpoint_hash", + "gas_used", + "success", + "vm_status", + "accumulator_root_hash", + "changes", + ] + HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHANGE_HASH_FIELD_NUMBER: _ClassVar[int] + EVENT_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_HASH_FIELD_NUMBER: _ClassVar[int] + GAS_USED_FIELD_NUMBER: _ClassVar[int] + SUCCESS_FIELD_NUMBER: _ClassVar[int] + VM_STATUS_FIELD_NUMBER: _ClassVar[int] + ACCUMULATOR_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + CHANGES_FIELD_NUMBER: _ClassVar[int] + hash: bytes + state_change_hash: bytes + event_root_hash: bytes + state_checkpoint_hash: bytes + gas_used: int + success: bool + vm_status: str + accumulator_root_hash: bytes + changes: _containers.RepeatedCompositeFieldContainer[WriteSetChange] + def __init__( + self, + hash: _Optional[bytes] = ..., + state_change_hash: _Optional[bytes] = ..., + event_root_hash: _Optional[bytes] = ..., + state_checkpoint_hash: _Optional[bytes] = ..., + gas_used: _Optional[int] = ..., + success: bool = ..., + vm_status: _Optional[str] = ..., + accumulator_root_hash: _Optional[bytes] = ..., + changes: _Optional[_Iterable[_Union[WriteSetChange, _Mapping]]] = ..., + ) -> None: ... + +class EventKey(_message.Message): + __slots__ = ["creation_number", "account_address"] + CREATION_NUMBER_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_ADDRESS_FIELD_NUMBER: _ClassVar[int] + creation_number: int + account_address: str + def __init__( + self, + creation_number: _Optional[int] = ..., + account_address: _Optional[str] = ..., + ) -> None: ... + +class UserTransactionRequest(_message.Message): + __slots__ = [ + "sender", + "sequence_number", + "max_gas_amount", + "gas_unit_price", + "expiration_timestamp_secs", + "payload", + "signature", + ] + SENDER_FIELD_NUMBER: _ClassVar[int] + SEQUENCE_NUMBER_FIELD_NUMBER: _ClassVar[int] + MAX_GAS_AMOUNT_FIELD_NUMBER: _ClassVar[int] + GAS_UNIT_PRICE_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_TIMESTAMP_SECS_FIELD_NUMBER: _ClassVar[int] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + sender: str + sequence_number: int + max_gas_amount: int + gas_unit_price: int + expiration_timestamp_secs: _timestamp_pb2.Timestamp + payload: TransactionPayload + signature: Signature + def __init__( + self, + sender: _Optional[str] = ..., + sequence_number: _Optional[int] = ..., + max_gas_amount: _Optional[int] = ..., + gas_unit_price: _Optional[int] = ..., + expiration_timestamp_secs: _Optional[ + _Union[_timestamp_pb2.Timestamp, _Mapping] + ] = ..., + payload: _Optional[_Union[TransactionPayload, _Mapping]] = ..., + signature: _Optional[_Union[Signature, _Mapping]] = ..., + ) -> None: ... + +class WriteSet(_message.Message): + __slots__ = ["write_set_type", "script_write_set", "direct_write_set"] + + class WriteSetType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + WRITE_SET_TYPE_UNSPECIFIED: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_SCRIPT_WRITE_SET: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_DIRECT_WRITE_SET: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_UNSPECIFIED: WriteSet.WriteSetType + WRITE_SET_TYPE_SCRIPT_WRITE_SET: WriteSet.WriteSetType + WRITE_SET_TYPE_DIRECT_WRITE_SET: WriteSet.WriteSetType + WRITE_SET_TYPE_FIELD_NUMBER: _ClassVar[int] + SCRIPT_WRITE_SET_FIELD_NUMBER: _ClassVar[int] + DIRECT_WRITE_SET_FIELD_NUMBER: _ClassVar[int] + write_set_type: WriteSet.WriteSetType + script_write_set: ScriptWriteSet + direct_write_set: DirectWriteSet + def __init__( + self, + write_set_type: _Optional[_Union[WriteSet.WriteSetType, str]] = ..., + script_write_set: _Optional[_Union[ScriptWriteSet, _Mapping]] = ..., + direct_write_set: _Optional[_Union[DirectWriteSet, _Mapping]] = ..., + ) -> None: ... + +class ScriptWriteSet(_message.Message): + __slots__ = ["execute_as", "script"] + EXECUTE_AS_FIELD_NUMBER: _ClassVar[int] + SCRIPT_FIELD_NUMBER: _ClassVar[int] + execute_as: str + script: ScriptPayload + def __init__( + self, + execute_as: _Optional[str] = ..., + script: _Optional[_Union[ScriptPayload, _Mapping]] = ..., + ) -> None: ... + +class DirectWriteSet(_message.Message): + __slots__ = ["write_set_change", "events"] + WRITE_SET_CHANGE_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + write_set_change: _containers.RepeatedCompositeFieldContainer[WriteSetChange] + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + write_set_change: _Optional[_Iterable[_Union[WriteSetChange, _Mapping]]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class WriteSetChange(_message.Message): + __slots__ = [ + "type", + "delete_module", + "delete_resource", + "delete_table_item", + "write_module", + "write_resource", + "write_table_item", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_MODULE: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_RESOURCE: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_TABLE_ITEM: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_MODULE: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_RESOURCE: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_TABLE_ITEM: _ClassVar[WriteSetChange.Type] + TYPE_UNSPECIFIED: WriteSetChange.Type + TYPE_DELETE_MODULE: WriteSetChange.Type + TYPE_DELETE_RESOURCE: WriteSetChange.Type + TYPE_DELETE_TABLE_ITEM: WriteSetChange.Type + TYPE_WRITE_MODULE: WriteSetChange.Type + TYPE_WRITE_RESOURCE: WriteSetChange.Type + TYPE_WRITE_TABLE_ITEM: WriteSetChange.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + DELETE_MODULE_FIELD_NUMBER: _ClassVar[int] + DELETE_RESOURCE_FIELD_NUMBER: _ClassVar[int] + DELETE_TABLE_ITEM_FIELD_NUMBER: _ClassVar[int] + WRITE_MODULE_FIELD_NUMBER: _ClassVar[int] + WRITE_RESOURCE_FIELD_NUMBER: _ClassVar[int] + WRITE_TABLE_ITEM_FIELD_NUMBER: _ClassVar[int] + type: WriteSetChange.Type + delete_module: DeleteModule + delete_resource: DeleteResource + delete_table_item: DeleteTableItem + write_module: WriteModule + write_resource: WriteResource + write_table_item: WriteTableItem + def __init__( + self, + type: _Optional[_Union[WriteSetChange.Type, str]] = ..., + delete_module: _Optional[_Union[DeleteModule, _Mapping]] = ..., + delete_resource: _Optional[_Union[DeleteResource, _Mapping]] = ..., + delete_table_item: _Optional[_Union[DeleteTableItem, _Mapping]] = ..., + write_module: _Optional[_Union[WriteModule, _Mapping]] = ..., + write_resource: _Optional[_Union[WriteResource, _Mapping]] = ..., + write_table_item: _Optional[_Union[WriteTableItem, _Mapping]] = ..., + ) -> None: ... + +class DeleteModule(_message.Message): + __slots__ = ["address", "state_key_hash", "module"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + MODULE_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + module: MoveModuleId + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + module: _Optional[_Union[MoveModuleId, _Mapping]] = ..., + ) -> None: ... + +class DeleteResource(_message.Message): + __slots__ = ["address", "state_key_hash", "type", "type_str"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + type: MoveStructTag + type_str: str + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + type: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + type_str: _Optional[str] = ..., + ) -> None: ... + +class DeleteTableItem(_message.Message): + __slots__ = ["state_key_hash", "handle", "key", "data"] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + HANDLE_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + state_key_hash: bytes + handle: str + key: str + data: DeleteTableData + def __init__( + self, + state_key_hash: _Optional[bytes] = ..., + handle: _Optional[str] = ..., + key: _Optional[str] = ..., + data: _Optional[_Union[DeleteTableData, _Mapping]] = ..., + ) -> None: ... + +class DeleteTableData(_message.Message): + __slots__ = ["key", "key_type"] + KEY_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + key: str + key_type: str + def __init__( + self, key: _Optional[str] = ..., key_type: _Optional[str] = ... + ) -> None: ... + +class WriteModule(_message.Message): + __slots__ = ["address", "state_key_hash", "data"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + data: MoveModuleBytecode + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + data: _Optional[_Union[MoveModuleBytecode, _Mapping]] = ..., + ) -> None: ... + +class WriteResource(_message.Message): + __slots__ = ["address", "state_key_hash", "type", "type_str", "data"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + type: MoveStructTag + type_str: str + data: str + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + type: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + type_str: _Optional[str] = ..., + data: _Optional[str] = ..., + ) -> None: ... + +class WriteTableData(_message.Message): + __slots__ = ["key", "key_type", "value", "value_type"] + KEY_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] + key: str + key_type: str + value: str + value_type: str + def __init__( + self, + key: _Optional[str] = ..., + key_type: _Optional[str] = ..., + value: _Optional[str] = ..., + value_type: _Optional[str] = ..., + ) -> None: ... + +class WriteTableItem(_message.Message): + __slots__ = ["state_key_hash", "handle", "key", "data"] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + HANDLE_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + state_key_hash: bytes + handle: str + key: str + data: WriteTableData + def __init__( + self, + state_key_hash: _Optional[bytes] = ..., + handle: _Optional[str] = ..., + key: _Optional[str] = ..., + data: _Optional[_Union[WriteTableData, _Mapping]] = ..., + ) -> None: ... + +class TransactionPayload(_message.Message): + __slots__ = [ + "type", + "entry_function_payload", + "script_payload", + "module_bundle_payload", + "write_set_payload", + "multisig_payload", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[TransactionPayload.Type] + TYPE_ENTRY_FUNCTION_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_SCRIPT_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_MODULE_BUNDLE_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_WRITE_SET_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_MULTISIG_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_UNSPECIFIED: TransactionPayload.Type + TYPE_ENTRY_FUNCTION_PAYLOAD: TransactionPayload.Type + TYPE_SCRIPT_PAYLOAD: TransactionPayload.Type + TYPE_MODULE_BUNDLE_PAYLOAD: TransactionPayload.Type + TYPE_WRITE_SET_PAYLOAD: TransactionPayload.Type + TYPE_MULTISIG_PAYLOAD: TransactionPayload.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + SCRIPT_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + MODULE_BUNDLE_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + WRITE_SET_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + MULTISIG_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + type: TransactionPayload.Type + entry_function_payload: EntryFunctionPayload + script_payload: ScriptPayload + module_bundle_payload: ModuleBundlePayload + write_set_payload: WriteSetPayload + multisig_payload: MultisigPayload + def __init__( + self, + type: _Optional[_Union[TransactionPayload.Type, str]] = ..., + entry_function_payload: _Optional[_Union[EntryFunctionPayload, _Mapping]] = ..., + script_payload: _Optional[_Union[ScriptPayload, _Mapping]] = ..., + module_bundle_payload: _Optional[_Union[ModuleBundlePayload, _Mapping]] = ..., + write_set_payload: _Optional[_Union[WriteSetPayload, _Mapping]] = ..., + multisig_payload: _Optional[_Union[MultisigPayload, _Mapping]] = ..., + ) -> None: ... + +class EntryFunctionPayload(_message.Message): + __slots__ = ["function", "type_arguments", "arguments", "entry_function_id_str"] + FUNCTION_FIELD_NUMBER: _ClassVar[int] + TYPE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_ID_STR_FIELD_NUMBER: _ClassVar[int] + function: EntryFunctionId + type_arguments: _containers.RepeatedCompositeFieldContainer[MoveType] + arguments: _containers.RepeatedScalarFieldContainer[str] + entry_function_id_str: str + def __init__( + self, + function: _Optional[_Union[EntryFunctionId, _Mapping]] = ..., + type_arguments: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + arguments: _Optional[_Iterable[str]] = ..., + entry_function_id_str: _Optional[str] = ..., + ) -> None: ... + +class MoveScriptBytecode(_message.Message): + __slots__ = ["bytecode", "abi"] + BYTECODE_FIELD_NUMBER: _ClassVar[int] + ABI_FIELD_NUMBER: _ClassVar[int] + bytecode: bytes + abi: MoveFunction + def __init__( + self, + bytecode: _Optional[bytes] = ..., + abi: _Optional[_Union[MoveFunction, _Mapping]] = ..., + ) -> None: ... + +class ScriptPayload(_message.Message): + __slots__ = ["code", "type_arguments", "arguments"] + CODE_FIELD_NUMBER: _ClassVar[int] + TYPE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + code: MoveScriptBytecode + type_arguments: _containers.RepeatedCompositeFieldContainer[MoveType] + arguments: _containers.RepeatedScalarFieldContainer[str] + def __init__( + self, + code: _Optional[_Union[MoveScriptBytecode, _Mapping]] = ..., + type_arguments: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + arguments: _Optional[_Iterable[str]] = ..., + ) -> None: ... + +class MultisigPayload(_message.Message): + __slots__ = ["multisig_address", "transaction_payload"] + MULTISIG_ADDRESS_FIELD_NUMBER: _ClassVar[int] + TRANSACTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + multisig_address: str + transaction_payload: MultisigTransactionPayload + def __init__( + self, + multisig_address: _Optional[str] = ..., + transaction_payload: _Optional[ + _Union[MultisigTransactionPayload, _Mapping] + ] = ..., + ) -> None: ... + +class MultisigTransactionPayload(_message.Message): + __slots__ = ["type", "entry_function_payload"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[MultisigTransactionPayload.Type] + TYPE_ENTRY_FUNCTION_PAYLOAD: _ClassVar[MultisigTransactionPayload.Type] + TYPE_UNSPECIFIED: MultisigTransactionPayload.Type + TYPE_ENTRY_FUNCTION_PAYLOAD: MultisigTransactionPayload.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + type: MultisigTransactionPayload.Type + entry_function_payload: EntryFunctionPayload + def __init__( + self, + type: _Optional[_Union[MultisigTransactionPayload.Type, str]] = ..., + entry_function_payload: _Optional[_Union[EntryFunctionPayload, _Mapping]] = ..., + ) -> None: ... + +class ModuleBundlePayload(_message.Message): + __slots__ = ["modules"] + MODULES_FIELD_NUMBER: _ClassVar[int] + modules: _containers.RepeatedCompositeFieldContainer[MoveModuleBytecode] + def __init__( + self, modules: _Optional[_Iterable[_Union[MoveModuleBytecode, _Mapping]]] = ... + ) -> None: ... + +class MoveModuleBytecode(_message.Message): + __slots__ = ["bytecode", "abi"] + BYTECODE_FIELD_NUMBER: _ClassVar[int] + ABI_FIELD_NUMBER: _ClassVar[int] + bytecode: bytes + abi: MoveModule + def __init__( + self, + bytecode: _Optional[bytes] = ..., + abi: _Optional[_Union[MoveModule, _Mapping]] = ..., + ) -> None: ... + +class MoveModule(_message.Message): + __slots__ = ["address", "name", "friends", "exposed_functions", "structs"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + FRIENDS_FIELD_NUMBER: _ClassVar[int] + EXPOSED_FUNCTIONS_FIELD_NUMBER: _ClassVar[int] + STRUCTS_FIELD_NUMBER: _ClassVar[int] + address: str + name: str + friends: _containers.RepeatedCompositeFieldContainer[MoveModuleId] + exposed_functions: _containers.RepeatedCompositeFieldContainer[MoveFunction] + structs: _containers.RepeatedCompositeFieldContainer[MoveStruct] + def __init__( + self, + address: _Optional[str] = ..., + name: _Optional[str] = ..., + friends: _Optional[_Iterable[_Union[MoveModuleId, _Mapping]]] = ..., + exposed_functions: _Optional[_Iterable[_Union[MoveFunction, _Mapping]]] = ..., + structs: _Optional[_Iterable[_Union[MoveStruct, _Mapping]]] = ..., + ) -> None: ... + +class MoveFunction(_message.Message): + __slots__ = ["name", "visibility", "is_entry", "generic_type_params", "params"] + + class Visibility(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + VISIBILITY_UNSPECIFIED: _ClassVar[MoveFunction.Visibility] + VISIBILITY_PRIVATE: _ClassVar[MoveFunction.Visibility] + VISIBILITY_PUBLIC: _ClassVar[MoveFunction.Visibility] + VISIBILITY_FRIEND: _ClassVar[MoveFunction.Visibility] + VISIBILITY_UNSPECIFIED: MoveFunction.Visibility + VISIBILITY_PRIVATE: MoveFunction.Visibility + VISIBILITY_PUBLIC: MoveFunction.Visibility + VISIBILITY_FRIEND: MoveFunction.Visibility + NAME_FIELD_NUMBER: _ClassVar[int] + VISIBILITY_FIELD_NUMBER: _ClassVar[int] + IS_ENTRY_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + PARAMS_FIELD_NUMBER: _ClassVar[int] + RETURN_FIELD_NUMBER: _ClassVar[int] + name: str + visibility: MoveFunction.Visibility + is_entry: bool + generic_type_params: _containers.RepeatedCompositeFieldContainer[ + MoveFunctionGenericTypeParam + ] + params: _containers.RepeatedCompositeFieldContainer[MoveType] + def __init__( + self, + name: _Optional[str] = ..., + visibility: _Optional[_Union[MoveFunction.Visibility, str]] = ..., + is_entry: bool = ..., + generic_type_params: _Optional[ + _Iterable[_Union[MoveFunctionGenericTypeParam, _Mapping]] + ] = ..., + params: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + **kwargs + ) -> None: ... + +class MoveStruct(_message.Message): + __slots__ = ["name", "is_native", "abilities", "generic_type_params", "fields"] + NAME_FIELD_NUMBER: _ClassVar[int] + IS_NATIVE_FIELD_NUMBER: _ClassVar[int] + ABILITIES_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + FIELDS_FIELD_NUMBER: _ClassVar[int] + name: str + is_native: bool + abilities: _containers.RepeatedScalarFieldContainer[MoveAbility] + generic_type_params: _containers.RepeatedCompositeFieldContainer[ + MoveStructGenericTypeParam + ] + fields: _containers.RepeatedCompositeFieldContainer[MoveStructField] + def __init__( + self, + name: _Optional[str] = ..., + is_native: bool = ..., + abilities: _Optional[_Iterable[_Union[MoveAbility, str]]] = ..., + generic_type_params: _Optional[ + _Iterable[_Union[MoveStructGenericTypeParam, _Mapping]] + ] = ..., + fields: _Optional[_Iterable[_Union[MoveStructField, _Mapping]]] = ..., + ) -> None: ... + +class MoveStructGenericTypeParam(_message.Message): + __slots__ = ["constraints", "is_phantom"] + CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + IS_PHANTOM_FIELD_NUMBER: _ClassVar[int] + constraints: _containers.RepeatedScalarFieldContainer[MoveAbility] + is_phantom: bool + def __init__( + self, + constraints: _Optional[_Iterable[_Union[MoveAbility, str]]] = ..., + is_phantom: bool = ..., + ) -> None: ... + +class MoveStructField(_message.Message): + __slots__ = ["name", "type"] + NAME_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + name: str + type: MoveType + def __init__( + self, + name: _Optional[str] = ..., + type: _Optional[_Union[MoveType, _Mapping]] = ..., + ) -> None: ... + +class MoveFunctionGenericTypeParam(_message.Message): + __slots__ = ["constraints"] + CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + constraints: _containers.RepeatedScalarFieldContainer[MoveAbility] + def __init__( + self, constraints: _Optional[_Iterable[_Union[MoveAbility, str]]] = ... + ) -> None: ... + +class MoveType(_message.Message): + __slots__ = [ + "type", + "vector", + "struct", + "generic_type_param_index", + "reference", + "unparsable", + ] + + class ReferenceType(_message.Message): + __slots__ = ["mutable", "to"] + MUTABLE_FIELD_NUMBER: _ClassVar[int] + TO_FIELD_NUMBER: _ClassVar[int] + mutable: bool + to: MoveType + def __init__( + self, mutable: bool = ..., to: _Optional[_Union[MoveType, _Mapping]] = ... + ) -> None: ... + TYPE_FIELD_NUMBER: _ClassVar[int] + VECTOR_FIELD_NUMBER: _ClassVar[int] + STRUCT_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAM_INDEX_FIELD_NUMBER: _ClassVar[int] + REFERENCE_FIELD_NUMBER: _ClassVar[int] + UNPARSABLE_FIELD_NUMBER: _ClassVar[int] + type: MoveTypes + vector: MoveType + struct: MoveStructTag + generic_type_param_index: int + reference: MoveType.ReferenceType + unparsable: str + def __init__( + self, + type: _Optional[_Union[MoveTypes, str]] = ..., + vector: _Optional[_Union[MoveType, _Mapping]] = ..., + struct: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + generic_type_param_index: _Optional[int] = ..., + reference: _Optional[_Union[MoveType.ReferenceType, _Mapping]] = ..., + unparsable: _Optional[str] = ..., + ) -> None: ... + +class WriteSetPayload(_message.Message): + __slots__ = ["write_set"] + WRITE_SET_FIELD_NUMBER: _ClassVar[int] + write_set: WriteSet + def __init__( + self, write_set: _Optional[_Union[WriteSet, _Mapping]] = ... + ) -> None: ... + +class EntryFunctionId(_message.Message): + __slots__ = ["module", "name"] + MODULE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + module: MoveModuleId + name: str + def __init__( + self, + module: _Optional[_Union[MoveModuleId, _Mapping]] = ..., + name: _Optional[str] = ..., + ) -> None: ... + +class MoveModuleId(_message.Message): + __slots__ = ["address", "name"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + address: str + name: str + def __init__( + self, address: _Optional[str] = ..., name: _Optional[str] = ... + ) -> None: ... + +class MoveStructTag(_message.Message): + __slots__ = ["address", "module", "name", "generic_type_params"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + MODULE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + address: str + module: str + name: str + generic_type_params: _containers.RepeatedCompositeFieldContainer[MoveType] + def __init__( + self, + address: _Optional[str] = ..., + module: _Optional[str] = ..., + name: _Optional[str] = ..., + generic_type_params: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + ) -> None: ... + +class Signature(_message.Message): + __slots__ = [ + "type", + "ed25519", + "multi_ed25519", + "multi_agent", + "fee_payer", + "single_sender", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[Signature.Type] + TYPE_ED25519: _ClassVar[Signature.Type] + TYPE_MULTI_ED25519: _ClassVar[Signature.Type] + TYPE_MULTI_AGENT: _ClassVar[Signature.Type] + TYPE_FEE_PAYER: _ClassVar[Signature.Type] + TYPE_SINGLE_SENDER: _ClassVar[Signature.Type] + TYPE_UNSPECIFIED: Signature.Type + TYPE_ED25519: Signature.Type + TYPE_MULTI_ED25519: Signature.Type + TYPE_MULTI_AGENT: Signature.Type + TYPE_FEE_PAYER: Signature.Type + TYPE_SINGLE_SENDER: Signature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_AGENT_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_FIELD_NUMBER: _ClassVar[int] + SINGLE_SENDER_FIELD_NUMBER: _ClassVar[int] + type: Signature.Type + ed25519: Ed25519Signature + multi_ed25519: MultiEd25519Signature + multi_agent: MultiAgentSignature + fee_payer: FeePayerSignature + single_sender: SingleSender + def __init__( + self, + type: _Optional[_Union[Signature.Type, str]] = ..., + ed25519: _Optional[_Union[Ed25519Signature, _Mapping]] = ..., + multi_ed25519: _Optional[_Union[MultiEd25519Signature, _Mapping]] = ..., + multi_agent: _Optional[_Union[MultiAgentSignature, _Mapping]] = ..., + fee_payer: _Optional[_Union[FeePayerSignature, _Mapping]] = ..., + single_sender: _Optional[_Union[SingleSender, _Mapping]] = ..., + ) -> None: ... + +class Ed25519Signature(_message.Message): + __slots__ = ["public_key", "signature"] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + public_key: bytes + signature: bytes + def __init__( + self, public_key: _Optional[bytes] = ..., signature: _Optional[bytes] = ... + ) -> None: ... + +class MultiEd25519Signature(_message.Message): + __slots__ = ["public_keys", "signatures", "threshold", "public_key_indices"] + PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_FIELD_NUMBER: _ClassVar[int] + THRESHOLD_FIELD_NUMBER: _ClassVar[int] + PUBLIC_KEY_INDICES_FIELD_NUMBER: _ClassVar[int] + public_keys: _containers.RepeatedScalarFieldContainer[bytes] + signatures: _containers.RepeatedScalarFieldContainer[bytes] + threshold: int + public_key_indices: _containers.RepeatedScalarFieldContainer[int] + def __init__( + self, + public_keys: _Optional[_Iterable[bytes]] = ..., + signatures: _Optional[_Iterable[bytes]] = ..., + threshold: _Optional[int] = ..., + public_key_indices: _Optional[_Iterable[int]] = ..., + ) -> None: ... + +class MultiAgentSignature(_message.Message): + __slots__ = ["sender", "secondary_signer_addresses", "secondary_signers"] + SENDER_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNER_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNERS_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + secondary_signer_addresses: _containers.RepeatedScalarFieldContainer[str] + secondary_signers: _containers.RepeatedCompositeFieldContainer[AccountSignature] + def __init__( + self, + sender: _Optional[_Union[AccountSignature, _Mapping]] = ..., + secondary_signer_addresses: _Optional[_Iterable[str]] = ..., + secondary_signers: _Optional[ + _Iterable[_Union[AccountSignature, _Mapping]] + ] = ..., + ) -> None: ... + +class FeePayerSignature(_message.Message): + __slots__ = [ + "sender", + "secondary_signer_addresses", + "secondary_signers", + "fee_payer_address", + "fee_payer_signer", + ] + SENDER_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNER_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNERS_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_ADDRESS_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_SIGNER_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + secondary_signer_addresses: _containers.RepeatedScalarFieldContainer[str] + secondary_signers: _containers.RepeatedCompositeFieldContainer[AccountSignature] + fee_payer_address: str + fee_payer_signer: AccountSignature + def __init__( + self, + sender: _Optional[_Union[AccountSignature, _Mapping]] = ..., + secondary_signer_addresses: _Optional[_Iterable[str]] = ..., + secondary_signers: _Optional[ + _Iterable[_Union[AccountSignature, _Mapping]] + ] = ..., + fee_payer_address: _Optional[str] = ..., + fee_payer_signer: _Optional[_Union[AccountSignature, _Mapping]] = ..., + ) -> None: ... + +class AnyPublicKey(_message.Message): + __slots__ = ["type", "public_key"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AnyPublicKey.Type] + TYPE_ED25519: _ClassVar[AnyPublicKey.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[AnyPublicKey.Type] + TYPE_UNSPECIFIED: AnyPublicKey.Type + TYPE_ED25519: AnyPublicKey.Type + TYPE_SECP256K1_ECDSA: AnyPublicKey.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + type: AnyPublicKey.Type + public_key: bytes + def __init__( + self, + type: _Optional[_Union[AnyPublicKey.Type, str]] = ..., + public_key: _Optional[bytes] = ..., + ) -> None: ... + +class AnySignature(_message.Message): + __slots__ = ["type", "signature"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AnySignature.Type] + TYPE_ED25519: _ClassVar[AnySignature.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[AnySignature.Type] + TYPE_UNSPECIFIED: AnySignature.Type + TYPE_ED25519: AnySignature.Type + TYPE_SECP256K1_ECDSA: AnySignature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + type: AnySignature.Type + signature: bytes + def __init__( + self, + type: _Optional[_Union[AnySignature.Type, str]] = ..., + signature: _Optional[bytes] = ..., + ) -> None: ... + +class SingleKeySignature(_message.Message): + __slots__ = ["public_key", "signature"] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + public_key: AnyPublicKey + signature: AnySignature + def __init__( + self, + public_key: _Optional[_Union[AnyPublicKey, _Mapping]] = ..., + signature: _Optional[_Union[AnySignature, _Mapping]] = ..., + ) -> None: ... + +class IndexedSignature(_message.Message): + __slots__ = ["index", "signature"] + INDEX_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + index: int + signature: AnySignature + def __init__( + self, + index: _Optional[int] = ..., + signature: _Optional[_Union[AnySignature, _Mapping]] = ..., + ) -> None: ... + +class MultiKeySignature(_message.Message): + __slots__ = ["public_keys", "signatures", "signatures_required"] + PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_REQUIRED_FIELD_NUMBER: _ClassVar[int] + public_keys: _containers.RepeatedCompositeFieldContainer[AnyPublicKey] + signatures: _containers.RepeatedCompositeFieldContainer[IndexedSignature] + signatures_required: int + def __init__( + self, + public_keys: _Optional[_Iterable[_Union[AnyPublicKey, _Mapping]]] = ..., + signatures: _Optional[_Iterable[_Union[IndexedSignature, _Mapping]]] = ..., + signatures_required: _Optional[int] = ..., + ) -> None: ... + +class SingleSender(_message.Message): + __slots__ = ["sender"] + SENDER_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + def __init__( + self, sender: _Optional[_Union[AccountSignature, _Mapping]] = ... + ) -> None: ... + +class AccountSignature(_message.Message): + __slots__ = [ + "type", + "ed25519", + "multi_ed25519", + "single_key_signature", + "multi_key_signature", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AccountSignature.Type] + TYPE_ED25519: _ClassVar[AccountSignature.Type] + TYPE_MULTI_ED25519: _ClassVar[AccountSignature.Type] + TYPE_SINGLE_KEY: _ClassVar[AccountSignature.Type] + TYPE_MULTI_KEY: _ClassVar[AccountSignature.Type] + TYPE_UNSPECIFIED: AccountSignature.Type + TYPE_ED25519: AccountSignature.Type + TYPE_MULTI_ED25519: AccountSignature.Type + TYPE_SINGLE_KEY: AccountSignature.Type + TYPE_MULTI_KEY: AccountSignature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_ED25519_FIELD_NUMBER: _ClassVar[int] + SINGLE_KEY_SIGNATURE_FIELD_NUMBER: _ClassVar[int] + MULTI_KEY_SIGNATURE_FIELD_NUMBER: _ClassVar[int] + type: AccountSignature.Type + ed25519: Ed25519Signature + multi_ed25519: MultiEd25519Signature + single_key_signature: SingleKeySignature + multi_key_signature: MultiKeySignature + def __init__( + self, + type: _Optional[_Union[AccountSignature.Type, str]] = ..., + ed25519: _Optional[_Union[Ed25519Signature, _Mapping]] = ..., + multi_ed25519: _Optional[_Union[MultiEd25519Signature, _Mapping]] = ..., + single_key_signature: _Optional[_Union[SingleKeySignature, _Mapping]] = ..., + multi_key_signature: _Optional[_Union[MultiKeySignature, _Mapping]] = ..., + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2_grpc.py b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2_grpc.py new file mode 100644 index 00000000000000..8a9393943bdf46 --- /dev/null +++ b/protos/python/aptos_protos/aptos/transaction/v1/transaction_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.py b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.py new file mode 100644 index 00000000000000..fd6c9d3812bdd6 --- /dev/null +++ b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/util/timestamp/timestamp.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n$aptos/util/timestamp/timestamp.proto\x12\x14\x61ptos.util.timestamp"+\n\tTimestamp\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.util.timestamp.timestamp_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals["_TIMESTAMP"]._serialized_start = 62 + _globals["_TIMESTAMP"]._serialized_end = 105 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.pyi b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.pyi new file mode 100644 index 00000000000000..dd64a5c7fd359d --- /dev/null +++ b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2.pyi @@ -0,0 +1,17 @@ +from typing import ClassVar as _ClassVar +from typing import Optional as _Optional + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message + +DESCRIPTOR: _descriptor.FileDescriptor + +class Timestamp(_message.Message): + __slots__ = ["seconds", "nanos"] + SECONDS_FIELD_NUMBER: _ClassVar[int] + NANOS_FIELD_NUMBER: _ClassVar[int] + seconds: int + nanos: int + def __init__( + self, seconds: _Optional[int] = ..., nanos: _Optional[int] = ... + ) -> None: ... diff --git a/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2_grpc.py b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2_grpc.py new file mode 100644 index 00000000000000..8a9393943bdf46 --- /dev/null +++ b/protos/python/aptos_protos/aptos/util/timestamp/timestamp_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2.py b/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2.py new file mode 100644 index 00000000000000..d40812b67bc1fa --- /dev/null +++ b/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/bigquery_schema/v1/transaction.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n*aptos/bigquery_schema/v1/transaction.proto\x12$aptos.bigquery_schema.transaction.v1"\xe0\x02\n\x0bTransaction\x12\x0f\n\x07version\x18\x01 \x02(\x03\x12\x14\n\x0c\x62lock_height\x18\x02 \x02(\x03\x12\x0c\n\x04hash\x18\x03 \x02(\t\x12\x0c\n\x04type\x18\x04 \x02(\t\x12\x0f\n\x07payload\x18\x05 \x01(\t\x12\x19\n\x11state_change_hash\x18\x06 \x02(\t\x12\x17\n\x0f\x65vent_root_hash\x18\x07 \x02(\t\x12\x1d\n\x15state_checkpoint_hash\x18\x08 \x01(\t\x12\x10\n\x08gas_used\x18\t \x02(\x04\x12\x0f\n\x07success\x18\n \x02(\x08\x12\x11\n\tvm_status\x18\x0b \x02(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x0c \x02(\t\x12\x12\n\nnum_events\x18\r \x02(\x03\x12\x1d\n\x15num_write_set_changes\x18\x0e \x02(\x03\x12\r\n\x05\x65poch\x18\x0f \x02(\x03\x12\x13\n\x0binserted_at\x18\x10 \x02(\x03' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.bigquery_schema.v1.transaction_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals["_TRANSACTION"]._serialized_start = 85 + _globals["_TRANSACTION"]._serialized_end = 437 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2.pyi b/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2.pyi new file mode 100644 index 00000000000000..e789d40ec12bb5 --- /dev/null +++ b/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2.pyi @@ -0,0 +1,78 @@ +from typing import ClassVar as _ClassVar +from typing import Optional as _Optional + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message + +DESCRIPTOR: _descriptor.FileDescriptor + +class Transaction(_message.Message): + __slots__ = [ + "version", + "block_height", + "hash", + "type", + "payload", + "state_change_hash", + "event_root_hash", + "state_checkpoint_hash", + "gas_used", + "success", + "vm_status", + "accumulator_root_hash", + "num_events", + "num_write_set_changes", + "epoch", + "inserted_at", + ] + VERSION_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + STATE_CHANGE_HASH_FIELD_NUMBER: _ClassVar[int] + EVENT_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_HASH_FIELD_NUMBER: _ClassVar[int] + GAS_USED_FIELD_NUMBER: _ClassVar[int] + SUCCESS_FIELD_NUMBER: _ClassVar[int] + VM_STATUS_FIELD_NUMBER: _ClassVar[int] + ACCUMULATOR_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + NUM_EVENTS_FIELD_NUMBER: _ClassVar[int] + NUM_WRITE_SET_CHANGES_FIELD_NUMBER: _ClassVar[int] + EPOCH_FIELD_NUMBER: _ClassVar[int] + INSERTED_AT_FIELD_NUMBER: _ClassVar[int] + version: int + block_height: int + hash: str + type: str + payload: str + state_change_hash: str + event_root_hash: str + state_checkpoint_hash: str + gas_used: int + success: bool + vm_status: str + accumulator_root_hash: str + num_events: int + num_write_set_changes: int + epoch: int + inserted_at: int + def __init__( + self, + version: _Optional[int] = ..., + block_height: _Optional[int] = ..., + hash: _Optional[str] = ..., + type: _Optional[str] = ..., + payload: _Optional[str] = ..., + state_change_hash: _Optional[str] = ..., + event_root_hash: _Optional[str] = ..., + state_checkpoint_hash: _Optional[str] = ..., + gas_used: _Optional[int] = ..., + success: bool = ..., + vm_status: _Optional[str] = ..., + accumulator_root_hash: _Optional[str] = ..., + num_events: _Optional[int] = ..., + num_write_set_changes: _Optional[int] = ..., + epoch: _Optional[int] = ..., + inserted_at: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2_grpc.py b/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2_grpc.py new file mode 100644 index 00000000000000..8a9393943bdf46 --- /dev/null +++ b/protos/python/blah/aptos/bigquery_schema/v1/transaction_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/blah/aptos/indexer/v1/raw_data_pb2.py b/protos/python/blah/aptos/indexer/v1/raw_data_pb2.py new file mode 100644 index 00000000000000..e6348eda54c761 --- /dev/null +++ b/protos/python/blah/aptos/indexer/v1/raw_data_pb2.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/indexer/v1/raw_data.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.transaction.v1 import ( + transaction_pb2 as aptos_dot_transaction_dot_v1_dot_transaction__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n\x1f\x61ptos/indexer/v1/raw_data.proto\x12\x10\x61ptos.indexer.v1\x1a&aptos/transaction/v1/transaction.proto"\xb4\x01\n\x16GetTransactionsRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x12\x17\n\nbatch_size\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_countB\r\n\x0b_batch_size"w\n\x14TransactionsResponse\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x19\n\x08\x63hain_id\x18\x02 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x42\x0b\n\t_chain_id2p\n\x07RawData\x12\x65\n\x0fGetTransactions\x12(.aptos.indexer.v1.GetTransactionsRequest\x1a&.aptos.indexer.v1.TransactionsResponse0\x01\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.indexer.v1.raw_data_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _GETTRANSACTIONSREQUEST.fields_by_name["starting_version"]._options = None + _GETTRANSACTIONSREQUEST.fields_by_name[ + "starting_version" + ]._serialized_options = b"0\001" + _GETTRANSACTIONSREQUEST.fields_by_name["transactions_count"]._options = None + _GETTRANSACTIONSREQUEST.fields_by_name[ + "transactions_count" + ]._serialized_options = b"0\001" + _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._options = None + _TRANSACTIONSRESPONSE.fields_by_name["chain_id"]._serialized_options = b"0\001" + _globals["_GETTRANSACTIONSREQUEST"]._serialized_start = 94 + _globals["_GETTRANSACTIONSREQUEST"]._serialized_end = 274 + _globals["_TRANSACTIONSRESPONSE"]._serialized_start = 276 + _globals["_TRANSACTIONSRESPONSE"]._serialized_end = 395 + _globals["_RAWDATA"]._serialized_start = 397 + _globals["_RAWDATA"]._serialized_end = 509 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/blah/aptos/indexer/v1/raw_data_pb2.pyi b/protos/python/blah/aptos/indexer/v1/raw_data_pb2.pyi new file mode 100644 index 00000000000000..4d53fd9de6088e --- /dev/null +++ b/protos/python/blah/aptos/indexer/v1/raw_data_pb2.pyi @@ -0,0 +1,43 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.transaction.v1 import transaction_pb2 as _transaction_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers + +DESCRIPTOR: _descriptor.FileDescriptor + +class GetTransactionsRequest(_message.Message): + __slots__ = ["starting_version", "transactions_count", "batch_size"] + STARTING_VERSION_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_COUNT_FIELD_NUMBER: _ClassVar[int] + BATCH_SIZE_FIELD_NUMBER: _ClassVar[int] + starting_version: int + transactions_count: int + batch_size: int + def __init__( + self, + starting_version: _Optional[int] = ..., + transactions_count: _Optional[int] = ..., + batch_size: _Optional[int] = ..., + ) -> None: ... + +class TransactionsResponse(_message.Message): + __slots__ = ["transactions", "chain_id"] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + transactions: _containers.RepeatedCompositeFieldContainer[ + _transaction_pb2.Transaction + ] + chain_id: int + def __init__( + self, + transactions: _Optional[ + _Iterable[_Union[_transaction_pb2.Transaction, _Mapping]] + ] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/blah/aptos/indexer/v1/raw_data_pb2_grpc.py b/protos/python/blah/aptos/indexer/v1/raw_data_pb2_grpc.py new file mode 100644 index 00000000000000..9c17321add39db --- /dev/null +++ b/protos/python/blah/aptos/indexer/v1/raw_data_pb2_grpc.py @@ -0,0 +1,78 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +from aptos.indexer.v1 import raw_data_pb2 as aptos_dot_indexer_dot_v1_dot_raw__data__pb2 + + +class RawDataStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTransactions = channel.unary_stream( + "/aptos.indexer.v1.RawData/GetTransactions", + request_serializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.SerializeToString, + response_deserializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.FromString, + ) + + +class RawDataServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetTransactions(self, request, context): + """Get transactions batch without any filtering from starting version and end if transaction count is present.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + +def add_RawDataServicer_to_server(servicer, server): + rpc_method_handlers = { + "GetTransactions": grpc.unary_stream_rpc_method_handler( + servicer.GetTransactions, + request_deserializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.FromString, + response_serializer=aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + "aptos.indexer.v1.RawData", rpc_method_handlers + ) + server.add_generic_rpc_handlers((generic_handler,)) + + +# This class is part of an EXPERIMENTAL API. +class RawData(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTransactions( + request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None, + ): + return grpc.experimental.unary_stream( + request, + target, + "/aptos.indexer.v1.RawData/GetTransactions", + aptos_dot_indexer_dot_v1_dot_raw__data__pb2.GetTransactionsRequest.SerializeToString, + aptos_dot_indexer_dot_v1_dot_raw__data__pb2.TransactionsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) diff --git a/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2.py b/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2.py new file mode 100644 index 00000000000000..454819ebde23f6 --- /dev/null +++ b/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/internal/fullnode/v1/fullnode_data.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.transaction.v1 import ( + transaction_pb2 as aptos_dot_transaction_dot_v1_dot_transaction__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n.aptos/internal/fullnode/v1/fullnode_data.proto\x12\x1a\x61ptos.internal.fullnode.v1\x1a&aptos/transaction/v1/transaction.proto"M\n\x12TransactionsOutput\x12\x37\n\x0ctransactions\x18\x01 \x03(\x0b\x32!.aptos.transaction.v1.Transaction"\xf2\x01\n\x0cStreamStatus\x12\x41\n\x04type\x18\x01 \x01(\x0e\x32\x33.aptos.internal.fullnode.v1.StreamStatus.StatusType\x12\x15\n\rstart_version\x18\x02 \x01(\x04\x12\x1c\n\x0b\x65nd_version\x18\x03 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01"Z\n\nStatusType\x12\x1b\n\x17STATUS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10STATUS_TYPE_INIT\x10\x01\x12\x19\n\x15STATUS_TYPE_BATCH_END\x10\x02\x42\x0e\n\x0c_end_version"\x94\x01\n\x1eGetTransactionsFromNodeRequest\x12!\n\x10starting_version\x18\x01 \x01(\x04\x42\x02\x30\x01H\x00\x88\x01\x01\x12#\n\x12transactions_count\x18\x02 \x01(\x04\x42\x02\x30\x01H\x01\x88\x01\x01\x42\x13\n\x11_starting_versionB\x15\n\x13_transactions_count"\xb8\x01\n\x1cTransactionsFromNodeResponse\x12:\n\x06status\x18\x01 \x01(\x0b\x32(.aptos.internal.fullnode.v1.StreamStatusH\x00\x12>\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..aptos.internal.fullnode.v1.TransactionsOutputH\x00\x12\x10\n\x08\x63hain_id\x18\x03 \x01(\rB\n\n\x08response2\xa2\x01\n\x0c\x46ullnodeData\x12\x91\x01\n\x17GetTransactionsFromNode\x12:.aptos.internal.fullnode.v1.GetTransactionsFromNodeRequest\x1a\x38.aptos.internal.fullnode.v1.TransactionsFromNodeResponse0\x01\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.internal.fullnode.v1.fullnode_data_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _STREAMSTATUS.fields_by_name["end_version"]._options = None + _STREAMSTATUS.fields_by_name["end_version"]._serialized_options = b"0\001" + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name["starting_version"]._options = None + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name[ + "starting_version" + ]._serialized_options = b"0\001" + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name["transactions_count"]._options = None + _GETTRANSACTIONSFROMNODEREQUEST.fields_by_name[ + "transactions_count" + ]._serialized_options = b"0\001" + _globals["_TRANSACTIONSOUTPUT"]._serialized_start = 118 + _globals["_TRANSACTIONSOUTPUT"]._serialized_end = 195 + _globals["_STREAMSTATUS"]._serialized_start = 198 + _globals["_STREAMSTATUS"]._serialized_end = 440 + _globals["_STREAMSTATUS_STATUSTYPE"]._serialized_start = 334 + _globals["_STREAMSTATUS_STATUSTYPE"]._serialized_end = 424 + _globals["_GETTRANSACTIONSFROMNODEREQUEST"]._serialized_start = 443 + _globals["_GETTRANSACTIONSFROMNODEREQUEST"]._serialized_end = 591 + _globals["_TRANSACTIONSFROMNODERESPONSE"]._serialized_start = 594 + _globals["_TRANSACTIONSFROMNODERESPONSE"]._serialized_end = 778 + _globals["_FULLNODEDATA"]._serialized_start = 781 + _globals["_FULLNODEDATA"]._serialized_end = 943 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi b/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi new file mode 100644 index 00000000000000..cade8b80a51e8d --- /dev/null +++ b/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2.pyi @@ -0,0 +1,77 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.transaction.v1 import transaction_pb2 as _transaction_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper + +DESCRIPTOR: _descriptor.FileDescriptor + +class TransactionsOutput(_message.Message): + __slots__ = ["transactions"] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + transactions: _containers.RepeatedCompositeFieldContainer[ + _transaction_pb2.Transaction + ] + def __init__( + self, + transactions: _Optional[ + _Iterable[_Union[_transaction_pb2.Transaction, _Mapping]] + ] = ..., + ) -> None: ... + +class StreamStatus(_message.Message): + __slots__ = ["type", "start_version", "end_version"] + + class StatusType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + STATUS_TYPE_UNSPECIFIED: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_INIT: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_BATCH_END: _ClassVar[StreamStatus.StatusType] + STATUS_TYPE_UNSPECIFIED: StreamStatus.StatusType + STATUS_TYPE_INIT: StreamStatus.StatusType + STATUS_TYPE_BATCH_END: StreamStatus.StatusType + TYPE_FIELD_NUMBER: _ClassVar[int] + START_VERSION_FIELD_NUMBER: _ClassVar[int] + END_VERSION_FIELD_NUMBER: _ClassVar[int] + type: StreamStatus.StatusType + start_version: int + end_version: int + def __init__( + self, + type: _Optional[_Union[StreamStatus.StatusType, str]] = ..., + start_version: _Optional[int] = ..., + end_version: _Optional[int] = ..., + ) -> None: ... + +class GetTransactionsFromNodeRequest(_message.Message): + __slots__ = ["starting_version", "transactions_count"] + STARTING_VERSION_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_COUNT_FIELD_NUMBER: _ClassVar[int] + starting_version: int + transactions_count: int + def __init__( + self, + starting_version: _Optional[int] = ..., + transactions_count: _Optional[int] = ..., + ) -> None: ... + +class TransactionsFromNodeResponse(_message.Message): + __slots__ = ["status", "data", "chain_id"] + STATUS_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + status: StreamStatus + data: TransactionsOutput + chain_id: int + def __init__( + self, + status: _Optional[_Union[StreamStatus, _Mapping]] = ..., + data: _Optional[_Union[TransactionsOutput, _Mapping]] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... diff --git a/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py b/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py new file mode 100644 index 00000000000000..bb869dab77dfd3 --- /dev/null +++ b/protos/python/blah/aptos/internal/fullnode/v1/fullnode_data_pb2_grpc.py @@ -0,0 +1,80 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +from aptos.internal.fullnode.v1 import ( + fullnode_data_pb2 as aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2, +) + + +class FullnodeDataStub(object): + """Missing associated documentation comment in .proto file.""" + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetTransactionsFromNode = channel.unary_stream( + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + request_serializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.SerializeToString, + response_deserializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.FromString, + ) + + +class FullnodeDataServicer(object): + """Missing associated documentation comment in .proto file.""" + + def GetTransactionsFromNode(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details("Method not implemented!") + raise NotImplementedError("Method not implemented!") + + +def add_FullnodeDataServicer_to_server(servicer, server): + rpc_method_handlers = { + "GetTransactionsFromNode": grpc.unary_stream_rpc_method_handler( + servicer.GetTransactionsFromNode, + request_deserializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.FromString, + response_serializer=aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + "aptos.internal.fullnode.v1.FullnodeData", rpc_method_handlers + ) + server.add_generic_rpc_handlers((generic_handler,)) + + +# This class is part of an EXPERIMENTAL API. +class FullnodeData(object): + """Missing associated documentation comment in .proto file.""" + + @staticmethod + def GetTransactionsFromNode( + request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None, + ): + return grpc.experimental.unary_stream( + request, + target, + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.GetTransactionsFromNodeRequest.SerializeToString, + aptos_dot_internal_dot_fullnode_dot_v1_dot_fullnode__data__pb2.TransactionsFromNodeResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + ) diff --git a/protos/python/blah/aptos/transaction/v1/transaction_pb2.py b/protos/python/blah/aptos/transaction/v1/transaction_pb2.py new file mode 100644 index 00000000000000..25d3c422abe571 --- /dev/null +++ b/protos/python/blah/aptos/transaction/v1/transaction_pb2.py @@ -0,0 +1,192 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/transaction/v1/transaction.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from aptos.util.timestamp import ( + timestamp_pb2 as aptos_dot_util_dot_timestamp_dot_timestamp__pb2, +) + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n&aptos/transaction/v1/transaction.proto\x12\x14\x61ptos.transaction.v1\x1a$aptos/util/timestamp/timestamp.proto"\x9a\x01\n\x05\x42lock\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x12\n\x06height\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x37\n\x0ctransactions\x18\x03 \x03(\x0b\x32!.aptos.transaction.v1.Transaction\x12\x10\n\x08\x63hain_id\x18\x04 \x01(\r"\xcc\x05\n\x0bTransaction\x12\x32\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x13\n\x07version\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x33\n\x04info\x18\x03 \x01(\x0b\x32%.aptos.transaction.v1.TransactionInfo\x12\x11\n\x05\x65poch\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x18\n\x0c\x62lock_height\x18\x05 \x01(\x04\x42\x02\x30\x01\x12?\n\x04type\x18\x06 \x01(\x0e\x32\x31.aptos.transaction.v1.Transaction.TransactionType\x12H\n\x0e\x62lock_metadata\x18\x07 \x01(\x0b\x32..aptos.transaction.v1.BlockMetadataTransactionH\x00\x12;\n\x07genesis\x18\x08 \x01(\x0b\x32(.aptos.transaction.v1.GenesisTransactionH\x00\x12L\n\x10state_checkpoint\x18\t \x01(\x0b\x32\x30.aptos.transaction.v1.StateCheckpointTransactionH\x00\x12\x35\n\x04user\x18\n \x01(\x0b\x32%.aptos.transaction.v1.UserTransactionH\x00"\xb8\x01\n\x0fTransactionType\x12 \n\x1cTRANSACTION_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRANSACTION_TYPE_GENESIS\x10\x01\x12#\n\x1fTRANSACTION_TYPE_BLOCK_METADATA\x10\x02\x12%\n!TRANSACTION_TYPE_STATE_CHECKPOINT\x10\x03\x12\x19\n\x15TRANSACTION_TYPE_USER\x10\x04\x42\n\n\x08txn_data"\xbe\x01\n\x18\x42lockMetadataTransaction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x05round\x18\x02 \x01(\x04\x42\x02\x30\x01\x12+\n\x06\x65vents\x18\x03 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event\x12#\n\x1bprevious_block_votes_bitvec\x18\x04 \x01(\x0c\x12\x10\n\x08proposer\x18\x05 \x01(\t\x12\x1f\n\x17\x66\x61iled_proposer_indices\x18\x06 \x03(\r"r\n\x12GenesisTransaction\x12/\n\x07payload\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x1c\n\x1aStateCheckpointTransaction"}\n\x0fUserTransaction\x12=\n\x07request\x18\x01 \x01(\x0b\x32,.aptos.transaction.v1.UserTransactionRequest\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x9f\x01\n\x05\x45vent\x12+\n\x03key\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.EventKey\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12,\n\x04type\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x10\n\x08type_str\x18\x05 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\t"\xa1\x02\n\x0fTransactionInfo\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x19\n\x11state_change_hash\x18\x02 \x01(\x0c\x12\x17\n\x0f\x65vent_root_hash\x18\x03 \x01(\x0c\x12"\n\x15state_checkpoint_hash\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x12\x14\n\x08gas_used\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x0f\n\x07success\x18\x06 \x01(\x08\x12\x11\n\tvm_status\x18\x07 \x01(\t\x12\x1d\n\x15\x61\x63\x63umulator_root_hash\x18\x08 \x01(\x0c\x12\x35\n\x07\x63hanges\x18\t \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChangeB\x18\n\x16_state_checkpoint_hash"@\n\x08\x45ventKey\x12\x1b\n\x0f\x63reation_number\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0f\x61\x63\x63ount_address\x18\x02 \x01(\t"\xb0\x02\n\x16UserTransactionRequest\x12\x0e\n\x06sender\x18\x01 \x01(\t\x12\x1b\n\x0fsequence_number\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0emax_gas_amount\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x1a\n\x0egas_unit_price\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x42\n\x19\x65xpiration_timestamp_secs\x18\x05 \x01(\x0b\x32\x1f.aptos.util.timestamp.Timestamp\x12\x39\n\x07payload\x18\x06 \x01(\x0b\x32(.aptos.transaction.v1.TransactionPayload\x12\x32\n\tsignature\x18\x07 \x01(\x0b\x32\x1f.aptos.transaction.v1.Signature"\xda\x02\n\x08WriteSet\x12\x43\n\x0ewrite_set_type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.WriteSet.WriteSetType\x12@\n\x10script_write_set\x18\x02 \x01(\x0b\x32$.aptos.transaction.v1.ScriptWriteSetH\x00\x12@\n\x10\x64irect_write_set\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DirectWriteSetH\x00"x\n\x0cWriteSetType\x12\x1e\n\x1aWRITE_SET_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1fWRITE_SET_TYPE_SCRIPT_WRITE_SET\x10\x01\x12#\n\x1fWRITE_SET_TYPE_DIRECT_WRITE_SET\x10\x02\x42\x0b\n\twrite_set"Y\n\x0eScriptWriteSet\x12\x12\n\nexecute_as\x18\x01 \x01(\t\x12\x33\n\x06script\x18\x02 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayload"}\n\x0e\x44irectWriteSet\x12>\n\x10write_set_change\x18\x01 \x03(\x0b\x32$.aptos.transaction.v1.WriteSetChange\x12+\n\x06\x65vents\x18\x02 \x03(\x0b\x32\x1b.aptos.transaction.v1.Event"\x89\x05\n\x0eWriteSetChange\x12\x37\n\x04type\x18\x01 \x01(\x0e\x32).aptos.transaction.v1.WriteSetChange.Type\x12;\n\rdelete_module\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.DeleteModuleH\x00\x12?\n\x0f\x64\x65lete_resource\x18\x03 \x01(\x0b\x32$.aptos.transaction.v1.DeleteResourceH\x00\x12\x42\n\x11\x64\x65lete_table_item\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableItemH\x00\x12\x39\n\x0cwrite_module\x18\x05 \x01(\x0b\x32!.aptos.transaction.v1.WriteModuleH\x00\x12=\n\x0ewrite_resource\x18\x06 \x01(\x0b\x32#.aptos.transaction.v1.WriteResourceH\x00\x12@\n\x10write_table_item\x18\x07 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableItemH\x00"\xb5\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TYPE_DELETE_MODULE\x10\x01\x12\x18\n\x14TYPE_DELETE_RESOURCE\x10\x02\x12\x1a\n\x16TYPE_DELETE_TABLE_ITEM\x10\x03\x12\x15\n\x11TYPE_WRITE_MODULE\x10\x04\x12\x17\n\x13TYPE_WRITE_RESOURCE\x10\x05\x12\x19\n\x15TYPE_WRITE_TABLE_ITEM\x10\x06\x42\x08\n\x06\x63hange"k\n\x0c\x44\x65leteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x32\n\x06module\x18\x03 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId"~\n\x0e\x44\x65leteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t"{\n\x0f\x44\x65leteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x33\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32%.aptos.transaction.v1.DeleteTableData"0\n\x0f\x44\x65leteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t"n\n\x0bWriteModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x36\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"\x8b\x01\n\rWriteResource\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x16\n\x0estate_key_hash\x18\x02 \x01(\x0c\x12\x31\n\x04type\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTag\x12\x10\n\x08type_str\x18\x04 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x05 \x01(\t"R\n\x0eWriteTableData\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x10\n\x08key_type\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x12\n\nvalue_type\x18\x04 \x01(\t"y\n\x0eWriteTableItem\x12\x16\n\x0estate_key_hash\x18\x01 \x01(\x0c\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x32\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32$.aptos.transaction.v1.WriteTableData"\xec\x04\n\x12TransactionPayload\x12;\n\x04type\x18\x01 \x01(\x0e\x32-.aptos.transaction.v1.TransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00\x12=\n\x0escript_payload\x18\x03 \x01(\x0b\x32#.aptos.transaction.v1.ScriptPayloadH\x00\x12J\n\x15module_bundle_payload\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.ModuleBundlePayloadH\x00\x12\x42\n\x11write_set_payload\x18\x05 \x01(\x0b\x32%.aptos.transaction.v1.WriteSetPayloadH\x00\x12\x41\n\x10multisig_payload\x18\x06 \x01(\x0b\x32%.aptos.transaction.v1.MultisigPayloadH\x00"\xad\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x12\x17\n\x13TYPE_SCRIPT_PAYLOAD\x10\x02\x12\x1e\n\x1aTYPE_MODULE_BUNDLE_PAYLOAD\x10\x03\x12\x1a\n\x16TYPE_WRITE_SET_PAYLOAD\x10\x04\x12\x19\n\x15TYPE_MULTISIG_PAYLOAD\x10\x05\x42\t\n\x07payload"\xb9\x01\n\x14\x45ntryFunctionPayload\x12\x37\n\x08\x66unction\x18\x01 \x01(\x0b\x32%.aptos.transaction.v1.EntryFunctionId\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t\x12\x1d\n\x15\x65ntry_function_id_str\x18\x04 \x01(\t"W\n\x12MoveScriptBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12/\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.MoveFunction"\x92\x01\n\rScriptPayload\x12\x36\n\x04\x63ode\x18\x01 \x01(\x0b\x32(.aptos.transaction.v1.MoveScriptBytecode\x12\x36\n\x0etype_arguments\x18\x02 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12\x11\n\targuments\x18\x03 \x03(\t"\x97\x01\n\x0fMultisigPayload\x12\x18\n\x10multisig_address\x18\x01 \x01(\t\x12R\n\x13transaction_payload\x18\x02 \x01(\x0b\x32\x30.aptos.transaction.v1.MultisigTransactionPayloadH\x00\x88\x01\x01\x42\x16\n\x14_transaction_payload"\xf9\x01\n\x1aMultisigTransactionPayload\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x35.aptos.transaction.v1.MultisigTransactionPayload.Type\x12L\n\x16\x65ntry_function_payload\x18\x02 \x01(\x0b\x32*.aptos.transaction.v1.EntryFunctionPayloadH\x00"=\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTYPE_ENTRY_FUNCTION_PAYLOAD\x10\x01\x42\t\n\x07payload"P\n\x13ModuleBundlePayload\x12\x39\n\x07modules\x18\x01 \x03(\x0b\x32(.aptos.transaction.v1.MoveModuleBytecode"U\n\x12MoveModuleBytecode\x12\x10\n\x08\x62ytecode\x18\x01 \x01(\x0c\x12-\n\x03\x61\x62i\x18\x02 \x01(\x0b\x32 .aptos.transaction.v1.MoveModule"\xd2\x01\n\nMoveModule\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x33\n\x07\x66riends\x18\x03 \x03(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12=\n\x11\x65xposed_functions\x18\x04 \x03(\x0b\x32".aptos.transaction.v1.MoveFunction\x12\x31\n\x07structs\x18\x05 \x03(\x0b\x32 .aptos.transaction.v1.MoveStruct"\x92\x03\n\x0cMoveFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x41\n\nvisibility\x18\x02 \x01(\x0e\x32-.aptos.transaction.v1.MoveFunction.Visibility\x12\x10\n\x08is_entry\x18\x03 \x01(\x08\x12O\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x32.aptos.transaction.v1.MoveFunctionGenericTypeParam\x12.\n\x06params\x18\x05 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType\x12.\n\x06return\x18\x06 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"n\n\nVisibility\x12\x1a\n\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\x16\n\x12VISIBILITY_PRIVATE\x10\x01\x12\x15\n\x11VISIBILITY_PUBLIC\x10\x02\x12\x15\n\x11VISIBILITY_FRIEND\x10\x03"\xe9\x01\n\nMoveStruct\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tis_native\x18\x02 \x01(\x08\x12\x34\n\tabilities\x18\x03 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12M\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x30.aptos.transaction.v1.MoveStructGenericTypeParam\x12\x35\n\x06\x66ields\x18\x05 \x03(\x0b\x32%.aptos.transaction.v1.MoveStructField"h\n\x1aMoveStructGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility\x12\x12\n\nis_phantom\x18\x02 \x01(\x08"M\n\x0fMoveStructField\x12\x0c\n\x04name\x18\x01 \x01(\t\x12,\n\x04type\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveType"V\n\x1cMoveFunctionGenericTypeParam\x12\x36\n\x0b\x63onstraints\x18\x01 \x03(\x0e\x32!.aptos.transaction.v1.MoveAbility"\xf8\x02\n\x08MoveType\x12-\n\x04type\x18\x01 \x01(\x0e\x32\x1f.aptos.transaction.v1.MoveTypes\x12\x30\n\x06vector\x18\x03 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeH\x00\x12\x35\n\x06struct\x18\x04 \x01(\x0b\x32#.aptos.transaction.v1.MoveStructTagH\x00\x12"\n\x18generic_type_param_index\x18\x05 \x01(\rH\x00\x12\x41\n\treference\x18\x06 \x01(\x0b\x32,.aptos.transaction.v1.MoveType.ReferenceTypeH\x00\x12\x14\n\nunparsable\x18\x07 \x01(\tH\x00\x1aL\n\rReferenceType\x12\x0f\n\x07mutable\x18\x01 \x01(\x08\x12*\n\x02to\x18\x02 \x01(\x0b\x32\x1e.aptos.transaction.v1.MoveTypeB\t\n\x07\x63ontent"D\n\x0fWriteSetPayload\x12\x31\n\twrite_set\x18\x01 \x01(\x0b\x32\x1e.aptos.transaction.v1.WriteSet"S\n\x0f\x45ntryFunctionId\x12\x32\n\x06module\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.MoveModuleId\x12\x0c\n\x04name\x18\x02 \x01(\t"-\n\x0cMoveModuleId\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t"{\n\rMoveStructTag\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0e\n\x06module\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12;\n\x13generic_type_params\x18\x04 \x03(\x0b\x32\x1e.aptos.transaction.v1.MoveType"\xf9\x04\n\tSignature\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32$.aptos.transaction.v1.Signature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12@\n\x0bmulti_agent\x18\x04 \x01(\x0b\x32).aptos.transaction.v1.MultiAgentSignatureH\x00\x12<\n\tfee_payer\x18\x05 \x01(\x0b\x32\'.aptos.transaction.v1.FeePayerSignatureH\x00\x12H\n\x0fsecp256k1_ecdsa\x18\x06 \x01(\x0b\x32-.aptos.transaction.v1.Secp256k1ECDSASignatureH\x00\x12;\n\rsingle_sender\x18\x07 \x01(\x0b\x32".aptos.transaction.v1.SingleSenderH\x00"\xa2\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x14\n\x10TYPE_MULTI_AGENT\x10\x03\x12\x12\n\x0eTYPE_FEE_PAYER\x10\x04\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x05\x12\x16\n\x12TYPE_SINGLE_SENDER\x10\x06\x42\x0b\n\tsignature"9\n\x10\x45\x64\x32\x35\x35\x31\x39Signature\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c"o\n\x15MultiEd25519Signature\x12\x13\n\x0bpublic_keys\x18\x01 \x03(\x0c\x12\x12\n\nsignatures\x18\x02 \x03(\x0c\x12\x11\n\tthreshold\x18\x03 \x01(\r\x12\x1a\n\x12public_key_indices\x18\x04 \x03(\r"\xb4\x01\n\x13MultiAgentSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature"\x8f\x02\n\x11\x46\x65\x65PayerSignature\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12"\n\x1asecondary_signer_addresses\x18\x02 \x03(\t\x12\x41\n\x11secondary_signers\x18\x03 \x03(\x0b\x32&.aptos.transaction.v1.AccountSignature\x12\x19\n\x11\x66\x65\x65_payer_address\x18\x04 \x01(\t\x12@\n\x10\x66\x65\x65_payer_signer\x18\x05 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"@\n\x17Secp256k1ECDSASignature\x12\x12\n\npublic_key\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\x0c"\xa3\x01\n\x0c\x41nyPublicKey\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnyPublicKey.Type\x12\x12\n\npublic_key\x18\x02 \x01(\x0c"H\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02"\xa2\x01\n\x0c\x41nySignature\x12\x35\n\x04type\x18\x01 \x01(\x0e\x32\'.aptos.transaction.v1.AnySignature.Type\x12\x11\n\tsignature\x18\x02 \x01(\x0c"H\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x02"\x83\x01\n\x12SingleKeySignature\x12\x36\n\npublic_key\x18\x01 \x01(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"X\n\x10IndexedSignature\x12\r\n\x05index\x18\x01 \x01(\r\x12\x35\n\tsignature\x18\x02 \x01(\x0b\x32".aptos.transaction.v1.AnySignature"\xa5\x01\n\x11MultiKeySignature\x12\x37\n\x0bpublic_keys\x18\x01 \x03(\x0b\x32".aptos.transaction.v1.AnyPublicKey\x12:\n\nsignatures\x18\x02 \x03(\x0b\x32&.aptos.transaction.v1.IndexedSignature\x12\x1b\n\x13signatures_required\x18\x03 \x01(\r"F\n\x0cSingleSender\x12\x36\n\x06sender\x18\x01 \x01(\x0b\x32&.aptos.transaction.v1.AccountSignature"\xc3\x04\n\x10\x41\x63\x63ountSignature\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32+.aptos.transaction.v1.AccountSignature.Type\x12\x39\n\x07\x65\x64\x32\x35\x35\x31\x39\x18\x02 \x01(\x0b\x32&.aptos.transaction.v1.Ed25519SignatureH\x00\x12\x44\n\rmulti_ed25519\x18\x03 \x01(\x0b\x32+.aptos.transaction.v1.MultiEd25519SignatureH\x00\x12H\n\x0fsecp256k1_ecdsa\x18\x04 \x01(\x0b\x32-.aptos.transaction.v1.Secp256k1ECDSASignatureH\x00\x12H\n\x14single_key_signature\x18\x05 \x01(\x0b\x32(.aptos.transaction.v1.SingleKeySignatureH\x00\x12\x46\n\x13multi_key_signature\x18\x06 \x01(\x0b\x32\'.aptos.transaction.v1.MultiKeySignatureH\x00"\x89\x01\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x10\n\x0cTYPE_ED25519\x10\x01\x12\x16\n\x12TYPE_MULTI_ED25519\x10\x02\x12\x18\n\x14TYPE_SECP256K1_ECDSA\x10\x03\x12\x13\n\x0fTYPE_SINGLE_KEY\x10\x04\x12\x12\n\x0eTYPE_MULTI_KEY\x10\x05\x42\x0b\n\tsignature*\xea\x02\n\tMoveTypes\x12\x1a\n\x16MOVE_TYPES_UNSPECIFIED\x10\x00\x12\x13\n\x0fMOVE_TYPES_BOOL\x10\x01\x12\x11\n\rMOVE_TYPES_U8\x10\x02\x12\x12\n\x0eMOVE_TYPES_U16\x10\x0c\x12\x12\n\x0eMOVE_TYPES_U32\x10\r\x12\x12\n\x0eMOVE_TYPES_U64\x10\x03\x12\x13\n\x0fMOVE_TYPES_U128\x10\x04\x12\x13\n\x0fMOVE_TYPES_U256\x10\x0e\x12\x16\n\x12MOVE_TYPES_ADDRESS\x10\x05\x12\x15\n\x11MOVE_TYPES_SIGNER\x10\x06\x12\x15\n\x11MOVE_TYPES_VECTOR\x10\x07\x12\x15\n\x11MOVE_TYPES_STRUCT\x10\x08\x12!\n\x1dMOVE_TYPES_GENERIC_TYPE_PARAM\x10\t\x12\x18\n\x14MOVE_TYPES_REFERENCE\x10\n\x12\x19\n\x15MOVE_TYPES_UNPARSABLE\x10\x0b*\x87\x01\n\x0bMoveAbility\x12\x1c\n\x18MOVE_ABILITY_UNSPECIFIED\x10\x00\x12\x15\n\x11MOVE_ABILITY_COPY\x10\x01\x12\x15\n\x11MOVE_ABILITY_DROP\x10\x02\x12\x16\n\x12MOVE_ABILITY_STORE\x10\x03\x12\x14\n\x10MOVE_ABILITY_KEY\x10\x04\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.transaction.v1.transaction_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _BLOCK.fields_by_name["height"]._options = None + _BLOCK.fields_by_name["height"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["version"]._options = None + _TRANSACTION.fields_by_name["version"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["epoch"]._options = None + _TRANSACTION.fields_by_name["epoch"]._serialized_options = b"0\001" + _TRANSACTION.fields_by_name["block_height"]._options = None + _TRANSACTION.fields_by_name["block_height"]._serialized_options = b"0\001" + _BLOCKMETADATATRANSACTION.fields_by_name["round"]._options = None + _BLOCKMETADATATRANSACTION.fields_by_name["round"]._serialized_options = b"0\001" + _EVENT.fields_by_name["sequence_number"]._options = None + _EVENT.fields_by_name["sequence_number"]._serialized_options = b"0\001" + _TRANSACTIONINFO.fields_by_name["gas_used"]._options = None + _TRANSACTIONINFO.fields_by_name["gas_used"]._serialized_options = b"0\001" + _EVENTKEY.fields_by_name["creation_number"]._options = None + _EVENTKEY.fields_by_name["creation_number"]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["sequence_number"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "sequence_number" + ]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["max_gas_amount"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "max_gas_amount" + ]._serialized_options = b"0\001" + _USERTRANSACTIONREQUEST.fields_by_name["gas_unit_price"]._options = None + _USERTRANSACTIONREQUEST.fields_by_name[ + "gas_unit_price" + ]._serialized_options = b"0\001" + _globals["_MOVETYPES"]._serialized_start = 10529 + _globals["_MOVETYPES"]._serialized_end = 10891 + _globals["_MOVEABILITY"]._serialized_start = 10894 + _globals["_MOVEABILITY"]._serialized_end = 11029 + _globals["_BLOCK"]._serialized_start = 103 + _globals["_BLOCK"]._serialized_end = 257 + _globals["_TRANSACTION"]._serialized_start = 260 + _globals["_TRANSACTION"]._serialized_end = 976 + _globals["_TRANSACTION_TRANSACTIONTYPE"]._serialized_start = 780 + _globals["_TRANSACTION_TRANSACTIONTYPE"]._serialized_end = 964 + _globals["_BLOCKMETADATATRANSACTION"]._serialized_start = 979 + _globals["_BLOCKMETADATATRANSACTION"]._serialized_end = 1169 + _globals["_GENESISTRANSACTION"]._serialized_start = 1171 + _globals["_GENESISTRANSACTION"]._serialized_end = 1285 + _globals["_STATECHECKPOINTTRANSACTION"]._serialized_start = 1287 + _globals["_STATECHECKPOINTTRANSACTION"]._serialized_end = 1315 + _globals["_USERTRANSACTION"]._serialized_start = 1317 + _globals["_USERTRANSACTION"]._serialized_end = 1442 + _globals["_EVENT"]._serialized_start = 1445 + _globals["_EVENT"]._serialized_end = 1604 + _globals["_TRANSACTIONINFO"]._serialized_start = 1607 + _globals["_TRANSACTIONINFO"]._serialized_end = 1896 + _globals["_EVENTKEY"]._serialized_start = 1898 + _globals["_EVENTKEY"]._serialized_end = 1962 + _globals["_USERTRANSACTIONREQUEST"]._serialized_start = 1965 + _globals["_USERTRANSACTIONREQUEST"]._serialized_end = 2269 + _globals["_WRITESET"]._serialized_start = 2272 + _globals["_WRITESET"]._serialized_end = 2618 + _globals["_WRITESET_WRITESETTYPE"]._serialized_start = 2485 + _globals["_WRITESET_WRITESETTYPE"]._serialized_end = 2605 + _globals["_SCRIPTWRITESET"]._serialized_start = 2620 + _globals["_SCRIPTWRITESET"]._serialized_end = 2709 + _globals["_DIRECTWRITESET"]._serialized_start = 2711 + _globals["_DIRECTWRITESET"]._serialized_end = 2836 + _globals["_WRITESETCHANGE"]._serialized_start = 2839 + _globals["_WRITESETCHANGE"]._serialized_end = 3488 + _globals["_WRITESETCHANGE_TYPE"]._serialized_start = 3297 + _globals["_WRITESETCHANGE_TYPE"]._serialized_end = 3478 + _globals["_DELETEMODULE"]._serialized_start = 3490 + _globals["_DELETEMODULE"]._serialized_end = 3597 + _globals["_DELETERESOURCE"]._serialized_start = 3599 + _globals["_DELETERESOURCE"]._serialized_end = 3725 + _globals["_DELETETABLEITEM"]._serialized_start = 3727 + _globals["_DELETETABLEITEM"]._serialized_end = 3850 + _globals["_DELETETABLEDATA"]._serialized_start = 3852 + _globals["_DELETETABLEDATA"]._serialized_end = 3900 + _globals["_WRITEMODULE"]._serialized_start = 3902 + _globals["_WRITEMODULE"]._serialized_end = 4012 + _globals["_WRITERESOURCE"]._serialized_start = 4015 + _globals["_WRITERESOURCE"]._serialized_end = 4154 + _globals["_WRITETABLEDATA"]._serialized_start = 4156 + _globals["_WRITETABLEDATA"]._serialized_end = 4238 + _globals["_WRITETABLEITEM"]._serialized_start = 4240 + _globals["_WRITETABLEITEM"]._serialized_end = 4361 + _globals["_TRANSACTIONPAYLOAD"]._serialized_start = 4364 + _globals["_TRANSACTIONPAYLOAD"]._serialized_end = 4984 + _globals["_TRANSACTIONPAYLOAD_TYPE"]._serialized_start = 4800 + _globals["_TRANSACTIONPAYLOAD_TYPE"]._serialized_end = 4973 + _globals["_ENTRYFUNCTIONPAYLOAD"]._serialized_start = 4987 + _globals["_ENTRYFUNCTIONPAYLOAD"]._serialized_end = 5172 + _globals["_MOVESCRIPTBYTECODE"]._serialized_start = 5174 + _globals["_MOVESCRIPTBYTECODE"]._serialized_end = 5261 + _globals["_SCRIPTPAYLOAD"]._serialized_start = 5264 + _globals["_SCRIPTPAYLOAD"]._serialized_end = 5410 + _globals["_MULTISIGPAYLOAD"]._serialized_start = 5413 + _globals["_MULTISIGPAYLOAD"]._serialized_end = 5564 + _globals["_MULTISIGTRANSACTIONPAYLOAD"]._serialized_start = 5567 + _globals["_MULTISIGTRANSACTIONPAYLOAD"]._serialized_end = 5816 + _globals["_MULTISIGTRANSACTIONPAYLOAD_TYPE"]._serialized_start = 4800 + _globals["_MULTISIGTRANSACTIONPAYLOAD_TYPE"]._serialized_end = 4861 + _globals["_MODULEBUNDLEPAYLOAD"]._serialized_start = 5818 + _globals["_MODULEBUNDLEPAYLOAD"]._serialized_end = 5898 + _globals["_MOVEMODULEBYTECODE"]._serialized_start = 5900 + _globals["_MOVEMODULEBYTECODE"]._serialized_end = 5985 + _globals["_MOVEMODULE"]._serialized_start = 5988 + _globals["_MOVEMODULE"]._serialized_end = 6198 + _globals["_MOVEFUNCTION"]._serialized_start = 6201 + _globals["_MOVEFUNCTION"]._serialized_end = 6603 + _globals["_MOVEFUNCTION_VISIBILITY"]._serialized_start = 6493 + _globals["_MOVEFUNCTION_VISIBILITY"]._serialized_end = 6603 + _globals["_MOVESTRUCT"]._serialized_start = 6606 + _globals["_MOVESTRUCT"]._serialized_end = 6839 + _globals["_MOVESTRUCTGENERICTYPEPARAM"]._serialized_start = 6841 + _globals["_MOVESTRUCTGENERICTYPEPARAM"]._serialized_end = 6945 + _globals["_MOVESTRUCTFIELD"]._serialized_start = 6947 + _globals["_MOVESTRUCTFIELD"]._serialized_end = 7024 + _globals["_MOVEFUNCTIONGENERICTYPEPARAM"]._serialized_start = 7026 + _globals["_MOVEFUNCTIONGENERICTYPEPARAM"]._serialized_end = 7112 + _globals["_MOVETYPE"]._serialized_start = 7115 + _globals["_MOVETYPE"]._serialized_end = 7491 + _globals["_MOVETYPE_REFERENCETYPE"]._serialized_start = 7404 + _globals["_MOVETYPE_REFERENCETYPE"]._serialized_end = 7480 + _globals["_WRITESETPAYLOAD"]._serialized_start = 7493 + _globals["_WRITESETPAYLOAD"]._serialized_end = 7561 + _globals["_ENTRYFUNCTIONID"]._serialized_start = 7563 + _globals["_ENTRYFUNCTIONID"]._serialized_end = 7646 + _globals["_MOVEMODULEID"]._serialized_start = 7648 + _globals["_MOVEMODULEID"]._serialized_end = 7693 + _globals["_MOVESTRUCTTAG"]._serialized_start = 7695 + _globals["_MOVESTRUCTTAG"]._serialized_end = 7818 + _globals["_SIGNATURE"]._serialized_start = 7821 + _globals["_SIGNATURE"]._serialized_end = 8454 + _globals["_SIGNATURE_TYPE"]._serialized_start = 8279 + _globals["_SIGNATURE_TYPE"]._serialized_end = 8441 + _globals["_ED25519SIGNATURE"]._serialized_start = 8456 + _globals["_ED25519SIGNATURE"]._serialized_end = 8513 + _globals["_MULTIED25519SIGNATURE"]._serialized_start = 8515 + _globals["_MULTIED25519SIGNATURE"]._serialized_end = 8626 + _globals["_MULTIAGENTSIGNATURE"]._serialized_start = 8629 + _globals["_MULTIAGENTSIGNATURE"]._serialized_end = 8809 + _globals["_FEEPAYERSIGNATURE"]._serialized_start = 8812 + _globals["_FEEPAYERSIGNATURE"]._serialized_end = 9083 + _globals["_SECP256K1ECDSASIGNATURE"]._serialized_start = 9085 + _globals["_SECP256K1ECDSASIGNATURE"]._serialized_end = 9149 + _globals["_ANYPUBLICKEY"]._serialized_start = 9152 + _globals["_ANYPUBLICKEY"]._serialized_end = 9315 + _globals["_ANYPUBLICKEY_TYPE"]._serialized_start = 9243 + _globals["_ANYPUBLICKEY_TYPE"]._serialized_end = 9315 + _globals["_ANYSIGNATURE"]._serialized_start = 9318 + _globals["_ANYSIGNATURE"]._serialized_end = 9480 + _globals["_ANYSIGNATURE_TYPE"]._serialized_start = 9243 + _globals["_ANYSIGNATURE_TYPE"]._serialized_end = 9315 + _globals["_SINGLEKEYSIGNATURE"]._serialized_start = 9483 + _globals["_SINGLEKEYSIGNATURE"]._serialized_end = 9614 + _globals["_INDEXEDSIGNATURE"]._serialized_start = 9616 + _globals["_INDEXEDSIGNATURE"]._serialized_end = 9704 + _globals["_MULTIKEYSIGNATURE"]._serialized_start = 9707 + _globals["_MULTIKEYSIGNATURE"]._serialized_end = 9872 + _globals["_SINGLESENDER"]._serialized_start = 9874 + _globals["_SINGLESENDER"]._serialized_end = 9944 + _globals["_ACCOUNTSIGNATURE"]._serialized_start = 9947 + _globals["_ACCOUNTSIGNATURE"]._serialized_end = 10526 + _globals["_ACCOUNTSIGNATURE_TYPE"]._serialized_start = 10376 + _globals["_ACCOUNTSIGNATURE_TYPE"]._serialized_end = 10513 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/blah/aptos/transaction/v1/transaction_pb2.pyi b/protos/python/blah/aptos/transaction/v1/transaction_pb2.pyi new file mode 100644 index 00000000000000..5fca391318775e --- /dev/null +++ b/protos/python/blah/aptos/transaction/v1/transaction_pb2.pyi @@ -0,0 +1,1163 @@ +from typing import ClassVar as _ClassVar +from typing import Iterable as _Iterable +from typing import Mapping as _Mapping +from typing import Optional as _Optional +from typing import Union as _Union + +from aptos.util.timestamp import timestamp_pb2 as _timestamp_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper + +DESCRIPTOR: _descriptor.FileDescriptor + +class MoveTypes(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MOVE_TYPES_UNSPECIFIED: _ClassVar[MoveTypes] + MOVE_TYPES_BOOL: _ClassVar[MoveTypes] + MOVE_TYPES_U8: _ClassVar[MoveTypes] + MOVE_TYPES_U16: _ClassVar[MoveTypes] + MOVE_TYPES_U32: _ClassVar[MoveTypes] + MOVE_TYPES_U64: _ClassVar[MoveTypes] + MOVE_TYPES_U128: _ClassVar[MoveTypes] + MOVE_TYPES_U256: _ClassVar[MoveTypes] + MOVE_TYPES_ADDRESS: _ClassVar[MoveTypes] + MOVE_TYPES_SIGNER: _ClassVar[MoveTypes] + MOVE_TYPES_VECTOR: _ClassVar[MoveTypes] + MOVE_TYPES_STRUCT: _ClassVar[MoveTypes] + MOVE_TYPES_GENERIC_TYPE_PARAM: _ClassVar[MoveTypes] + MOVE_TYPES_REFERENCE: _ClassVar[MoveTypes] + MOVE_TYPES_UNPARSABLE: _ClassVar[MoveTypes] + +class MoveAbility(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + MOVE_ABILITY_UNSPECIFIED: _ClassVar[MoveAbility] + MOVE_ABILITY_COPY: _ClassVar[MoveAbility] + MOVE_ABILITY_DROP: _ClassVar[MoveAbility] + MOVE_ABILITY_STORE: _ClassVar[MoveAbility] + MOVE_ABILITY_KEY: _ClassVar[MoveAbility] + +MOVE_TYPES_UNSPECIFIED: MoveTypes +MOVE_TYPES_BOOL: MoveTypes +MOVE_TYPES_U8: MoveTypes +MOVE_TYPES_U16: MoveTypes +MOVE_TYPES_U32: MoveTypes +MOVE_TYPES_U64: MoveTypes +MOVE_TYPES_U128: MoveTypes +MOVE_TYPES_U256: MoveTypes +MOVE_TYPES_ADDRESS: MoveTypes +MOVE_TYPES_SIGNER: MoveTypes +MOVE_TYPES_VECTOR: MoveTypes +MOVE_TYPES_STRUCT: MoveTypes +MOVE_TYPES_GENERIC_TYPE_PARAM: MoveTypes +MOVE_TYPES_REFERENCE: MoveTypes +MOVE_TYPES_UNPARSABLE: MoveTypes +MOVE_ABILITY_UNSPECIFIED: MoveAbility +MOVE_ABILITY_COPY: MoveAbility +MOVE_ABILITY_DROP: MoveAbility +MOVE_ABILITY_STORE: MoveAbility +MOVE_ABILITY_KEY: MoveAbility + +class Block(_message.Message): + __slots__ = ["timestamp", "height", "transactions", "chain_id"] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + HEIGHT_FIELD_NUMBER: _ClassVar[int] + TRANSACTIONS_FIELD_NUMBER: _ClassVar[int] + CHAIN_ID_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + height: int + transactions: _containers.RepeatedCompositeFieldContainer[Transaction] + chain_id: int + def __init__( + self, + timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., + height: _Optional[int] = ..., + transactions: _Optional[_Iterable[_Union[Transaction, _Mapping]]] = ..., + chain_id: _Optional[int] = ..., + ) -> None: ... + +class Transaction(_message.Message): + __slots__ = [ + "timestamp", + "version", + "info", + "epoch", + "block_height", + "type", + "block_metadata", + "genesis", + "state_checkpoint", + "user", + ] + + class TransactionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TRANSACTION_TYPE_UNSPECIFIED: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_GENESIS: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_BLOCK_METADATA: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_STATE_CHECKPOINT: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_USER: _ClassVar[Transaction.TransactionType] + TRANSACTION_TYPE_UNSPECIFIED: Transaction.TransactionType + TRANSACTION_TYPE_GENESIS: Transaction.TransactionType + TRANSACTION_TYPE_BLOCK_METADATA: Transaction.TransactionType + TRANSACTION_TYPE_STATE_CHECKPOINT: Transaction.TransactionType + TRANSACTION_TYPE_USER: Transaction.TransactionType + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + INFO_FIELD_NUMBER: _ClassVar[int] + EPOCH_FIELD_NUMBER: _ClassVar[int] + BLOCK_HEIGHT_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + BLOCK_METADATA_FIELD_NUMBER: _ClassVar[int] + GENESIS_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + version: int + info: TransactionInfo + epoch: int + block_height: int + type: Transaction.TransactionType + block_metadata: BlockMetadataTransaction + genesis: GenesisTransaction + state_checkpoint: StateCheckpointTransaction + user: UserTransaction + def __init__( + self, + timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., + version: _Optional[int] = ..., + info: _Optional[_Union[TransactionInfo, _Mapping]] = ..., + epoch: _Optional[int] = ..., + block_height: _Optional[int] = ..., + type: _Optional[_Union[Transaction.TransactionType, str]] = ..., + block_metadata: _Optional[_Union[BlockMetadataTransaction, _Mapping]] = ..., + genesis: _Optional[_Union[GenesisTransaction, _Mapping]] = ..., + state_checkpoint: _Optional[_Union[StateCheckpointTransaction, _Mapping]] = ..., + user: _Optional[_Union[UserTransaction, _Mapping]] = ..., + ) -> None: ... + +class BlockMetadataTransaction(_message.Message): + __slots__ = [ + "id", + "round", + "events", + "previous_block_votes_bitvec", + "proposer", + "failed_proposer_indices", + ] + ID_FIELD_NUMBER: _ClassVar[int] + ROUND_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + PREVIOUS_BLOCK_VOTES_BITVEC_FIELD_NUMBER: _ClassVar[int] + PROPOSER_FIELD_NUMBER: _ClassVar[int] + FAILED_PROPOSER_INDICES_FIELD_NUMBER: _ClassVar[int] + id: str + round: int + events: _containers.RepeatedCompositeFieldContainer[Event] + previous_block_votes_bitvec: bytes + proposer: str + failed_proposer_indices: _containers.RepeatedScalarFieldContainer[int] + def __init__( + self, + id: _Optional[str] = ..., + round: _Optional[int] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + previous_block_votes_bitvec: _Optional[bytes] = ..., + proposer: _Optional[str] = ..., + failed_proposer_indices: _Optional[_Iterable[int]] = ..., + ) -> None: ... + +class GenesisTransaction(_message.Message): + __slots__ = ["payload", "events"] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + payload: WriteSet + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + payload: _Optional[_Union[WriteSet, _Mapping]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class StateCheckpointTransaction(_message.Message): + __slots__ = [] + def __init__(self) -> None: ... + +class UserTransaction(_message.Message): + __slots__ = ["request", "events"] + REQUEST_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + request: UserTransactionRequest + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + request: _Optional[_Union[UserTransactionRequest, _Mapping]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class Event(_message.Message): + __slots__ = ["key", "sequence_number", "type", "type_str", "data"] + KEY_FIELD_NUMBER: _ClassVar[int] + SEQUENCE_NUMBER_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + key: EventKey + sequence_number: int + type: MoveType + type_str: str + data: str + def __init__( + self, + key: _Optional[_Union[EventKey, _Mapping]] = ..., + sequence_number: _Optional[int] = ..., + type: _Optional[_Union[MoveType, _Mapping]] = ..., + type_str: _Optional[str] = ..., + data: _Optional[str] = ..., + ) -> None: ... + +class TransactionInfo(_message.Message): + __slots__ = [ + "hash", + "state_change_hash", + "event_root_hash", + "state_checkpoint_hash", + "gas_used", + "success", + "vm_status", + "accumulator_root_hash", + "changes", + ] + HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHANGE_HASH_FIELD_NUMBER: _ClassVar[int] + EVENT_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + STATE_CHECKPOINT_HASH_FIELD_NUMBER: _ClassVar[int] + GAS_USED_FIELD_NUMBER: _ClassVar[int] + SUCCESS_FIELD_NUMBER: _ClassVar[int] + VM_STATUS_FIELD_NUMBER: _ClassVar[int] + ACCUMULATOR_ROOT_HASH_FIELD_NUMBER: _ClassVar[int] + CHANGES_FIELD_NUMBER: _ClassVar[int] + hash: bytes + state_change_hash: bytes + event_root_hash: bytes + state_checkpoint_hash: bytes + gas_used: int + success: bool + vm_status: str + accumulator_root_hash: bytes + changes: _containers.RepeatedCompositeFieldContainer[WriteSetChange] + def __init__( + self, + hash: _Optional[bytes] = ..., + state_change_hash: _Optional[bytes] = ..., + event_root_hash: _Optional[bytes] = ..., + state_checkpoint_hash: _Optional[bytes] = ..., + gas_used: _Optional[int] = ..., + success: bool = ..., + vm_status: _Optional[str] = ..., + accumulator_root_hash: _Optional[bytes] = ..., + changes: _Optional[_Iterable[_Union[WriteSetChange, _Mapping]]] = ..., + ) -> None: ... + +class EventKey(_message.Message): + __slots__ = ["creation_number", "account_address"] + CREATION_NUMBER_FIELD_NUMBER: _ClassVar[int] + ACCOUNT_ADDRESS_FIELD_NUMBER: _ClassVar[int] + creation_number: int + account_address: str + def __init__( + self, + creation_number: _Optional[int] = ..., + account_address: _Optional[str] = ..., + ) -> None: ... + +class UserTransactionRequest(_message.Message): + __slots__ = [ + "sender", + "sequence_number", + "max_gas_amount", + "gas_unit_price", + "expiration_timestamp_secs", + "payload", + "signature", + ] + SENDER_FIELD_NUMBER: _ClassVar[int] + SEQUENCE_NUMBER_FIELD_NUMBER: _ClassVar[int] + MAX_GAS_AMOUNT_FIELD_NUMBER: _ClassVar[int] + GAS_UNIT_PRICE_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_TIMESTAMP_SECS_FIELD_NUMBER: _ClassVar[int] + PAYLOAD_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + sender: str + sequence_number: int + max_gas_amount: int + gas_unit_price: int + expiration_timestamp_secs: _timestamp_pb2.Timestamp + payload: TransactionPayload + signature: Signature + def __init__( + self, + sender: _Optional[str] = ..., + sequence_number: _Optional[int] = ..., + max_gas_amount: _Optional[int] = ..., + gas_unit_price: _Optional[int] = ..., + expiration_timestamp_secs: _Optional[ + _Union[_timestamp_pb2.Timestamp, _Mapping] + ] = ..., + payload: _Optional[_Union[TransactionPayload, _Mapping]] = ..., + signature: _Optional[_Union[Signature, _Mapping]] = ..., + ) -> None: ... + +class WriteSet(_message.Message): + __slots__ = ["write_set_type", "script_write_set", "direct_write_set"] + + class WriteSetType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + WRITE_SET_TYPE_UNSPECIFIED: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_SCRIPT_WRITE_SET: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_DIRECT_WRITE_SET: _ClassVar[WriteSet.WriteSetType] + WRITE_SET_TYPE_UNSPECIFIED: WriteSet.WriteSetType + WRITE_SET_TYPE_SCRIPT_WRITE_SET: WriteSet.WriteSetType + WRITE_SET_TYPE_DIRECT_WRITE_SET: WriteSet.WriteSetType + WRITE_SET_TYPE_FIELD_NUMBER: _ClassVar[int] + SCRIPT_WRITE_SET_FIELD_NUMBER: _ClassVar[int] + DIRECT_WRITE_SET_FIELD_NUMBER: _ClassVar[int] + write_set_type: WriteSet.WriteSetType + script_write_set: ScriptWriteSet + direct_write_set: DirectWriteSet + def __init__( + self, + write_set_type: _Optional[_Union[WriteSet.WriteSetType, str]] = ..., + script_write_set: _Optional[_Union[ScriptWriteSet, _Mapping]] = ..., + direct_write_set: _Optional[_Union[DirectWriteSet, _Mapping]] = ..., + ) -> None: ... + +class ScriptWriteSet(_message.Message): + __slots__ = ["execute_as", "script"] + EXECUTE_AS_FIELD_NUMBER: _ClassVar[int] + SCRIPT_FIELD_NUMBER: _ClassVar[int] + execute_as: str + script: ScriptPayload + def __init__( + self, + execute_as: _Optional[str] = ..., + script: _Optional[_Union[ScriptPayload, _Mapping]] = ..., + ) -> None: ... + +class DirectWriteSet(_message.Message): + __slots__ = ["write_set_change", "events"] + WRITE_SET_CHANGE_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + write_set_change: _containers.RepeatedCompositeFieldContainer[WriteSetChange] + events: _containers.RepeatedCompositeFieldContainer[Event] + def __init__( + self, + write_set_change: _Optional[_Iterable[_Union[WriteSetChange, _Mapping]]] = ..., + events: _Optional[_Iterable[_Union[Event, _Mapping]]] = ..., + ) -> None: ... + +class WriteSetChange(_message.Message): + __slots__ = [ + "type", + "delete_module", + "delete_resource", + "delete_table_item", + "write_module", + "write_resource", + "write_table_item", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_MODULE: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_RESOURCE: _ClassVar[WriteSetChange.Type] + TYPE_DELETE_TABLE_ITEM: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_MODULE: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_RESOURCE: _ClassVar[WriteSetChange.Type] + TYPE_WRITE_TABLE_ITEM: _ClassVar[WriteSetChange.Type] + TYPE_UNSPECIFIED: WriteSetChange.Type + TYPE_DELETE_MODULE: WriteSetChange.Type + TYPE_DELETE_RESOURCE: WriteSetChange.Type + TYPE_DELETE_TABLE_ITEM: WriteSetChange.Type + TYPE_WRITE_MODULE: WriteSetChange.Type + TYPE_WRITE_RESOURCE: WriteSetChange.Type + TYPE_WRITE_TABLE_ITEM: WriteSetChange.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + DELETE_MODULE_FIELD_NUMBER: _ClassVar[int] + DELETE_RESOURCE_FIELD_NUMBER: _ClassVar[int] + DELETE_TABLE_ITEM_FIELD_NUMBER: _ClassVar[int] + WRITE_MODULE_FIELD_NUMBER: _ClassVar[int] + WRITE_RESOURCE_FIELD_NUMBER: _ClassVar[int] + WRITE_TABLE_ITEM_FIELD_NUMBER: _ClassVar[int] + type: WriteSetChange.Type + delete_module: DeleteModule + delete_resource: DeleteResource + delete_table_item: DeleteTableItem + write_module: WriteModule + write_resource: WriteResource + write_table_item: WriteTableItem + def __init__( + self, + type: _Optional[_Union[WriteSetChange.Type, str]] = ..., + delete_module: _Optional[_Union[DeleteModule, _Mapping]] = ..., + delete_resource: _Optional[_Union[DeleteResource, _Mapping]] = ..., + delete_table_item: _Optional[_Union[DeleteTableItem, _Mapping]] = ..., + write_module: _Optional[_Union[WriteModule, _Mapping]] = ..., + write_resource: _Optional[_Union[WriteResource, _Mapping]] = ..., + write_table_item: _Optional[_Union[WriteTableItem, _Mapping]] = ..., + ) -> None: ... + +class DeleteModule(_message.Message): + __slots__ = ["address", "state_key_hash", "module"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + MODULE_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + module: MoveModuleId + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + module: _Optional[_Union[MoveModuleId, _Mapping]] = ..., + ) -> None: ... + +class DeleteResource(_message.Message): + __slots__ = ["address", "state_key_hash", "type", "type_str"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + type: MoveStructTag + type_str: str + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + type: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + type_str: _Optional[str] = ..., + ) -> None: ... + +class DeleteTableItem(_message.Message): + __slots__ = ["state_key_hash", "handle", "key", "data"] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + HANDLE_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + state_key_hash: bytes + handle: str + key: str + data: DeleteTableData + def __init__( + self, + state_key_hash: _Optional[bytes] = ..., + handle: _Optional[str] = ..., + key: _Optional[str] = ..., + data: _Optional[_Union[DeleteTableData, _Mapping]] = ..., + ) -> None: ... + +class DeleteTableData(_message.Message): + __slots__ = ["key", "key_type"] + KEY_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + key: str + key_type: str + def __init__( + self, key: _Optional[str] = ..., key_type: _Optional[str] = ... + ) -> None: ... + +class WriteModule(_message.Message): + __slots__ = ["address", "state_key_hash", "data"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + data: MoveModuleBytecode + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + data: _Optional[_Union[MoveModuleBytecode, _Mapping]] = ..., + ) -> None: ... + +class WriteResource(_message.Message): + __slots__ = ["address", "state_key_hash", "type", "type_str", "data"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_STR_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + address: str + state_key_hash: bytes + type: MoveStructTag + type_str: str + data: str + def __init__( + self, + address: _Optional[str] = ..., + state_key_hash: _Optional[bytes] = ..., + type: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + type_str: _Optional[str] = ..., + data: _Optional[str] = ..., + ) -> None: ... + +class WriteTableData(_message.Message): + __slots__ = ["key", "key_type", "value", "value_type"] + KEY_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] + key: str + key_type: str + value: str + value_type: str + def __init__( + self, + key: _Optional[str] = ..., + key_type: _Optional[str] = ..., + value: _Optional[str] = ..., + value_type: _Optional[str] = ..., + ) -> None: ... + +class WriteTableItem(_message.Message): + __slots__ = ["state_key_hash", "handle", "key", "data"] + STATE_KEY_HASH_FIELD_NUMBER: _ClassVar[int] + HANDLE_FIELD_NUMBER: _ClassVar[int] + KEY_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] + state_key_hash: bytes + handle: str + key: str + data: WriteTableData + def __init__( + self, + state_key_hash: _Optional[bytes] = ..., + handle: _Optional[str] = ..., + key: _Optional[str] = ..., + data: _Optional[_Union[WriteTableData, _Mapping]] = ..., + ) -> None: ... + +class TransactionPayload(_message.Message): + __slots__ = [ + "type", + "entry_function_payload", + "script_payload", + "module_bundle_payload", + "write_set_payload", + "multisig_payload", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[TransactionPayload.Type] + TYPE_ENTRY_FUNCTION_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_SCRIPT_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_MODULE_BUNDLE_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_WRITE_SET_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_MULTISIG_PAYLOAD: _ClassVar[TransactionPayload.Type] + TYPE_UNSPECIFIED: TransactionPayload.Type + TYPE_ENTRY_FUNCTION_PAYLOAD: TransactionPayload.Type + TYPE_SCRIPT_PAYLOAD: TransactionPayload.Type + TYPE_MODULE_BUNDLE_PAYLOAD: TransactionPayload.Type + TYPE_WRITE_SET_PAYLOAD: TransactionPayload.Type + TYPE_MULTISIG_PAYLOAD: TransactionPayload.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + SCRIPT_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + MODULE_BUNDLE_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + WRITE_SET_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + MULTISIG_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + type: TransactionPayload.Type + entry_function_payload: EntryFunctionPayload + script_payload: ScriptPayload + module_bundle_payload: ModuleBundlePayload + write_set_payload: WriteSetPayload + multisig_payload: MultisigPayload + def __init__( + self, + type: _Optional[_Union[TransactionPayload.Type, str]] = ..., + entry_function_payload: _Optional[_Union[EntryFunctionPayload, _Mapping]] = ..., + script_payload: _Optional[_Union[ScriptPayload, _Mapping]] = ..., + module_bundle_payload: _Optional[_Union[ModuleBundlePayload, _Mapping]] = ..., + write_set_payload: _Optional[_Union[WriteSetPayload, _Mapping]] = ..., + multisig_payload: _Optional[_Union[MultisigPayload, _Mapping]] = ..., + ) -> None: ... + +class EntryFunctionPayload(_message.Message): + __slots__ = ["function", "type_arguments", "arguments", "entry_function_id_str"] + FUNCTION_FIELD_NUMBER: _ClassVar[int] + TYPE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_ID_STR_FIELD_NUMBER: _ClassVar[int] + function: EntryFunctionId + type_arguments: _containers.RepeatedCompositeFieldContainer[MoveType] + arguments: _containers.RepeatedScalarFieldContainer[str] + entry_function_id_str: str + def __init__( + self, + function: _Optional[_Union[EntryFunctionId, _Mapping]] = ..., + type_arguments: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + arguments: _Optional[_Iterable[str]] = ..., + entry_function_id_str: _Optional[str] = ..., + ) -> None: ... + +class MoveScriptBytecode(_message.Message): + __slots__ = ["bytecode", "abi"] + BYTECODE_FIELD_NUMBER: _ClassVar[int] + ABI_FIELD_NUMBER: _ClassVar[int] + bytecode: bytes + abi: MoveFunction + def __init__( + self, + bytecode: _Optional[bytes] = ..., + abi: _Optional[_Union[MoveFunction, _Mapping]] = ..., + ) -> None: ... + +class ScriptPayload(_message.Message): + __slots__ = ["code", "type_arguments", "arguments"] + CODE_FIELD_NUMBER: _ClassVar[int] + TYPE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + ARGUMENTS_FIELD_NUMBER: _ClassVar[int] + code: MoveScriptBytecode + type_arguments: _containers.RepeatedCompositeFieldContainer[MoveType] + arguments: _containers.RepeatedScalarFieldContainer[str] + def __init__( + self, + code: _Optional[_Union[MoveScriptBytecode, _Mapping]] = ..., + type_arguments: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + arguments: _Optional[_Iterable[str]] = ..., + ) -> None: ... + +class MultisigPayload(_message.Message): + __slots__ = ["multisig_address", "transaction_payload"] + MULTISIG_ADDRESS_FIELD_NUMBER: _ClassVar[int] + TRANSACTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + multisig_address: str + transaction_payload: MultisigTransactionPayload + def __init__( + self, + multisig_address: _Optional[str] = ..., + transaction_payload: _Optional[ + _Union[MultisigTransactionPayload, _Mapping] + ] = ..., + ) -> None: ... + +class MultisigTransactionPayload(_message.Message): + __slots__ = ["type", "entry_function_payload"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[MultisigTransactionPayload.Type] + TYPE_ENTRY_FUNCTION_PAYLOAD: _ClassVar[MultisigTransactionPayload.Type] + TYPE_UNSPECIFIED: MultisigTransactionPayload.Type + TYPE_ENTRY_FUNCTION_PAYLOAD: MultisigTransactionPayload.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ENTRY_FUNCTION_PAYLOAD_FIELD_NUMBER: _ClassVar[int] + type: MultisigTransactionPayload.Type + entry_function_payload: EntryFunctionPayload + def __init__( + self, + type: _Optional[_Union[MultisigTransactionPayload.Type, str]] = ..., + entry_function_payload: _Optional[_Union[EntryFunctionPayload, _Mapping]] = ..., + ) -> None: ... + +class ModuleBundlePayload(_message.Message): + __slots__ = ["modules"] + MODULES_FIELD_NUMBER: _ClassVar[int] + modules: _containers.RepeatedCompositeFieldContainer[MoveModuleBytecode] + def __init__( + self, modules: _Optional[_Iterable[_Union[MoveModuleBytecode, _Mapping]]] = ... + ) -> None: ... + +class MoveModuleBytecode(_message.Message): + __slots__ = ["bytecode", "abi"] + BYTECODE_FIELD_NUMBER: _ClassVar[int] + ABI_FIELD_NUMBER: _ClassVar[int] + bytecode: bytes + abi: MoveModule + def __init__( + self, + bytecode: _Optional[bytes] = ..., + abi: _Optional[_Union[MoveModule, _Mapping]] = ..., + ) -> None: ... + +class MoveModule(_message.Message): + __slots__ = ["address", "name", "friends", "exposed_functions", "structs"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + FRIENDS_FIELD_NUMBER: _ClassVar[int] + EXPOSED_FUNCTIONS_FIELD_NUMBER: _ClassVar[int] + STRUCTS_FIELD_NUMBER: _ClassVar[int] + address: str + name: str + friends: _containers.RepeatedCompositeFieldContainer[MoveModuleId] + exposed_functions: _containers.RepeatedCompositeFieldContainer[MoveFunction] + structs: _containers.RepeatedCompositeFieldContainer[MoveStruct] + def __init__( + self, + address: _Optional[str] = ..., + name: _Optional[str] = ..., + friends: _Optional[_Iterable[_Union[MoveModuleId, _Mapping]]] = ..., + exposed_functions: _Optional[_Iterable[_Union[MoveFunction, _Mapping]]] = ..., + structs: _Optional[_Iterable[_Union[MoveStruct, _Mapping]]] = ..., + ) -> None: ... + +class MoveFunction(_message.Message): + __slots__ = ["name", "visibility", "is_entry", "generic_type_params", "params"] + + class Visibility(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + VISIBILITY_UNSPECIFIED: _ClassVar[MoveFunction.Visibility] + VISIBILITY_PRIVATE: _ClassVar[MoveFunction.Visibility] + VISIBILITY_PUBLIC: _ClassVar[MoveFunction.Visibility] + VISIBILITY_FRIEND: _ClassVar[MoveFunction.Visibility] + VISIBILITY_UNSPECIFIED: MoveFunction.Visibility + VISIBILITY_PRIVATE: MoveFunction.Visibility + VISIBILITY_PUBLIC: MoveFunction.Visibility + VISIBILITY_FRIEND: MoveFunction.Visibility + NAME_FIELD_NUMBER: _ClassVar[int] + VISIBILITY_FIELD_NUMBER: _ClassVar[int] + IS_ENTRY_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + PARAMS_FIELD_NUMBER: _ClassVar[int] + RETURN_FIELD_NUMBER: _ClassVar[int] + name: str + visibility: MoveFunction.Visibility + is_entry: bool + generic_type_params: _containers.RepeatedCompositeFieldContainer[ + MoveFunctionGenericTypeParam + ] + params: _containers.RepeatedCompositeFieldContainer[MoveType] + def __init__( + self, + name: _Optional[str] = ..., + visibility: _Optional[_Union[MoveFunction.Visibility, str]] = ..., + is_entry: bool = ..., + generic_type_params: _Optional[ + _Iterable[_Union[MoveFunctionGenericTypeParam, _Mapping]] + ] = ..., + params: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + **kwargs + ) -> None: ... + +class MoveStruct(_message.Message): + __slots__ = ["name", "is_native", "abilities", "generic_type_params", "fields"] + NAME_FIELD_NUMBER: _ClassVar[int] + IS_NATIVE_FIELD_NUMBER: _ClassVar[int] + ABILITIES_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + FIELDS_FIELD_NUMBER: _ClassVar[int] + name: str + is_native: bool + abilities: _containers.RepeatedScalarFieldContainer[MoveAbility] + generic_type_params: _containers.RepeatedCompositeFieldContainer[ + MoveStructGenericTypeParam + ] + fields: _containers.RepeatedCompositeFieldContainer[MoveStructField] + def __init__( + self, + name: _Optional[str] = ..., + is_native: bool = ..., + abilities: _Optional[_Iterable[_Union[MoveAbility, str]]] = ..., + generic_type_params: _Optional[ + _Iterable[_Union[MoveStructGenericTypeParam, _Mapping]] + ] = ..., + fields: _Optional[_Iterable[_Union[MoveStructField, _Mapping]]] = ..., + ) -> None: ... + +class MoveStructGenericTypeParam(_message.Message): + __slots__ = ["constraints", "is_phantom"] + CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + IS_PHANTOM_FIELD_NUMBER: _ClassVar[int] + constraints: _containers.RepeatedScalarFieldContainer[MoveAbility] + is_phantom: bool + def __init__( + self, + constraints: _Optional[_Iterable[_Union[MoveAbility, str]]] = ..., + is_phantom: bool = ..., + ) -> None: ... + +class MoveStructField(_message.Message): + __slots__ = ["name", "type"] + NAME_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + name: str + type: MoveType + def __init__( + self, + name: _Optional[str] = ..., + type: _Optional[_Union[MoveType, _Mapping]] = ..., + ) -> None: ... + +class MoveFunctionGenericTypeParam(_message.Message): + __slots__ = ["constraints"] + CONSTRAINTS_FIELD_NUMBER: _ClassVar[int] + constraints: _containers.RepeatedScalarFieldContainer[MoveAbility] + def __init__( + self, constraints: _Optional[_Iterable[_Union[MoveAbility, str]]] = ... + ) -> None: ... + +class MoveType(_message.Message): + __slots__ = [ + "type", + "vector", + "struct", + "generic_type_param_index", + "reference", + "unparsable", + ] + + class ReferenceType(_message.Message): + __slots__ = ["mutable", "to"] + MUTABLE_FIELD_NUMBER: _ClassVar[int] + TO_FIELD_NUMBER: _ClassVar[int] + mutable: bool + to: MoveType + def __init__( + self, mutable: bool = ..., to: _Optional[_Union[MoveType, _Mapping]] = ... + ) -> None: ... + TYPE_FIELD_NUMBER: _ClassVar[int] + VECTOR_FIELD_NUMBER: _ClassVar[int] + STRUCT_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAM_INDEX_FIELD_NUMBER: _ClassVar[int] + REFERENCE_FIELD_NUMBER: _ClassVar[int] + UNPARSABLE_FIELD_NUMBER: _ClassVar[int] + type: MoveTypes + vector: MoveType + struct: MoveStructTag + generic_type_param_index: int + reference: MoveType.ReferenceType + unparsable: str + def __init__( + self, + type: _Optional[_Union[MoveTypes, str]] = ..., + vector: _Optional[_Union[MoveType, _Mapping]] = ..., + struct: _Optional[_Union[MoveStructTag, _Mapping]] = ..., + generic_type_param_index: _Optional[int] = ..., + reference: _Optional[_Union[MoveType.ReferenceType, _Mapping]] = ..., + unparsable: _Optional[str] = ..., + ) -> None: ... + +class WriteSetPayload(_message.Message): + __slots__ = ["write_set"] + WRITE_SET_FIELD_NUMBER: _ClassVar[int] + write_set: WriteSet + def __init__( + self, write_set: _Optional[_Union[WriteSet, _Mapping]] = ... + ) -> None: ... + +class EntryFunctionId(_message.Message): + __slots__ = ["module", "name"] + MODULE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + module: MoveModuleId + name: str + def __init__( + self, + module: _Optional[_Union[MoveModuleId, _Mapping]] = ..., + name: _Optional[str] = ..., + ) -> None: ... + +class MoveModuleId(_message.Message): + __slots__ = ["address", "name"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + address: str + name: str + def __init__( + self, address: _Optional[str] = ..., name: _Optional[str] = ... + ) -> None: ... + +class MoveStructTag(_message.Message): + __slots__ = ["address", "module", "name", "generic_type_params"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + MODULE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + GENERIC_TYPE_PARAMS_FIELD_NUMBER: _ClassVar[int] + address: str + module: str + name: str + generic_type_params: _containers.RepeatedCompositeFieldContainer[MoveType] + def __init__( + self, + address: _Optional[str] = ..., + module: _Optional[str] = ..., + name: _Optional[str] = ..., + generic_type_params: _Optional[_Iterable[_Union[MoveType, _Mapping]]] = ..., + ) -> None: ... + +class Signature(_message.Message): + __slots__ = [ + "type", + "ed25519", + "multi_ed25519", + "multi_agent", + "fee_payer", + "secp256k1_ecdsa", + "single_sender", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[Signature.Type] + TYPE_ED25519: _ClassVar[Signature.Type] + TYPE_MULTI_ED25519: _ClassVar[Signature.Type] + TYPE_MULTI_AGENT: _ClassVar[Signature.Type] + TYPE_FEE_PAYER: _ClassVar[Signature.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[Signature.Type] + TYPE_SINGLE_SENDER: _ClassVar[Signature.Type] + TYPE_UNSPECIFIED: Signature.Type + TYPE_ED25519: Signature.Type + TYPE_MULTI_ED25519: Signature.Type + TYPE_MULTI_AGENT: Signature.Type + TYPE_FEE_PAYER: Signature.Type + TYPE_SECP256K1_ECDSA: Signature.Type + TYPE_SINGLE_SENDER: Signature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_AGENT_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_FIELD_NUMBER: _ClassVar[int] + SECP256K1_ECDSA_FIELD_NUMBER: _ClassVar[int] + SINGLE_SENDER_FIELD_NUMBER: _ClassVar[int] + type: Signature.Type + ed25519: Ed25519Signature + multi_ed25519: MultiEd25519Signature + multi_agent: MultiAgentSignature + fee_payer: FeePayerSignature + secp256k1_ecdsa: Secp256k1ECDSASignature + single_sender: SingleSender + def __init__( + self, + type: _Optional[_Union[Signature.Type, str]] = ..., + ed25519: _Optional[_Union[Ed25519Signature, _Mapping]] = ..., + multi_ed25519: _Optional[_Union[MultiEd25519Signature, _Mapping]] = ..., + multi_agent: _Optional[_Union[MultiAgentSignature, _Mapping]] = ..., + fee_payer: _Optional[_Union[FeePayerSignature, _Mapping]] = ..., + secp256k1_ecdsa: _Optional[_Union[Secp256k1ECDSASignature, _Mapping]] = ..., + single_sender: _Optional[_Union[SingleSender, _Mapping]] = ..., + ) -> None: ... + +class Ed25519Signature(_message.Message): + __slots__ = ["public_key", "signature"] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + public_key: bytes + signature: bytes + def __init__( + self, public_key: _Optional[bytes] = ..., signature: _Optional[bytes] = ... + ) -> None: ... + +class MultiEd25519Signature(_message.Message): + __slots__ = ["public_keys", "signatures", "threshold", "public_key_indices"] + PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_FIELD_NUMBER: _ClassVar[int] + THRESHOLD_FIELD_NUMBER: _ClassVar[int] + PUBLIC_KEY_INDICES_FIELD_NUMBER: _ClassVar[int] + public_keys: _containers.RepeatedScalarFieldContainer[bytes] + signatures: _containers.RepeatedScalarFieldContainer[bytes] + threshold: int + public_key_indices: _containers.RepeatedScalarFieldContainer[int] + def __init__( + self, + public_keys: _Optional[_Iterable[bytes]] = ..., + signatures: _Optional[_Iterable[bytes]] = ..., + threshold: _Optional[int] = ..., + public_key_indices: _Optional[_Iterable[int]] = ..., + ) -> None: ... + +class MultiAgentSignature(_message.Message): + __slots__ = ["sender", "secondary_signer_addresses", "secondary_signers"] + SENDER_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNER_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNERS_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + secondary_signer_addresses: _containers.RepeatedScalarFieldContainer[str] + secondary_signers: _containers.RepeatedCompositeFieldContainer[AccountSignature] + def __init__( + self, + sender: _Optional[_Union[AccountSignature, _Mapping]] = ..., + secondary_signer_addresses: _Optional[_Iterable[str]] = ..., + secondary_signers: _Optional[ + _Iterable[_Union[AccountSignature, _Mapping]] + ] = ..., + ) -> None: ... + +class FeePayerSignature(_message.Message): + __slots__ = [ + "sender", + "secondary_signer_addresses", + "secondary_signers", + "fee_payer_address", + "fee_payer_signer", + ] + SENDER_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNER_ADDRESSES_FIELD_NUMBER: _ClassVar[int] + SECONDARY_SIGNERS_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_ADDRESS_FIELD_NUMBER: _ClassVar[int] + FEE_PAYER_SIGNER_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + secondary_signer_addresses: _containers.RepeatedScalarFieldContainer[str] + secondary_signers: _containers.RepeatedCompositeFieldContainer[AccountSignature] + fee_payer_address: str + fee_payer_signer: AccountSignature + def __init__( + self, + sender: _Optional[_Union[AccountSignature, _Mapping]] = ..., + secondary_signer_addresses: _Optional[_Iterable[str]] = ..., + secondary_signers: _Optional[ + _Iterable[_Union[AccountSignature, _Mapping]] + ] = ..., + fee_payer_address: _Optional[str] = ..., + fee_payer_signer: _Optional[_Union[AccountSignature, _Mapping]] = ..., + ) -> None: ... + +class Secp256k1ECDSASignature(_message.Message): + __slots__ = ["public_key", "signature"] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + public_key: bytes + signature: bytes + def __init__( + self, public_key: _Optional[bytes] = ..., signature: _Optional[bytes] = ... + ) -> None: ... + +class AnyPublicKey(_message.Message): + __slots__ = ["type", "public_key"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AnyPublicKey.Type] + TYPE_ED25519: _ClassVar[AnyPublicKey.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[AnyPublicKey.Type] + TYPE_UNSPECIFIED: AnyPublicKey.Type + TYPE_ED25519: AnyPublicKey.Type + TYPE_SECP256K1_ECDSA: AnyPublicKey.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + type: AnyPublicKey.Type + public_key: bytes + def __init__( + self, + type: _Optional[_Union[AnyPublicKey.Type, str]] = ..., + public_key: _Optional[bytes] = ..., + ) -> None: ... + +class AnySignature(_message.Message): + __slots__ = ["type", "signature"] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AnySignature.Type] + TYPE_ED25519: _ClassVar[AnySignature.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[AnySignature.Type] + TYPE_UNSPECIFIED: AnySignature.Type + TYPE_ED25519: AnySignature.Type + TYPE_SECP256K1_ECDSA: AnySignature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + type: AnySignature.Type + signature: bytes + def __init__( + self, + type: _Optional[_Union[AnySignature.Type, str]] = ..., + signature: _Optional[bytes] = ..., + ) -> None: ... + +class SingleKeySignature(_message.Message): + __slots__ = ["public_key", "signature"] + PUBLIC_KEY_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + public_key: AnyPublicKey + signature: AnySignature + def __init__( + self, + public_key: _Optional[_Union[AnyPublicKey, _Mapping]] = ..., + signature: _Optional[_Union[AnySignature, _Mapping]] = ..., + ) -> None: ... + +class IndexedSignature(_message.Message): + __slots__ = ["index", "signature"] + INDEX_FIELD_NUMBER: _ClassVar[int] + SIGNATURE_FIELD_NUMBER: _ClassVar[int] + index: int + signature: AnySignature + def __init__( + self, + index: _Optional[int] = ..., + signature: _Optional[_Union[AnySignature, _Mapping]] = ..., + ) -> None: ... + +class MultiKeySignature(_message.Message): + __slots__ = ["public_keys", "signatures", "signatures_required"] + PUBLIC_KEYS_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_FIELD_NUMBER: _ClassVar[int] + SIGNATURES_REQUIRED_FIELD_NUMBER: _ClassVar[int] + public_keys: _containers.RepeatedCompositeFieldContainer[AnyPublicKey] + signatures: _containers.RepeatedCompositeFieldContainer[IndexedSignature] + signatures_required: int + def __init__( + self, + public_keys: _Optional[_Iterable[_Union[AnyPublicKey, _Mapping]]] = ..., + signatures: _Optional[_Iterable[_Union[IndexedSignature, _Mapping]]] = ..., + signatures_required: _Optional[int] = ..., + ) -> None: ... + +class SingleSender(_message.Message): + __slots__ = ["sender"] + SENDER_FIELD_NUMBER: _ClassVar[int] + sender: AccountSignature + def __init__( + self, sender: _Optional[_Union[AccountSignature, _Mapping]] = ... + ) -> None: ... + +class AccountSignature(_message.Message): + __slots__ = [ + "type", + "ed25519", + "multi_ed25519", + "secp256k1_ecdsa", + "single_key_signature", + "multi_key_signature", + ] + + class Type(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + TYPE_UNSPECIFIED: _ClassVar[AccountSignature.Type] + TYPE_ED25519: _ClassVar[AccountSignature.Type] + TYPE_MULTI_ED25519: _ClassVar[AccountSignature.Type] + TYPE_SECP256K1_ECDSA: _ClassVar[AccountSignature.Type] + TYPE_SINGLE_KEY: _ClassVar[AccountSignature.Type] + TYPE_MULTI_KEY: _ClassVar[AccountSignature.Type] + TYPE_UNSPECIFIED: AccountSignature.Type + TYPE_ED25519: AccountSignature.Type + TYPE_MULTI_ED25519: AccountSignature.Type + TYPE_SECP256K1_ECDSA: AccountSignature.Type + TYPE_SINGLE_KEY: AccountSignature.Type + TYPE_MULTI_KEY: AccountSignature.Type + TYPE_FIELD_NUMBER: _ClassVar[int] + ED25519_FIELD_NUMBER: _ClassVar[int] + MULTI_ED25519_FIELD_NUMBER: _ClassVar[int] + SECP256K1_ECDSA_FIELD_NUMBER: _ClassVar[int] + SINGLE_KEY_SIGNATURE_FIELD_NUMBER: _ClassVar[int] + MULTI_KEY_SIGNATURE_FIELD_NUMBER: _ClassVar[int] + type: AccountSignature.Type + ed25519: Ed25519Signature + multi_ed25519: MultiEd25519Signature + secp256k1_ecdsa: Secp256k1ECDSASignature + single_key_signature: SingleKeySignature + multi_key_signature: MultiKeySignature + def __init__( + self, + type: _Optional[_Union[AccountSignature.Type, str]] = ..., + ed25519: _Optional[_Union[Ed25519Signature, _Mapping]] = ..., + multi_ed25519: _Optional[_Union[MultiEd25519Signature, _Mapping]] = ..., + secp256k1_ecdsa: _Optional[_Union[Secp256k1ECDSASignature, _Mapping]] = ..., + single_key_signature: _Optional[_Union[SingleKeySignature, _Mapping]] = ..., + multi_key_signature: _Optional[_Union[MultiKeySignature, _Mapping]] = ..., + ) -> None: ... diff --git a/protos/python/blah/aptos/transaction/v1/transaction_pb2_grpc.py b/protos/python/blah/aptos/transaction/v1/transaction_pb2_grpc.py new file mode 100644 index 00000000000000..8a9393943bdf46 --- /dev/null +++ b/protos/python/blah/aptos/transaction/v1/transaction_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/blah/aptos/util/timestamp/timestamp_pb2.py b/protos/python/blah/aptos/util/timestamp/timestamp_pb2.py new file mode 100644 index 00000000000000..fd6c9d3812bdd6 --- /dev/null +++ b/protos/python/blah/aptos/util/timestamp/timestamp_pb2.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: aptos/util/timestamp/timestamp.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder + +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( + b'\n$aptos/util/timestamp/timestamp.proto\x12\x14\x61ptos.util.timestamp"+\n\tTimestamp\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\x62\x06proto3' +) + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages( + DESCRIPTOR, "aptos.util.timestamp.timestamp_pb2", _globals +) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + _globals["_TIMESTAMP"]._serialized_start = 62 + _globals["_TIMESTAMP"]._serialized_end = 105 +# @@protoc_insertion_point(module_scope) diff --git a/protos/python/blah/aptos/util/timestamp/timestamp_pb2.pyi b/protos/python/blah/aptos/util/timestamp/timestamp_pb2.pyi new file mode 100644 index 00000000000000..dd64a5c7fd359d --- /dev/null +++ b/protos/python/blah/aptos/util/timestamp/timestamp_pb2.pyi @@ -0,0 +1,17 @@ +from typing import ClassVar as _ClassVar +from typing import Optional as _Optional + +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message + +DESCRIPTOR: _descriptor.FileDescriptor + +class Timestamp(_message.Message): + __slots__ = ["seconds", "nanos"] + SECONDS_FIELD_NUMBER: _ClassVar[int] + NANOS_FIELD_NUMBER: _ClassVar[int] + seconds: int + nanos: int + def __init__( + self, seconds: _Optional[int] = ..., nanos: _Optional[int] = ... + ) -> None: ... diff --git a/protos/python/blah/aptos/util/timestamp/timestamp_pb2_grpc.py b/protos/python/blah/aptos/util/timestamp/timestamp_pb2_grpc.py new file mode 100644 index 00000000000000..8a9393943bdf46 --- /dev/null +++ b/protos/python/blah/aptos/util/timestamp/timestamp_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc diff --git a/protos/python/generate.sh b/protos/python/generate.sh new file mode 100755 index 00000000000000..666eedf77c8d32 --- /dev/null +++ b/protos/python/generate.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# TODO: Use the buf toolchain for this one day. + +# Exit if VIRTUAL_ENV is not set. +if [ -z "$VIRTUAL_ENV" ]; then + echo "This script must be run from inside the virtual environment, this this: poetry run poe generate" + exit 1 +fi + +echo + +export PYTHONWARNINGS="ignore" + +PROTO_DIR=../proto +WORKING_DIR=`mktemp -d` +OUT_DIR=./aptos_protos + +# Save __init__.py +mv $OUT_DIR/__init__.py $WORKING_DIR/__init__.py + +# Delete the old generated files. +rm -rf $OUT_DIR + +# Create the output directory. +mkdir -p $OUT_DIR + +# Generate the protos to a temporary directory. +python -m grpc_tools.protoc \ + --proto_path $PROTO_DIR \ + --python_out $OUT_DIR \ + --pyi_out $OUT_DIR \ + --grpc_python_out $OUT_DIR \ + $PROTO_DIR/aptos/bigquery_schema/v1/transaction.proto \ + $PROTO_DIR/aptos/indexer/v1/raw_data.proto \ + $PROTO_DIR/aptos/internal/fullnode/v1/fullnode_data.proto \ + $PROTO_DIR/aptos/transaction/v1/transaction.proto \ + $PROTO_DIR/aptos/util/timestamp/timestamp.proto + +# Restore __init__.py +mv $WORKING_DIR/__init__.py $OUT_DIR/__init__.py + +# Format code. +isort $OUT_DIR +black $OUT_DIR + +echo +echo "Protos generated to $OUT_DIR 🥳" + diff --git a/protos/python/poetry.lock b/protos/python/poetry.lock new file mode 100644 index 00000000000000..487685ce13a18f --- /dev/null +++ b/protos/python/poetry.lock @@ -0,0 +1,505 @@ +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. + +[[package]] +name = "black" +version = "23.10.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "black-23.10.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:f8dc7d50d94063cdfd13c82368afd8588bac4ce360e4224ac399e769d6704e98"}, + {file = "black-23.10.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:f20ff03f3fdd2fd4460b4f631663813e57dc277e37fb216463f3b907aa5a9bdd"}, + {file = "black-23.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3d9129ce05b0829730323bdcb00f928a448a124af5acf90aa94d9aba6969604"}, + {file = "black-23.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:960c21555be135c4b37b7018d63d6248bdae8514e5c55b71e994ad37407f45b8"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:30b78ac9b54cf87bcb9910ee3d499d2bc893afd52495066c49d9ee6b21eee06e"}, + {file = "black-23.10.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:0e232f24a337fed7a82c1185ae46c56c4a6167fb0fe37411b43e876892c76699"}, + {file = "black-23.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31946ec6f9c54ed7ba431c38bc81d758970dd734b96b8e8c2b17a367d7908171"}, + {file = "black-23.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:c870bee76ad5f7a5ea7bd01dc646028d05568d33b0b09b7ecfc8ec0da3f3f39c"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:6901631b937acbee93c75537e74f69463adaf34379a04eef32425b88aca88a23"}, + {file = "black-23.10.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:481167c60cd3e6b1cb8ef2aac0f76165843a374346aeeaa9d86765fe0dd0318b"}, + {file = "black-23.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74892b4b836e5162aa0452393112a574dac85e13902c57dfbaaf388e4eda37c"}, + {file = "black-23.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:47c4510f70ec2e8f9135ba490811c071419c115e46f143e4dce2ac45afdcf4c9"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:76baba9281e5e5b230c9b7f83a96daf67a95e919c2dfc240d9e6295eab7b9204"}, + {file = "black-23.10.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:a3c2ddb35f71976a4cfeca558848c2f2f89abc86b06e8dd89b5a65c1e6c0f22a"}, + {file = "black-23.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db451a3363b1e765c172c3fd86213a4ce63fb8524c938ebd82919bf2a6e28c6a"}, + {file = "black-23.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:7fb5fc36bb65160df21498d5a3dd330af8b6401be3f25af60c6ebfe23753f747"}, + {file = "black-23.10.0-py3-none-any.whl", hash = "sha256:e223b731a0e025f8ef427dd79d8cd69c167da807f5710add30cdf131f13dd62e"}, + {file = "black-23.10.0.tar.gz", hash = "sha256:31b9f87b277a68d0e99d2905edae08807c007973eaa609da5f0c62def6b7c0bd"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "click" +version = "8.1.7" +description = "Composable command line interface toolkit" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "grpcio" +version = "1.59.0" +description = "HTTP/2-based RPC framework" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpcio-1.59.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:225e5fa61c35eeaebb4e7491cd2d768cd8eb6ed00f2664fa83a58f29418b39fd"}, + {file = "grpcio-1.59.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:b95ec8ecc4f703f5caaa8d96e93e40c7f589bad299a2617bdb8becbcce525539"}, + {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:1a839ba86764cc48226f50b924216000c79779c563a301586a107bda9cbe9dcf"}, + {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6cfe44a5d7c7d5f1017a7da1c8160304091ca5dc64a0f85bca0d63008c3137a"}, + {file = "grpcio-1.59.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0fcf53df684fcc0154b1e61f6b4a8c4cf5f49d98a63511e3f30966feff39cd0"}, + {file = "grpcio-1.59.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa66cac32861500f280bb60fe7d5b3e22d68c51e18e65367e38f8669b78cea3b"}, + {file = "grpcio-1.59.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8cd2d38c2d52f607d75a74143113174c36d8a416d9472415eab834f837580cf7"}, + {file = "grpcio-1.59.0-cp310-cp310-win32.whl", hash = "sha256:228b91ce454876d7eed74041aff24a8f04c0306b7250a2da99d35dd25e2a1211"}, + {file = "grpcio-1.59.0-cp310-cp310-win_amd64.whl", hash = "sha256:ca87ee6183421b7cea3544190061f6c1c3dfc959e0b57a5286b108511fd34ff4"}, + {file = "grpcio-1.59.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:c173a87d622ea074ce79be33b952f0b424fa92182063c3bda8625c11d3585d09"}, + {file = "grpcio-1.59.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:ec78aebb9b6771d6a1de7b6ca2f779a2f6113b9108d486e904bde323d51f5589"}, + {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:0b84445fa94d59e6806c10266b977f92fa997db3585f125d6b751af02ff8b9fe"}, + {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c251d22de8f9f5cca9ee47e4bade7c5c853e6e40743f47f5cc02288ee7a87252"}, + {file = "grpcio-1.59.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:956f0b7cb465a65de1bd90d5a7475b4dc55089b25042fe0f6c870707e9aabb1d"}, + {file = "grpcio-1.59.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:38da5310ef84e16d638ad89550b5b9424df508fd5c7b968b90eb9629ca9be4b9"}, + {file = "grpcio-1.59.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:63982150a7d598281fa1d7ffead6096e543ff8be189d3235dd2b5604f2c553e5"}, + {file = "grpcio-1.59.0-cp311-cp311-win32.whl", hash = "sha256:50eff97397e29eeee5df106ea1afce3ee134d567aa2c8e04fabab05c79d791a7"}, + {file = "grpcio-1.59.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f03bd714f987d48ae57fe092cf81960ae36da4e520e729392a59a75cda4f29"}, + {file = "grpcio-1.59.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:f1feb034321ae2f718172d86b8276c03599846dc7bb1792ae370af02718f91c5"}, + {file = "grpcio-1.59.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d09bd2a4e9f5a44d36bb8684f284835c14d30c22d8ec92ce796655af12163588"}, + {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:2f120d27051e4c59db2f267b71b833796770d3ea36ca712befa8c5fff5da6ebd"}, + {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba0ca727a173ee093f49ead932c051af463258b4b493b956a2c099696f38aa66"}, + {file = "grpcio-1.59.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5711c51e204dc52065f4a3327dca46e69636a0b76d3e98c2c28c4ccef9b04c52"}, + {file = "grpcio-1.59.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:d74f7d2d7c242a6af9d4d069552ec3669965b74fed6b92946e0e13b4168374f9"}, + {file = "grpcio-1.59.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3859917de234a0a2a52132489c4425a73669de9c458b01c9a83687f1f31b5b10"}, + {file = "grpcio-1.59.0-cp312-cp312-win32.whl", hash = "sha256:de2599985b7c1b4ce7526e15c969d66b93687571aa008ca749d6235d056b7205"}, + {file = "grpcio-1.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:598f3530231cf10ae03f4ab92d48c3be1fee0c52213a1d5958df1a90957e6a88"}, + {file = "grpcio-1.59.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:b34c7a4c31841a2ea27246a05eed8a80c319bfc0d3e644412ec9ce437105ff6c"}, + {file = "grpcio-1.59.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:c4dfdb49f4997dc664f30116af2d34751b91aa031f8c8ee251ce4dcfc11277b0"}, + {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:61bc72a00ecc2b79d9695220b4d02e8ba53b702b42411397e831c9b0589f08a3"}, + {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f367e4b524cb319e50acbdea57bb63c3b717c5d561974ace0b065a648bb3bad3"}, + {file = "grpcio-1.59.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:849c47ef42424c86af069a9c5e691a765e304079755d5c29eff511263fad9c2a"}, + {file = "grpcio-1.59.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c0488c2b0528e6072010182075615620071371701733c63ab5be49140ed8f7f0"}, + {file = "grpcio-1.59.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:611d9aa0017fa386809bddcb76653a5ab18c264faf4d9ff35cb904d44745f575"}, + {file = "grpcio-1.59.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e5378785dce2b91eb2e5b857ec7602305a3b5cf78311767146464bfa365fc897"}, + {file = "grpcio-1.59.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:fe976910de34d21057bcb53b2c5e667843588b48bf11339da2a75f5c4c5b4055"}, + {file = "grpcio-1.59.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:c041a91712bf23b2a910f61e16565a05869e505dc5a5c025d429ca6de5de842c"}, + {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:0ae444221b2c16d8211b55326f8ba173ba8f8c76349bfc1768198ba592b58f74"}, + {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceb1e68135788c3fce2211de86a7597591f0b9a0d2bb80e8401fd1d915991bac"}, + {file = "grpcio-1.59.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c4b1cc3a9dc1924d2eb26eec8792fedd4b3fcd10111e26c1d551f2e4eda79ce"}, + {file = "grpcio-1.59.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:871371ce0c0055d3db2a86fdebd1e1d647cf21a8912acc30052660297a5a6901"}, + {file = "grpcio-1.59.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:93e9cb546e610829e462147ce724a9cb108e61647a3454500438a6deef610be1"}, + {file = "grpcio-1.59.0-cp38-cp38-win32.whl", hash = "sha256:f21917aa50b40842b51aff2de6ebf9e2f6af3fe0971c31960ad6a3a2b24988f4"}, + {file = "grpcio-1.59.0-cp38-cp38-win_amd64.whl", hash = "sha256:14890da86a0c0e9dc1ea8e90101d7a3e0e7b1e71f4487fab36e2bfd2ecadd13c"}, + {file = "grpcio-1.59.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:34341d9e81a4b669a5f5dca3b2a760b6798e95cdda2b173e65d29d0b16692857"}, + {file = "grpcio-1.59.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:986de4aa75646e963466b386a8c5055c8b23a26a36a6c99052385d6fe8aaf180"}, + {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:aca8a24fef80bef73f83eb8153f5f5a0134d9539b4c436a716256b311dda90a6"}, + {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:936b2e04663660c600d5173bc2cc84e15adbad9c8f71946eb833b0afc205b996"}, + {file = "grpcio-1.59.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc8bf2e7bc725e76c0c11e474634a08c8f24bcf7426c0c6d60c8f9c6e70e4d4a"}, + {file = "grpcio-1.59.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81d86a096ccd24a57fa5772a544c9e566218bc4de49e8c909882dae9d73392df"}, + {file = "grpcio-1.59.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2ea95cd6abbe20138b8df965b4a8674ec312aaef3147c0f46a0bac661f09e8d0"}, + {file = "grpcio-1.59.0-cp39-cp39-win32.whl", hash = "sha256:3b8ff795d35a93d1df6531f31c1502673d1cebeeba93d0f9bd74617381507e3f"}, + {file = "grpcio-1.59.0-cp39-cp39-win_amd64.whl", hash = "sha256:38823bd088c69f59966f594d087d3a929d1ef310506bee9e3648317660d65b81"}, + {file = "grpcio-1.59.0.tar.gz", hash = "sha256:acf70a63cf09dd494000007b798aff88a436e1c03b394995ce450be437b8e54f"}, +] + +[package.extras] +protobuf = ["grpcio-tools (>=1.59.0)"] + +[[package]] +name = "grpcio-tools" +version = "1.59.0" +description = "Protobuf code generator for gRPC" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpcio-tools-1.59.0.tar.gz", hash = "sha256:aa4018f2d8662ac4d9830445d3d253a11b3e096e8afe20865547137aa1160e93"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:882b809b42b5464bee55288f4e60837297f9618e53e69ae3eea6d61b05ce48fa"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:4499d4bc5aa9c7b645018d8b0db4bebd663d427aabcd7bee7777046cb1bcbca7"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:f381ae3ad6a5eb27aad8d810438937d8228977067c54e0bd456fce7e11fdbf3d"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1c684c0d9226d04cadafced620a46ab38c346d0780eaac7448da96bf12066a3"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40cbf712769242c2ba237745285ef789114d7fcfe8865fc4817d87f20015e99a"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1df755951f204e65bf9232a9cac5afe7d6b8e4c87ac084d3ecd738fdc7aa4174"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:de156c18b0c638aaee3be6ad650c8ba7dec94ed4bac26403aec3dce95ffe9407"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-win32.whl", hash = "sha256:9af7e138baa9b2895cf1f3eb718ac96fc5ae2f8e31fca405e21e0e5cd1643c52"}, + {file = "grpcio_tools-1.59.0-cp310-cp310-win_amd64.whl", hash = "sha256:f14a6e4f700dfd30ff8f0e6695f944affc16ae5a1e738666b3fae4e44b65637e"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:db030140d0da2368319e2f23655df3baec278c7e0078ecbe051eaf609a69382c"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:eeed386971bb8afc3ec45593df6a1154d680d87be1209ef8e782e44f85f47e64"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:962d1a3067129152cee3e172213486cb218a6bad703836991f46f216caefcf00"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:26eb2eebf150a33ebf088e67c1acf37eb2ac4133d9bfccbaa011ad2148c08b42"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b2d6da553980c590487f2e7fd3ec9c1ad8805ff2ec77977b92faa7e3ca14e1f"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:335e2f355a0c544a88854e2c053aff8a3f398b84a263a96fa19d063ca1fe513a"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:204e08f807b1d83f5f0efea30c4e680afe26a43dec8ba614a45fa698a7ef0a19"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-win32.whl", hash = "sha256:05bf7b3ed01c8a562bb7e840f864c58acedbd6924eb616367c0bd0a760bdf483"}, + {file = "grpcio_tools-1.59.0-cp311-cp311-win_amd64.whl", hash = "sha256:df85096fcac7cea8aa5bd84b7a39c4cdbf556b93669bb4772eb96aacd3222a4e"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:240a7a3c2c54f77f1f66085a635bca72003d02f56a670e7db19aec531eda8f78"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:6119f62c462d119c63227b9534210f0f13506a888151b9bf586f71e7edf5088b"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:387662bee8e4c0b52cc0f61eaaca0ca583f5b227103f685b76083a3590a71a3e"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f0da5861ee276ca68493b217daef358960e8527cc63c7cb292ca1c9c54939af"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0f0806de1161c7f248e4c183633ee7a58dfe45c2b77ddf0136e2e7ad0650b1b"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c683be38a9bf4024c223929b4cd2f0a0858c94e9dc8b36d7eaa5a48ce9323a6f"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f965707da2b48a33128615bcfebedd215a3a30e346447e885bb3da37a143177a"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-win32.whl", hash = "sha256:2ee960904dde12a7fa48e1591a5b3eeae054bdce57bacf9fd26685a98138f5bf"}, + {file = "grpcio_tools-1.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:71cc6db1d66da3bc3730d9937bddc320f7b1f1dfdff6342bcb5741515fe4110b"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-linux_armv7l.whl", hash = "sha256:f6263b85261b62471cb97b7505df72d72b8b62e5e22d8184924871a6155b4dbf"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:b8e95d921cc2a1521d4750eedefec9f16031457920a6677edebe9d1b2ad6ae60"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:cb63055739808144b541986291679d643bae58755d0eb082157c4d4c04443905"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c4634b3589efa156a8d5860c0a2547315bd5c9e52d14c960d716fe86e0927be"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d970aa26854f535ffb94ea098aa8b43de020d9a14682e4a15dcdaeac7801b27"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:821dba464d84ebbcffd9d420302404db2fa7a40c7ff4c4c4c93726f72bfa2769"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0548e901894399886ff4a4cd808cb850b60c021feb4a8977a0751f14dd7e55d9"}, + {file = "grpcio_tools-1.59.0-cp37-cp37m-win_amd64.whl", hash = "sha256:bb87158dbbb9e5a79effe78d54837599caa16df52d8d35366e06a91723b587ae"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:1d551ff42962c7c333c3da5c70d5e617a87dee581fa2e2c5ae2d5137c8886779"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:4ee443abcd241a5befb05629013fbf2eac637faa94aaa3056351aded8a31c1bc"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:520c0c83ea79d14b0679ba43e19c64ca31d30926b26ad2ca7db37cbd89c167e2"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9fc02a6e517c34dcf885ff3b57260b646551083903e3d2c780b4971ce7d4ab7c"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6aec8a4ed3808b7dfc1276fe51e3e24bec0eeaf610d395bcd42934647cf902a3"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:99b3bde646720bbfb77f263f5ba3e1a0de50632d43c38d405a0ef9c7e94373cd"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:51d9595629998d8b519126c5a610f15deb0327cd6325ed10796b47d1d292e70b"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-win32.whl", hash = "sha256:bfa4b2b7d21c5634b62e5f03462243bd705adc1a21806b5356b8ce06d902e160"}, + {file = "grpcio_tools-1.59.0-cp38-cp38-win_amd64.whl", hash = "sha256:9ed05197c5ab071e91bcef28901e97ca168c4ae94510cb67a14cb4931b94255a"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:498e7be0b14385980efa681444ba481349c131fc5ec88003819f5d929646947c"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:b519f2ecde9a579cad2f4a7057d5bb4e040ad17caab8b5e691ed7a13b9db0be9"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:ef3e8aca2261f7f07436d4e2111556c1fb9bf1f9cfcdf35262743ccdee1b6ce9"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a7f226b741b2ebf7e2d0779d2c9b17f446d1b839d59886c1619e62cc2ae472"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:784aa52965916fec5afa1a28eeee6f0073bb43a2a1d7fedf963393898843077a"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e312ddc2d8bec1a23306a661ad52734f984c9aad5d8f126ebb222a778d95407d"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:868892ad9e00651a38dace3e4924bae82fc4fd4df2c65d37b74381570ee8deb1"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-win32.whl", hash = "sha256:a4f6cae381f21fee1ef0a5cbbbb146680164311157ae618edf3061742d844383"}, + {file = "grpcio_tools-1.59.0-cp39-cp39-win_amd64.whl", hash = "sha256:4a10e59cca462208b489478340b52a96d64e8b8b6f1ac097f3e8cb211d3f66c0"}, +] + +[package.dependencies] +grpcio = ">=1.59.0" +protobuf = ">=4.21.6,<5.0dev" +setuptools = "*" + +[[package]] +name = "grpclib" +version = "0.4.6" +description = "Pure-Python gRPC implementation for asyncio" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpclib-0.4.6.tar.gz", hash = "sha256:595d05236ca8b8f8e433f5bf6095e6354c1d8777d003ddaf5288efa9611e3fd6"}, +] + +[package.dependencies] +h2 = ">=3.1.0,<5" +multidict = "*" + +[package.extras] +protobuf = ["protobuf (>=3.20.0)"] + +[[package]] +name = "h2" +version = "4.1.0" +description = "HTTP/2 State-Machine based protocol implementation" +category = "main" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d"}, + {file = "h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"}, +] + +[package.dependencies] +hpack = ">=4.0,<5" +hyperframe = ">=6.0,<7" + +[[package]] +name = "hpack" +version = "4.0.0" +description = "Pure-Python HPACK header compression" +category = "main" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"}, + {file = "hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"}, +] + +[[package]] +name = "hyperframe" +version = "6.0.1" +description = "HTTP/2 framing layer for Python" +category = "main" +optional = false +python-versions = ">=3.6.1" +files = [ + {file = "hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15"}, + {file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"}, +] + +[[package]] +name = "isort" +version = "5.12.0" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, +] + +[package.extras] +colors = ["colorama (>=0.4.3)"] +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] +plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] + +[[package]] +name = "multidict" +version = "6.0.4" +description = "multidict implementation" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, + {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, + {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, + {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, + {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, + {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, + {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, + {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, + {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, + {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, + {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, + {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, + {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pastel" +version = "0.2.1" +description = "Bring colors to your terminal." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"}, + {file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"}, +] + +[[package]] +name = "pathspec" +version = "0.11.2" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, +] + +[[package]] +name = "platformdirs" +version = "3.11.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, + {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, +] + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] + +[[package]] +name = "poethepoet" +version = "0.22.1" +description = "A task runner that works well with poetry." +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "poethepoet-0.22.1-py3-none-any.whl", hash = "sha256:1da4cd00d3b2c44b811c91616a744cf71094a26a299ea9956025162d34eef1a5"}, + {file = "poethepoet-0.22.1.tar.gz", hash = "sha256:e758bcac731fa9ac0b812389589541e32b825c4a1894e16fa90aeb1946ba2823"}, +] + +[package.dependencies] +pastel = ">=0.2.1,<0.3.0" +tomli = ">=1.2.2" + +[package.extras] +poetry-plugin = ["poetry (>=1.0,<2.0)"] + +[[package]] +name = "protobuf" +version = "4.24.4" +description = "" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "protobuf-4.24.4-cp310-abi3-win32.whl", hash = "sha256:ec9912d5cb6714a5710e28e592ee1093d68c5ebfeda61983b3f40331da0b1ebb"}, + {file = "protobuf-4.24.4-cp310-abi3-win_amd64.whl", hash = "sha256:1badab72aa8a3a2b812eacfede5020472e16c6b2212d737cefd685884c191085"}, + {file = "protobuf-4.24.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8e61a27f362369c2f33248a0ff6896c20dcd47b5d48239cb9720134bef6082e4"}, + {file = "protobuf-4.24.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:bffa46ad9612e6779d0e51ae586fde768339b791a50610d85eb162daeb23661e"}, + {file = "protobuf-4.24.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:b493cb590960ff863743b9ff1452c413c2ee12b782f48beca77c8da3e2ffe9d9"}, + {file = "protobuf-4.24.4-cp37-cp37m-win32.whl", hash = "sha256:dbbed8a56e56cee8d9d522ce844a1379a72a70f453bde6243e3c86c30c2a3d46"}, + {file = "protobuf-4.24.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6b7d2e1c753715dcfe9d284a25a52d67818dd43c4932574307daf836f0071e37"}, + {file = "protobuf-4.24.4-cp38-cp38-win32.whl", hash = "sha256:02212557a76cd99574775a81fefeba8738d0f668d6abd0c6b1d3adcc75503dbe"}, + {file = "protobuf-4.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:2fa3886dfaae6b4c5ed2730d3bf47c7a38a72b3a1f0acb4d4caf68e6874b947b"}, + {file = "protobuf-4.24.4-cp39-cp39-win32.whl", hash = "sha256:b77272f3e28bb416e2071186cb39efd4abbf696d682cbb5dc731308ad37fa6dd"}, + {file = "protobuf-4.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:9fee5e8aa20ef1b84123bb9232b3f4a5114d9897ed89b4b8142d81924e05d79b"}, + {file = "protobuf-4.24.4-py3-none-any.whl", hash = "sha256:80797ce7424f8c8d2f2547e2d42bfbb6c08230ce5832d6c099a37335c9c90a92"}, + {file = "protobuf-4.24.4.tar.gz", hash = "sha256:5a70731910cd9104762161719c3d883c960151eea077134458503723b60e3667"}, +] + +[[package]] +name = "setuptools" +version = "68.2.2" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.11" +content-hash = "10972b98673806fdfa45f9143423bf37923ed4c296ae8f0be0daeb27895a6a73" diff --git a/protos/python/pyproject.toml b/protos/python/pyproject.toml new file mode 100644 index 00000000000000..7efa394c171c36 --- /dev/null +++ b/protos/python/pyproject.toml @@ -0,0 +1,30 @@ +[tool.poetry] +name = "aptos-protos" +version = "1.1.2" +description = "Code generated from protobuf definitions for the Aptos tech stack" +authors = ["Aptos Labs "] +license = "Apache-2.0" +readme = "README.md" +repository = "https://github.com/aptos-labs/aptos-core" +homepage = "https://github.com/aptos-labs/aptos-core/tree/main/protos/python" +keywords = ["web3", "aptos", "blockchain", "indexer"] +packages = [{include = "aptos_protos"}] + +[tool.poe.tasks] +generate = "./generate.sh" + +[tool.poetry.dependencies] +python = "^3.11" +grpcio = "^1.57.0" +protobuf = "^4.24.2" +grpclib = "^0.4.5" + +[tool.poetry.group.dev.dependencies] +grpcio-tools = "^1.57.0" +poethepoet = "^0.22.0" +black = "^23.7.0" +isort = "^5.12.0" + +[build-system] +requires = ["poetry-core>=1.4.2"] +build-backend = "poetry.core.masonry.api" diff --git a/protos/rust/CHANGELOG.md b/protos/rust/CHANGELOG.md new file mode 100644 index 00000000000000..42e42a4c31b369 --- /dev/null +++ b/protos/rust/CHANGELOG.md @@ -0,0 +1,8 @@ +# Aptos Protos Changelog + +All notable changes to the aptos-protos crate will be captured in this file. This changelog is written by hand for now. It adheres to the format set out by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## Unreleased + +## 1.1.2 (2023-10-17) +- Initial release to crates.io. diff --git a/protos/rust/Cargo.toml b/protos/rust/Cargo.toml new file mode 100644 index 00000000000000..17d0ab966072fe --- /dev/null +++ b/protos/rust/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "aptos-protos" +version = "1.1.2" +authors = ["Aptos Labs "] +description = "Code generated from Aptos protobuf definitions" +repository = "https://github.com/aptos-labs/aptos-indexer-processors" +homepage = "https://aptoslabs.com" +license = "Apache-2.0" +publish = true +edition = "2021" + +[dependencies] +futures-core = { workspace = true } +pbjson = { workspace = true } +prost = { workspace = true } +prost-types = { workspace = true } +serde = { workspace = true } +tonic = { workspace = true } diff --git a/protos/rust/src/lib.rs b/protos/rust/src/lib.rs new file mode 100644 index 00000000000000..9af20b28c1c98c --- /dev/null +++ b/protos/rust/src/lib.rs @@ -0,0 +1,5 @@ +// Copyright © Aptos Foundation + +#[allow(clippy::all)] +mod pb; +pub use pb::aptos::*; diff --git a/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.rs b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.rs new file mode 100644 index 00000000000000..0a74c48967068a --- /dev/null +++ b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.rs @@ -0,0 +1,208 @@ +// Copyright © Aptos Foundation + +// @generated +/// Transaction is a simplified representation for the transaction +/// happened on the chain. Mainly built for streaming into BigQuery. +/// It matches with the structure defined for the transaction in Indexer. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Transaction { + #[prost(int64, required, tag="1")] + pub version: i64, + #[prost(int64, required, tag="2")] + pub block_height: i64, + #[prost(string, required, tag="3")] + pub hash: ::prost::alloc::string::String, + #[prost(string, required, tag="4")] + pub r#type: ::prost::alloc::string::String, + #[prost(string, optional, tag="5")] + pub payload: ::core::option::Option<::prost::alloc::string::String>, + #[prost(string, required, tag="6")] + pub state_change_hash: ::prost::alloc::string::String, + #[prost(string, required, tag="7")] + pub event_root_hash: ::prost::alloc::string::String, + #[prost(string, optional, tag="8")] + pub state_checkpoint_hash: ::core::option::Option<::prost::alloc::string::String>, + #[prost(uint64, required, tag="9")] + pub gas_used: u64, + #[prost(bool, required, tag="10")] + pub success: bool, + #[prost(string, required, tag="11")] + pub vm_status: ::prost::alloc::string::String, + #[prost(string, required, tag="12")] + pub accumulator_root_hash: ::prost::alloc::string::String, + #[prost(int64, required, tag="13")] + pub num_events: i64, + #[prost(int64, required, tag="14")] + pub num_write_set_changes: i64, + #[prost(int64, required, tag="15")] + pub epoch: i64, + #[prost(int64, required, tag="16")] + pub inserted_at: i64, +} +/// Encoded file descriptor set for the `aptos.bigquery_schema.transaction.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0x8a, 0x14, 0x0a, 0x2a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x24, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x22, 0xa3, 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x02, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x02, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x02, 0x28, 0x09, + 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x02, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x19, 0x0a, 0x08, + 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x02, 0x28, 0x04, 0x52, 0x07, + 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, + 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, + 0x0a, 0x15, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x09, 0x52, 0x13, 0x61, + 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x0d, 0x20, 0x02, 0x28, 0x03, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x03, + 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x0f, 0x20, + 0x02, 0x28, 0x03, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x02, 0x28, 0x03, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0xeb, 0x01, 0x0a, 0x28, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, + 0x42, 0x54, 0xaa, 0x02, 0x23, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x42, 0x69, 0x67, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x23, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x5c, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5c, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x2f, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x26, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x69, 0x67, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x3a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xa1, 0x0d, 0x0a, 0x06, 0x12, 0x04, + 0x08, 0x00, 0x20, 0x01, 0x0a, 0xd7, 0x02, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x08, 0x00, 0x12, 0x1a, + 0x86, 0x02, 0x20, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x72, 0x75, 0x6e, 0x73, 0x20, 0x6f, 0x76, + 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x2c, 0x20, 0x74, 0x68, 0x75, 0x73, 0x20, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x29, 0x0a, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x46, 0x6f, + 0x72, 0x20, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, 0x0a, 0x20, 0x60, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x60, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6c, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x30, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x20, 0x60, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x60, 0x2e, 0x0a, 0x20, + 0x54, 0x6f, 0x20, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x20, 0x68, 0x61, 0x73, 0x73, 0x6c, 0x65, 0x2c, 0x20, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x32, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x64, 0x20, 0x68, 0x65, 0x72, 0x65, 0x2e, 0x0a, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, + 0x0a, 0x01, 0x02, 0x12, 0x03, 0x0a, 0x00, 0x2d, 0x0a, 0xd6, 0x01, 0x0a, 0x02, 0x04, 0x00, 0x12, + 0x04, 0x0f, 0x00, 0x20, 0x01, 0x1a, 0xc9, 0x01, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, + 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x20, + 0x4d, 0x61, 0x69, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x0a, 0x20, 0x49, 0x74, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, + 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x0f, 0x08, 0x13, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x10, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x00, 0x04, 0x12, 0x03, 0x10, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, + 0x05, 0x12, 0x03, 0x10, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, + 0x03, 0x10, 0x13, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x10, + 0x1d, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x11, 0x04, 0x24, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x11, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x11, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x11, 0x13, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x11, 0x22, 0x23, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, + 0x03, 0x12, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x12, + 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x12, 0x0d, 0x13, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x12, 0x14, 0x18, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x12, 0x1b, 0x1c, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x13, 0x04, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x03, 0x04, 0x12, 0x03, 0x13, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, + 0x12, 0x03, 0x13, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, + 0x13, 0x14, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x13, 0x1b, + 0x1c, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x14, 0x04, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x04, 0x12, 0x03, 0x14, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x14, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x04, 0x01, 0x12, 0x03, 0x14, 0x14, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, + 0x03, 0x12, 0x03, 0x14, 0x1e, 0x1f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, + 0x15, 0x04, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x04, 0x12, 0x03, 0x15, 0x04, + 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, 0x03, 0x15, 0x0d, 0x13, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x15, 0x14, 0x25, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x15, 0x28, 0x29, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x00, 0x02, 0x06, 0x12, 0x03, 0x16, 0x04, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, + 0x04, 0x12, 0x03, 0x16, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, + 0x03, 0x16, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x16, + 0x14, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x16, 0x26, 0x27, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, 0x17, 0x04, 0x2e, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x07, 0x04, 0x12, 0x03, 0x17, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x07, 0x05, 0x12, 0x03, 0x17, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x07, 0x01, 0x12, 0x03, 0x17, 0x14, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, + 0x12, 0x03, 0x17, 0x2c, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x18, + 0x04, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x04, 0x12, 0x03, 0x18, 0x04, 0x0c, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x18, 0x0d, 0x13, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x18, 0x14, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x18, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x09, 0x12, 0x03, 0x19, 0x04, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x04, + 0x12, 0x03, 0x19, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x05, 0x12, 0x03, + 0x19, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x01, 0x12, 0x03, 0x19, 0x12, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x09, 0x03, 0x12, 0x03, 0x19, 0x1c, 0x1e, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0a, 0x12, 0x03, 0x1a, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0a, 0x04, 0x12, 0x03, 0x1a, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0a, 0x05, 0x12, 0x03, 0x1a, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, + 0x01, 0x12, 0x03, 0x1a, 0x14, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0a, 0x03, 0x12, + 0x03, 0x1a, 0x20, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0b, 0x12, 0x03, 0x1b, 0x04, + 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x04, 0x12, 0x03, 0x1b, 0x04, 0x0c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0b, 0x05, 0x12, 0x03, 0x1b, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x03, 0x1b, 0x14, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0b, 0x03, 0x12, 0x03, 0x1b, 0x2c, 0x2e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x0c, 0x12, 0x03, 0x1c, 0x04, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x04, 0x12, + 0x03, 0x1c, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x05, 0x12, 0x03, 0x1c, + 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x03, 0x1c, 0x13, 0x1d, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0c, 0x03, 0x12, 0x03, 0x1c, 0x20, 0x22, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0d, 0x12, 0x03, 0x1d, 0x04, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x0d, 0x04, 0x12, 0x03, 0x1d, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x0d, 0x05, 0x12, 0x03, 0x1d, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x01, + 0x12, 0x03, 0x1d, 0x13, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0d, 0x03, 0x12, 0x03, + 0x1d, 0x2b, 0x2d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0e, 0x12, 0x03, 0x1e, 0x04, 0x1e, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x04, 0x12, 0x03, 0x1e, 0x04, 0x0c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0e, 0x05, 0x12, 0x03, 0x1e, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x03, 0x1e, 0x13, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x0e, 0x03, 0x12, 0x03, 0x1e, 0x1b, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x0f, + 0x12, 0x03, 0x1f, 0x04, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x04, 0x12, 0x03, + 0x1f, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x05, 0x12, 0x03, 0x1f, 0x0d, + 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x01, 0x12, 0x03, 0x1f, 0x13, 0x1e, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x0f, 0x03, 0x12, 0x03, 0x1f, 0x21, 0x23, +]; +include!("aptos.bigquery_schema.transaction.v1.serde.rs"); +// @@protoc_insertion_point(module) diff --git a/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.serde.rs b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.serde.rs new file mode 100644 index 00000000000000..99282cd88ad010 --- /dev/null +++ b/protos/rust/src/pb/aptos.bigquery_schema.transaction.v1.serde.rs @@ -0,0 +1,303 @@ +// Copyright © Aptos Foundation + +// @generated +impl serde::Serialize for Transaction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 14; + if self.payload.is_some() { + len += 1; + } + if self.state_checkpoint_hash.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.bigquery_schema.transaction.v1.Transaction", len)?; + struct_ser.serialize_field("version", ToString::to_string(&self.version).as_str())?; + struct_ser.serialize_field("blockHeight", ToString::to_string(&self.block_height).as_str())?; + struct_ser.serialize_field("hash", &self.hash)?; + struct_ser.serialize_field("type", &self.r#type)?; + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + struct_ser.serialize_field("stateChangeHash", &self.state_change_hash)?; + struct_ser.serialize_field("eventRootHash", &self.event_root_hash)?; + if let Some(v) = self.state_checkpoint_hash.as_ref() { + struct_ser.serialize_field("stateCheckpointHash", v)?; + } + struct_ser.serialize_field("gasUsed", ToString::to_string(&self.gas_used).as_str())?; + struct_ser.serialize_field("success", &self.success)?; + struct_ser.serialize_field("vmStatus", &self.vm_status)?; + struct_ser.serialize_field("accumulatorRootHash", &self.accumulator_root_hash)?; + struct_ser.serialize_field("numEvents", ToString::to_string(&self.num_events).as_str())?; + struct_ser.serialize_field("numWriteSetChanges", ToString::to_string(&self.num_write_set_changes).as_str())?; + struct_ser.serialize_field("epoch", ToString::to_string(&self.epoch).as_str())?; + struct_ser.serialize_field("insertedAt", ToString::to_string(&self.inserted_at).as_str())?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Transaction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "version", + "block_height", + "blockHeight", + "hash", + "type", + "payload", + "state_change_hash", + "stateChangeHash", + "event_root_hash", + "eventRootHash", + "state_checkpoint_hash", + "stateCheckpointHash", + "gas_used", + "gasUsed", + "success", + "vm_status", + "vmStatus", + "accumulator_root_hash", + "accumulatorRootHash", + "num_events", + "numEvents", + "num_write_set_changes", + "numWriteSetChanges", + "epoch", + "inserted_at", + "insertedAt", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Version, + BlockHeight, + Hash, + Type, + Payload, + StateChangeHash, + EventRootHash, + StateCheckpointHash, + GasUsed, + Success, + VmStatus, + AccumulatorRootHash, + NumEvents, + NumWriteSetChanges, + Epoch, + InsertedAt, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "version" => Ok(GeneratedField::Version), + "blockHeight" | "block_height" => Ok(GeneratedField::BlockHeight), + "hash" => Ok(GeneratedField::Hash), + "type" => Ok(GeneratedField::Type), + "payload" => Ok(GeneratedField::Payload), + "stateChangeHash" | "state_change_hash" => Ok(GeneratedField::StateChangeHash), + "eventRootHash" | "event_root_hash" => Ok(GeneratedField::EventRootHash), + "stateCheckpointHash" | "state_checkpoint_hash" => Ok(GeneratedField::StateCheckpointHash), + "gasUsed" | "gas_used" => Ok(GeneratedField::GasUsed), + "success" => Ok(GeneratedField::Success), + "vmStatus" | "vm_status" => Ok(GeneratedField::VmStatus), + "accumulatorRootHash" | "accumulator_root_hash" => Ok(GeneratedField::AccumulatorRootHash), + "numEvents" | "num_events" => Ok(GeneratedField::NumEvents), + "numWriteSetChanges" | "num_write_set_changes" => Ok(GeneratedField::NumWriteSetChanges), + "epoch" => Ok(GeneratedField::Epoch), + "insertedAt" | "inserted_at" => Ok(GeneratedField::InsertedAt), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Transaction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.bigquery_schema.transaction.v1.Transaction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut version__ = None; + let mut block_height__ = None; + let mut hash__ = None; + let mut r#type__ = None; + let mut payload__ = None; + let mut state_change_hash__ = None; + let mut event_root_hash__ = None; + let mut state_checkpoint_hash__ = None; + let mut gas_used__ = None; + let mut success__ = None; + let mut vm_status__ = None; + let mut accumulator_root_hash__ = None; + let mut num_events__ = None; + let mut num_write_set_changes__ = None; + let mut epoch__ = None; + let mut inserted_at__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Version => { + if version__.is_some() { + return Err(serde::de::Error::duplicate_field("version")); + } + version__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::BlockHeight => { + if block_height__.is_some() { + return Err(serde::de::Error::duplicate_field("blockHeight")); + } + block_height__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Hash => { + if hash__.is_some() { + return Err(serde::de::Error::duplicate_field("hash")); + } + hash__ = Some(map.next_value()?); + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value()?); + } + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map.next_value()?; + } + GeneratedField::StateChangeHash => { + if state_change_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateChangeHash")); + } + state_change_hash__ = Some(map.next_value()?); + } + GeneratedField::EventRootHash => { + if event_root_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("eventRootHash")); + } + event_root_hash__ = Some(map.next_value()?); + } + GeneratedField::StateCheckpointHash => { + if state_checkpoint_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateCheckpointHash")); + } + state_checkpoint_hash__ = map.next_value()?; + } + GeneratedField::GasUsed => { + if gas_used__.is_some() { + return Err(serde::de::Error::duplicate_field("gasUsed")); + } + gas_used__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Success => { + if success__.is_some() { + return Err(serde::de::Error::duplicate_field("success")); + } + success__ = Some(map.next_value()?); + } + GeneratedField::VmStatus => { + if vm_status__.is_some() { + return Err(serde::de::Error::duplicate_field("vmStatus")); + } + vm_status__ = Some(map.next_value()?); + } + GeneratedField::AccumulatorRootHash => { + if accumulator_root_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("accumulatorRootHash")); + } + accumulator_root_hash__ = Some(map.next_value()?); + } + GeneratedField::NumEvents => { + if num_events__.is_some() { + return Err(serde::de::Error::duplicate_field("numEvents")); + } + num_events__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::NumWriteSetChanges => { + if num_write_set_changes__.is_some() { + return Err(serde::de::Error::duplicate_field("numWriteSetChanges")); + } + num_write_set_changes__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Epoch => { + if epoch__.is_some() { + return Err(serde::de::Error::duplicate_field("epoch")); + } + epoch__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::InsertedAt => { + if inserted_at__.is_some() { + return Err(serde::de::Error::duplicate_field("insertedAt")); + } + inserted_at__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(Transaction { + version: version__.ok_or_else(|| serde::de::Error::missing_field("version"))?, + block_height: block_height__.ok_or_else(|| serde::de::Error::missing_field("blockHeight"))?, + hash: hash__.ok_or_else(|| serde::de::Error::missing_field("hash"))?, + r#type: r#type__.ok_or_else(|| serde::de::Error::missing_field("type"))?, + payload: payload__, + state_change_hash: state_change_hash__.ok_or_else(|| serde::de::Error::missing_field("stateChangeHash"))?, + event_root_hash: event_root_hash__.ok_or_else(|| serde::de::Error::missing_field("eventRootHash"))?, + state_checkpoint_hash: state_checkpoint_hash__, + gas_used: gas_used__.ok_or_else(|| serde::de::Error::missing_field("gasUsed"))?, + success: success__.ok_or_else(|| serde::de::Error::missing_field("success"))?, + vm_status: vm_status__.ok_or_else(|| serde::de::Error::missing_field("vmStatus"))?, + accumulator_root_hash: accumulator_root_hash__.ok_or_else(|| serde::de::Error::missing_field("accumulatorRootHash"))?, + num_events: num_events__.ok_or_else(|| serde::de::Error::missing_field("numEvents"))?, + num_write_set_changes: num_write_set_changes__.ok_or_else(|| serde::de::Error::missing_field("numWriteSetChanges"))?, + epoch: epoch__.ok_or_else(|| serde::de::Error::missing_field("epoch"))?, + inserted_at: inserted_at__.ok_or_else(|| serde::de::Error::missing_field("insertedAt"))?, + }) + } + } + deserializer.deserialize_struct("aptos.bigquery_schema.transaction.v1.Transaction", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/rust/src/pb/aptos.indexer.v1.rs b/protos/rust/src/pb/aptos.indexer.v1.rs new file mode 100644 index 00000000000000..bf0cd195243f18 --- /dev/null +++ b/protos/rust/src/pb/aptos.indexer.v1.rs @@ -0,0 +1,159 @@ +// Copyright © Aptos Foundation + +// @generated +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetTransactionsRequest { + /// Required; start version of current stream. + #[prost(uint64, optional, tag="1")] + pub starting_version: ::core::option::Option, + /// Optional; number of transactions to return in current stream. + /// If not present, return an infinite stream of transactions. + #[prost(uint64, optional, tag="2")] + pub transactions_count: ::core::option::Option, + /// Optional; number of transactions in each `TransactionsResponse` for current stream. + /// If not present, default to 1000. If larger than 1000, request will be rejected. + #[prost(uint64, optional, tag="3")] + pub batch_size: ::core::option::Option, +} +/// TransactionsResponse is a batch of transactions. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionsResponse { + /// Required; transactions data. + #[prost(message, repeated, tag="1")] + pub transactions: ::prost::alloc::vec::Vec, + /// Required; chain id. + #[prost(uint64, optional, tag="2")] + pub chain_id: ::core::option::Option, +} +/// Encoded file descriptor set for the `aptos.indexer.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xb2, 0x0f, 0x0a, 0x1f, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x61, 0x77, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x10, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x01, 0x52, + 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x09, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, + 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x32, 0x70, 0x0a, 0x07, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x65, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x86, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x42, 0x0c, 0x52, 0x61, 0x77, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x41, 0x70, 0x74, 0x6f, + 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x41, + 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x41, 0x70, + 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, + 0x4a, 0xda, 0x09, 0x0a, 0x06, 0x12, 0x04, 0x03, 0x00, 0x22, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, + 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, + 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, + 0x12, 0x03, 0x05, 0x00, 0x19, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x30, + 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x09, 0x00, 0x14, 0x01, 0x0a, 0x0a, 0x0a, 0x03, + 0x04, 0x00, 0x01, 0x12, 0x03, 0x09, 0x08, 0x1e, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, + 0x12, 0x03, 0x0b, 0x02, 0x3c, 0x1a, 0x2c, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x3b, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, + 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x0b, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x0b, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x0b, 0x12, 0x22, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0b, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x0b, 0x27, 0x3b, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, + 0x00, 0x08, 0x06, 0x12, 0x03, 0x0b, 0x28, 0x3a, 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x01, 0x12, 0x03, 0x0f, 0x02, 0x3e, 0x1a, 0x7b, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, + 0x6e, 0x20, 0x69, 0x6e, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x04, 0x12, 0x03, 0x0f, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x0f, 0x0b, 0x11, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x0f, 0x12, 0x24, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x0f, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, 0x0f, 0x29, 0x3d, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, + 0x01, 0x08, 0x06, 0x12, 0x03, 0x0f, 0x2a, 0x3c, 0x0a, 0xb4, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x03, 0x13, 0x02, 0x21, 0x1a, 0xa6, 0x01, 0x20, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x65, 0x61, + 0x63, 0x68, 0x20, 0x60, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, + 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x2e, 0x20, + 0x49, 0x66, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 0x31, + 0x30, 0x30, 0x30, 0x2c, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x13, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x13, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x13, 0x12, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x03, 0x12, 0x03, 0x13, 0x1f, 0x20, 0x0a, 0x3e, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x17, + 0x00, 0x1d, 0x01, 0x1a, 0x32, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, + 0x17, 0x08, 0x1c, 0x0a, 0x2b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x19, 0x04, 0x40, + 0x1a, 0x1e, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x04, 0x12, 0x03, 0x19, 0x04, 0x0c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x19, 0x0d, 0x2d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x19, 0x2e, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x19, 0x3e, 0x3f, 0x0a, 0x22, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, + 0x12, 0x03, 0x1c, 0x04, 0x36, 0x1a, 0x15, 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, + 0x3b, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x69, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x01, 0x04, 0x12, 0x03, 0x1c, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x01, 0x05, 0x12, 0x03, 0x1c, 0x0d, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x1c, 0x14, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x1c, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x1c, + 0x21, 0x35, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x1c, 0x22, + 0x34, 0x0a, 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x1f, 0x00, 0x22, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x1f, 0x08, 0x0f, 0x0a, 0x7a, 0x0a, 0x04, 0x06, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x21, 0x04, 0x56, 0x1a, 0x6d, 0x20, 0x47, 0x65, 0x74, 0x20, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x65, 0x6e, 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x21, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x21, 0x18, + 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x21, 0x39, 0x3f, 0x0a, + 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x21, 0x40, 0x54, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.indexer.v1.serde.rs"); +include!("aptos.indexer.v1.tonic.rs"); +// @@protoc_insertion_point(module) diff --git a/protos/rust/src/pb/aptos.indexer.v1.serde.rs b/protos/rust/src/pb/aptos.indexer.v1.serde.rs new file mode 100644 index 00000000000000..a2a36aa92fe079 --- /dev/null +++ b/protos/rust/src/pb/aptos.indexer.v1.serde.rs @@ -0,0 +1,248 @@ +// Copyright © Aptos Foundation + +// @generated +impl serde::Serialize for GetTransactionsRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.starting_version.is_some() { + len += 1; + } + if self.transactions_count.is_some() { + len += 1; + } + if self.batch_size.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.GetTransactionsRequest", len)?; + if let Some(v) = self.starting_version.as_ref() { + struct_ser.serialize_field("startingVersion", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.transactions_count.as_ref() { + struct_ser.serialize_field("transactionsCount", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.batch_size.as_ref() { + struct_ser.serialize_field("batchSize", ToString::to_string(&v).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetTransactionsRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "starting_version", + "startingVersion", + "transactions_count", + "transactionsCount", + "batch_size", + "batchSize", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + StartingVersion, + TransactionsCount, + BatchSize, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "startingVersion" | "starting_version" => Ok(GeneratedField::StartingVersion), + "transactionsCount" | "transactions_count" => Ok(GeneratedField::TransactionsCount), + "batchSize" | "batch_size" => Ok(GeneratedField::BatchSize), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetTransactionsRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.GetTransactionsRequest") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut starting_version__ = None; + let mut transactions_count__ = None; + let mut batch_size__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::StartingVersion => { + if starting_version__.is_some() { + return Err(serde::de::Error::duplicate_field("startingVersion")); + } + starting_version__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::TransactionsCount => { + if transactions_count__.is_some() { + return Err(serde::de::Error::duplicate_field("transactionsCount")); + } + transactions_count__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::BatchSize => { + if batch_size__.is_some() { + return Err(serde::de::Error::duplicate_field("batchSize")); + } + batch_size__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + } + } + Ok(GetTransactionsRequest { + starting_version: starting_version__, + transactions_count: transactions_count__, + batch_size: batch_size__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.GetTransactionsRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for TransactionsResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.transactions.is_empty() { + len += 1; + } + if self.chain_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.indexer.v1.TransactionsResponse", len)?; + if !self.transactions.is_empty() { + struct_ser.serialize_field("transactions", &self.transactions)?; + } + if let Some(v) = self.chain_id.as_ref() { + struct_ser.serialize_field("chainId", ToString::to_string(&v).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TransactionsResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "transactions", + "chain_id", + "chainId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Transactions, + ChainId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "transactions" => Ok(GeneratedField::Transactions), + "chainId" | "chain_id" => Ok(GeneratedField::ChainId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TransactionsResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.indexer.v1.TransactionsResponse") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut transactions__ = None; + let mut chain_id__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Transactions => { + if transactions__.is_some() { + return Err(serde::de::Error::duplicate_field("transactions")); + } + transactions__ = Some(map.next_value()?); + } + GeneratedField::ChainId => { + if chain_id__.is_some() { + return Err(serde::de::Error::duplicate_field("chainId")); + } + chain_id__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + } + } + Ok(TransactionsResponse { + transactions: transactions__.unwrap_or_default(), + chain_id: chain_id__, + }) + } + } + deserializer.deserialize_struct("aptos.indexer.v1.TransactionsResponse", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/rust/src/pb/aptos.indexer.v1.tonic.rs b/protos/rust/src/pb/aptos.indexer.v1.tonic.rs new file mode 100644 index 00000000000000..41ad03c2a7a845 --- /dev/null +++ b/protos/rust/src/pb/aptos.indexer.v1.tonic.rs @@ -0,0 +1,310 @@ +// Copyright © Aptos Foundation + +// @generated +/// Generated client implementations. +pub mod raw_data_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// + #[derive(Debug, Clone)] + pub struct RawDataClient { + inner: tonic::client::Grpc, + } + impl RawDataClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl RawDataClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> RawDataClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + RawDataClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /** Get transactions batch without any filtering from starting version and end if transaction count is present. +*/ + pub async fn get_transactions( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response>, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/aptos.indexer.v1.RawData/GetTransactions", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("aptos.indexer.v1.RawData", "GetTransactions")); + self.inner.server_streaming(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod raw_data_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with RawDataServer. + #[async_trait] + pub trait RawData: Send + Sync + 'static { + /// Server streaming response type for the GetTransactions method. + type GetTransactionsStream: futures_core::Stream< + Item = std::result::Result, + > + + Send + + 'static; + /** Get transactions batch without any filtering from starting version and end if transaction count is present. +*/ + async fn get_transactions( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// + #[derive(Debug)] + pub struct RawDataServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl RawDataServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for RawDataServer + where + T: RawData, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/aptos.indexer.v1.RawData/GetTransactions" => { + #[allow(non_camel_case_types)] + struct GetTransactionsSvc(pub Arc); + impl< + T: RawData, + > tonic::server::ServerStreamingService< + super::GetTransactionsRequest, + > for GetTransactionsSvc { + type Response = super::TransactionsResponse; + type ResponseStream = T::GetTransactionsStream; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).get_transactions(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetTransactionsSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.server_streaming(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for RawDataServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService for RawDataServer { + const NAME: &'static str = "aptos.indexer.v1.RawData"; + } +} diff --git a/protos/rust/src/pb/aptos.internal.fullnode.v1.rs b/protos/rust/src/pb/aptos.internal.fullnode.v1.rs new file mode 100644 index 00000000000000..eb0b86fecbf9b0 --- /dev/null +++ b/protos/rust/src/pb/aptos.internal.fullnode.v1.rs @@ -0,0 +1,292 @@ +// Copyright © Aptos Foundation + +// @generated +// Transaction data is transferred via 1 stream with batches until terminated. +// One stream consists: +// StreamStatus: INIT with version x +// loop k: +// TransactionOutput data(size n) +// StreamStatus: BATCH_END with version x + (k + 1) * n - 1 + +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionsOutput { + #[prost(message, repeated, tag="1")] + pub transactions: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StreamStatus { + #[prost(enumeration="stream_status::StatusType", tag="1")] + pub r#type: i32, + /// Required. Start version of current batch/stream, inclusive. + #[prost(uint64, tag="2")] + pub start_version: u64, + /// End version of current *batch*, inclusive. + #[prost(uint64, optional, tag="3")] + pub end_version: ::core::option::Option, +} +/// Nested message and enum types in `StreamStatus`. +pub mod stream_status { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum StatusType { + Unspecified = 0, + /// Signal for the start of the stream. + Init = 1, + /// Signal for the end of the batch. + BatchEnd = 2, + } + impl StatusType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + StatusType::Unspecified => "STATUS_TYPE_UNSPECIFIED", + StatusType::Init => "STATUS_TYPE_INIT", + StatusType::BatchEnd => "STATUS_TYPE_BATCH_END", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "STATUS_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "STATUS_TYPE_INIT" => Some(Self::Init), + "STATUS_TYPE_BATCH_END" => Some(Self::BatchEnd), + _ => None, + } + } + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GetTransactionsFromNodeRequest { + /// Required; start version of current stream. + /// If not set will panic somewhere + #[prost(uint64, optional, tag="1")] + pub starting_version: ::core::option::Option, + /// Optional; number of transactions to return in current stream. + /// If not set, response streams infinitely. + #[prost(uint64, optional, tag="2")] + pub transactions_count: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionsFromNodeResponse { + /// Making sure that all the responses include a chain id + #[prost(uint32, tag="3")] + pub chain_id: u32, + #[prost(oneof="transactions_from_node_response::Response", tags="1, 2")] + pub response: ::core::option::Option, +} +/// Nested message and enum types in `TransactionsFromNodeResponse`. +pub mod transactions_from_node_response { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Response { + #[prost(message, tag="1")] + Status(super::StreamStatus), + #[prost(message, tag="2")] + Data(super::TransactionsOutput), + } +} +/// Encoded file descriptor set for the `aptos.internal.fullnode.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xf1, 0x17, 0x0a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2f, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x76, 0x31, 0x2f, + 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x1a, + 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5b, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x45, 0x0a, + 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x47, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0a, + 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x22, 0x5a, 0x0a, + 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, + 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, + 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, + 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb8, 0x01, 0x0a, 0x1e, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, + 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x10, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x36, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, + 0x48, 0x01, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa2, 0x01, 0x0a, 0x0c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, + 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x91, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x3a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x38, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x4e, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0xbe, 0x01, 0x0a, 0x1e, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x11, + 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x46, 0xaa, 0x02, 0x1a, 0x41, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x6e, + 0x6f, 0x64, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x26, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5c, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x41, + 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x3a, 0x3a, + 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x6f, 0x64, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0x8d, 0x0e, 0x0a, + 0x06, 0x12, 0x04, 0x03, 0x00, 0x38, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, + 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, + 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, + 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, + 0x23, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x07, 0x00, 0x30, 0x0a, 0xfe, 0x01, 0x0a, + 0x02, 0x04, 0x00, 0x12, 0x04, 0x10, 0x00, 0x12, 0x01, 0x32, 0xf1, 0x01, 0x20, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x20, 0x76, 0x69, 0x61, + 0x20, 0x31, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x20, 0x74, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x4f, 0x6e, 0x65, 0x20, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x73, 0x3a, 0x0a, 0x20, + 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x20, 0x49, + 0x4e, 0x49, 0x54, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x78, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x6f, 0x70, 0x20, 0x6b, 0x3a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x20, 0x64, 0x61, 0x74, 0x61, 0x28, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6e, 0x29, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x3a, 0x20, 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x44, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x78, 0x20, 0x2b, 0x20, 0x28, 0x6b, 0x20, + 0x2b, 0x20, 0x31, 0x29, 0x20, 0x2a, 0x20, 0x6e, 0x20, 0x2d, 0x20, 0x31, 0x0a, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x10, 0x08, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x11, 0x02, 0x3e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, + 0x03, 0x11, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x11, + 0x0b, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x11, 0x2c, 0x38, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x11, 0x3c, 0x3d, 0x0a, 0x0a, + 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x14, 0x00, 0x21, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, + 0x01, 0x12, 0x03, 0x14, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x04, 0x00, 0x12, 0x04, + 0x15, 0x02, 0x1b, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x04, 0x00, 0x01, 0x12, 0x03, 0x15, + 0x07, 0x11, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x16, 0x04, + 0x20, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x16, 0x04, + 0x1b, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x16, 0x1e, + 0x1f, 0x0a, 0x34, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x18, 0x04, 0x19, + 0x1a, 0x25, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x18, 0x04, 0x14, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x01, 0x02, 0x12, 0x03, 0x18, 0x17, 0x18, 0x0a, 0x31, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x03, 0x1a, 0x04, 0x1e, 0x1a, 0x22, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x20, + 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x0a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x1a, 0x04, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x1a, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x00, 0x12, 0x03, 0x1c, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x1c, 0x02, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x1c, 0x0d, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1c, 0x14, + 0x15, 0x0a, 0x4a, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x1e, 0x02, 0x1b, 0x1a, 0x3d, + 0x20, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x2e, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x20, 0x62, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x1e, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x01, 0x02, 0x01, 0x01, 0x12, 0x03, 0x1e, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x1e, 0x19, 0x1a, 0x0a, 0x39, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, + 0x03, 0x20, 0x02, 0x37, 0x1a, 0x2c, 0x20, 0x45, 0x6e, 0x64, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x2a, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x2a, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x04, 0x12, 0x03, 0x20, 0x02, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x05, 0x12, 0x03, 0x20, 0x0b, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x20, 0x12, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x20, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x02, 0x08, 0x12, 0x03, 0x20, 0x22, 0x36, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x02, + 0x08, 0x06, 0x12, 0x03, 0x20, 0x23, 0x35, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x23, + 0x00, 0x2b, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x23, 0x08, 0x26, 0x0a, + 0x5a, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x26, 0x02, 0x3c, 0x1a, 0x4d, 0x20, 0x52, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3b, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x61, 0x6e, 0x69, 0x63, + 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x00, 0x04, 0x12, 0x03, 0x26, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x05, 0x12, 0x03, 0x26, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x26, 0x12, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x03, + 0x26, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x08, 0x12, 0x03, 0x26, 0x27, + 0x3b, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, 0x02, 0x00, 0x08, 0x06, 0x12, 0x03, 0x26, 0x28, 0x3a, + 0x0a, 0x76, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2a, 0x02, 0x3e, 0x1a, 0x69, 0x20, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x3b, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x0a, 0x20, 0x49, + 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x20, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x6c, 0x79, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, + 0x04, 0x12, 0x03, 0x2a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, + 0x03, 0x2a, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x2a, + 0x12, 0x24, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x2a, 0x27, 0x28, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x2a, 0x29, 0x3d, 0x0a, 0x0d, + 0x0a, 0x06, 0x04, 0x02, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x2a, 0x2a, 0x3c, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x03, 0x12, 0x04, 0x2d, 0x00, 0x34, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x03, 0x01, + 0x12, 0x03, 0x2d, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, 0x08, 0x00, 0x12, 0x04, 0x2e, + 0x02, 0x31, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x08, 0x00, 0x01, 0x12, 0x03, 0x2e, 0x08, + 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x03, 0x2f, 0x04, 0x1c, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, 0x03, 0x2f, 0x04, 0x10, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x2f, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, + 0x12, 0x03, 0x30, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x06, 0x12, 0x03, + 0x30, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x01, 0x12, 0x03, 0x30, 0x17, + 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, 0x12, 0x03, 0x30, 0x1e, 0x1f, 0x0a, + 0x44, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x02, 0x12, 0x03, 0x33, 0x02, 0x16, 0x1a, 0x37, 0x20, 0x4d, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x61, 0x20, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x20, 0x69, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x05, 0x12, 0x03, + 0x33, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x01, 0x12, 0x03, 0x33, 0x09, + 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x12, 0x03, 0x33, 0x14, 0x15, 0x0a, + 0x0a, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x36, 0x00, 0x38, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, + 0x00, 0x01, 0x12, 0x03, 0x36, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x37, 0x04, 0x6e, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x37, + 0x08, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x37, 0x20, 0x3e, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x06, 0x12, 0x03, 0x37, 0x49, 0x4f, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x37, 0x50, 0x6c, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.internal.fullnode.v1.serde.rs"); +include!("aptos.internal.fullnode.v1.tonic.rs"); +// @@protoc_insertion_point(module) diff --git a/protos/rust/src/pb/aptos.internal.fullnode.v1.serde.rs b/protos/rust/src/pb/aptos.internal.fullnode.v1.serde.rs new file mode 100644 index 00000000000000..0eed1d40c5e536 --- /dev/null +++ b/protos/rust/src/pb/aptos.internal.fullnode.v1.serde.rs @@ -0,0 +1,546 @@ +// Copyright © Aptos Foundation + +// @generated +impl serde::Serialize for GetTransactionsFromNodeRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.starting_version.is_some() { + len += 1; + } + if self.transactions_count.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.internal.fullnode.v1.GetTransactionsFromNodeRequest", len)?; + if let Some(v) = self.starting_version.as_ref() { + struct_ser.serialize_field("startingVersion", ToString::to_string(&v).as_str())?; + } + if let Some(v) = self.transactions_count.as_ref() { + struct_ser.serialize_field("transactionsCount", ToString::to_string(&v).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GetTransactionsFromNodeRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "starting_version", + "startingVersion", + "transactions_count", + "transactionsCount", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + StartingVersion, + TransactionsCount, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "startingVersion" | "starting_version" => Ok(GeneratedField::StartingVersion), + "transactionsCount" | "transactions_count" => Ok(GeneratedField::TransactionsCount), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GetTransactionsFromNodeRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.internal.fullnode.v1.GetTransactionsFromNodeRequest") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut starting_version__ = None; + let mut transactions_count__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::StartingVersion => { + if starting_version__.is_some() { + return Err(serde::de::Error::duplicate_field("startingVersion")); + } + starting_version__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::TransactionsCount => { + if transactions_count__.is_some() { + return Err(serde::de::Error::duplicate_field("transactionsCount")); + } + transactions_count__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + } + } + Ok(GetTransactionsFromNodeRequest { + starting_version: starting_version__, + transactions_count: transactions_count__, + }) + } + } + deserializer.deserialize_struct("aptos.internal.fullnode.v1.GetTransactionsFromNodeRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for StreamStatus { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if self.start_version != 0 { + len += 1; + } + if self.end_version.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.internal.fullnode.v1.StreamStatus", len)?; + if self.r#type != 0 { + let v = stream_status::StatusType::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if self.start_version != 0 { + struct_ser.serialize_field("startVersion", ToString::to_string(&self.start_version).as_str())?; + } + if let Some(v) = self.end_version.as_ref() { + struct_ser.serialize_field("endVersion", ToString::to_string(&v).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for StreamStatus { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "start_version", + "startVersion", + "end_version", + "endVersion", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + StartVersion, + EndVersion, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "startVersion" | "start_version" => Ok(GeneratedField::StartVersion), + "endVersion" | "end_version" => Ok(GeneratedField::EndVersion), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = StreamStatus; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.internal.fullnode.v1.StreamStatus") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut start_version__ = None; + let mut end_version__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::StartVersion => { + if start_version__.is_some() { + return Err(serde::de::Error::duplicate_field("startVersion")); + } + start_version__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::EndVersion => { + if end_version__.is_some() { + return Err(serde::de::Error::duplicate_field("endVersion")); + } + end_version__ = + map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| x.0) + ; + } + } + } + Ok(StreamStatus { + r#type: r#type__.unwrap_or_default(), + start_version: start_version__.unwrap_or_default(), + end_version: end_version__, + }) + } + } + deserializer.deserialize_struct("aptos.internal.fullnode.v1.StreamStatus", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for stream_status::StatusType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "STATUS_TYPE_UNSPECIFIED", + Self::Init => "STATUS_TYPE_INIT", + Self::BatchEnd => "STATUS_TYPE_BATCH_END", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for stream_status::StatusType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "STATUS_TYPE_UNSPECIFIED", + "STATUS_TYPE_INIT", + "STATUS_TYPE_BATCH_END", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = stream_status::StatusType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(stream_status::StatusType::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(stream_status::StatusType::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "STATUS_TYPE_UNSPECIFIED" => Ok(stream_status::StatusType::Unspecified), + "STATUS_TYPE_INIT" => Ok(stream_status::StatusType::Init), + "STATUS_TYPE_BATCH_END" => Ok(stream_status::StatusType::BatchEnd), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for TransactionsFromNodeResponse { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.chain_id != 0 { + len += 1; + } + if self.response.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.internal.fullnode.v1.TransactionsFromNodeResponse", len)?; + if self.chain_id != 0 { + struct_ser.serialize_field("chainId", &self.chain_id)?; + } + if let Some(v) = self.response.as_ref() { + match v { + transactions_from_node_response::Response::Status(v) => { + struct_ser.serialize_field("status", v)?; + } + transactions_from_node_response::Response::Data(v) => { + struct_ser.serialize_field("data", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TransactionsFromNodeResponse { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "chain_id", + "chainId", + "status", + "data", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ChainId, + Status, + Data, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "chainId" | "chain_id" => Ok(GeneratedField::ChainId), + "status" => Ok(GeneratedField::Status), + "data" => Ok(GeneratedField::Data), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TransactionsFromNodeResponse; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.internal.fullnode.v1.TransactionsFromNodeResponse") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut chain_id__ = None; + let mut response__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::ChainId => { + if chain_id__.is_some() { + return Err(serde::de::Error::duplicate_field("chainId")); + } + chain_id__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Status => { + if response__.is_some() { + return Err(serde::de::Error::duplicate_field("status")); + } + response__ = map.next_value::<::std::option::Option<_>>()?.map(transactions_from_node_response::Response::Status) +; + } + GeneratedField::Data => { + if response__.is_some() { + return Err(serde::de::Error::duplicate_field("data")); + } + response__ = map.next_value::<::std::option::Option<_>>()?.map(transactions_from_node_response::Response::Data) +; + } + } + } + Ok(TransactionsFromNodeResponse { + chain_id: chain_id__.unwrap_or_default(), + response: response__, + }) + } + } + deserializer.deserialize_struct("aptos.internal.fullnode.v1.TransactionsFromNodeResponse", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for TransactionsOutput { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.transactions.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.internal.fullnode.v1.TransactionsOutput", len)?; + if !self.transactions.is_empty() { + struct_ser.serialize_field("transactions", &self.transactions)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TransactionsOutput { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "transactions", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Transactions, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "transactions" => Ok(GeneratedField::Transactions), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TransactionsOutput; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.internal.fullnode.v1.TransactionsOutput") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut transactions__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Transactions => { + if transactions__.is_some() { + return Err(serde::de::Error::duplicate_field("transactions")); + } + transactions__ = Some(map.next_value()?); + } + } + } + Ok(TransactionsOutput { + transactions: transactions__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.internal.fullnode.v1.TransactionsOutput", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/rust/src/pb/aptos.internal.fullnode.v1.tonic.rs b/protos/rust/src/pb/aptos.internal.fullnode.v1.tonic.rs new file mode 100644 index 00000000000000..2e03da7f88bcc8 --- /dev/null +++ b/protos/rust/src/pb/aptos.internal.fullnode.v1.tonic.rs @@ -0,0 +1,320 @@ +// Copyright © Aptos Foundation + +// @generated +/// Generated client implementations. +pub mod fullnode_data_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// + #[derive(Debug, Clone)] + pub struct FullnodeDataClient { + inner: tonic::client::Grpc, + } + impl FullnodeDataClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl FullnodeDataClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> FullnodeDataClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + FullnodeDataClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// + pub async fn get_transactions_from_node( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response< + tonic::codec::Streaming, + >, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "aptos.internal.fullnode.v1.FullnodeData", + "GetTransactionsFromNode", + ), + ); + self.inner.server_streaming(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod fullnode_data_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with FullnodeDataServer. + #[async_trait] + pub trait FullnodeData: Send + Sync + 'static { + /// Server streaming response type for the GetTransactionsFromNode method. + type GetTransactionsFromNodeStream: futures_core::Stream< + Item = std::result::Result< + super::TransactionsFromNodeResponse, + tonic::Status, + >, + > + + Send + + 'static; + /// + async fn get_transactions_from_node( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; + } + /// + #[derive(Debug)] + pub struct FullnodeDataServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl FullnodeDataServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> for FullnodeDataServer + where + T: FullnodeData, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode" => { + #[allow(non_camel_case_types)] + struct GetTransactionsFromNodeSvc(pub Arc); + impl< + T: FullnodeData, + > tonic::server::ServerStreamingService< + super::GetTransactionsFromNodeRequest, + > for GetTransactionsFromNodeSvc { + type Response = super::TransactionsFromNodeResponse; + type ResponseStream = T::GetTransactionsFromNodeStream; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request< + super::GetTransactionsFromNodeRequest, + >, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).get_transactions_from_node(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = GetTransactionsFromNodeSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.server_streaming(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for FullnodeDataServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService for FullnodeDataServer { + const NAME: &'static str = "aptos.internal.fullnode.v1.FullnodeData"; + } +} diff --git a/protos/rust/src/pb/aptos.remote_executor.v1.rs b/protos/rust/src/pb/aptos.remote_executor.v1.rs new file mode 100644 index 00000000000000..9434a5085081ac --- /dev/null +++ b/protos/rust/src/pb/aptos.remote_executor.v1.rs @@ -0,0 +1,72 @@ +// Copyright © Aptos Foundation + +// @generated +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct NetworkMessage { + #[prost(bytes="vec", tag="1")] + pub message: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub message_type: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Empty { +} +/// Encoded file descriptor set for the `aptos.remote_executor.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xa1, 0x06, 0x0a, 0x2a, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x18, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x22, 0x4d, 0x0a, 0x0e, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x32, 0x77, 0x0a, 0x15, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x53, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0xad, 0x01, 0x0a, 0x1c, 0x63, + 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4d, 0x73, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, + 0x03, 0x41, 0x52, 0x58, 0xaa, 0x02, 0x17, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x17, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x5c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x19, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x4a, 0xcf, 0x02, 0x0a, 0x06, 0x12, + 0x04, 0x03, 0x00, 0x12, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, + 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, + 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, + 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, + 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x21, 0x0a, + 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x07, 0x00, 0x0a, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, + 0x00, 0x01, 0x12, 0x03, 0x07, 0x08, 0x16, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x08, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x08, + 0x04, 0x09, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x08, 0x0a, 0x11, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x08, 0x14, 0x15, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x09, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x09, 0x04, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x09, 0x0b, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x09, 0x1a, 0x1b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x0c, 0x00, 0x0e, + 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x0c, 0x08, 0x0d, 0x0a, 0x0a, 0x0a, + 0x02, 0x06, 0x00, 0x12, 0x04, 0x10, 0x00, 0x12, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, + 0x12, 0x03, 0x10, 0x08, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x03, 0x11, + 0x04, 0x3a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x11, 0x08, 0x19, + 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x11, 0x1a, 0x28, 0x0a, 0x0c, + 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x11, 0x33, 0x38, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.remote_executor.v1.serde.rs"); +include!("aptos.remote_executor.v1.tonic.rs"); +// @@protoc_insertion_point(module) diff --git a/protos/rust/src/pb/aptos.remote_executor.v1.serde.rs b/protos/rust/src/pb/aptos.remote_executor.v1.serde.rs new file mode 100644 index 00000000000000..3c799d6e8c7ddb --- /dev/null +++ b/protos/rust/src/pb/aptos.remote_executor.v1.serde.rs @@ -0,0 +1,185 @@ +// Copyright © Aptos Foundation + +// @generated +impl serde::Serialize for Empty { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("aptos.remote_executor.v1.Empty", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Empty { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Empty; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.remote_executor.v1.Empty") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map.next_key::()?.is_some() { + let _ = map.next_value::()?; + } + Ok(Empty { + }) + } + } + deserializer.deserialize_struct("aptos.remote_executor.v1.Empty", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for NetworkMessage { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.message.is_empty() { + len += 1; + } + if !self.message_type.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.remote_executor.v1.NetworkMessage", len)?; + if !self.message.is_empty() { + struct_ser.serialize_field("message", pbjson::private::base64::encode(&self.message).as_str())?; + } + if !self.message_type.is_empty() { + struct_ser.serialize_field("messageType", &self.message_type)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for NetworkMessage { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "message", + "message_type", + "messageType", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Message, + MessageType, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "message" => Ok(GeneratedField::Message), + "messageType" | "message_type" => Ok(GeneratedField::MessageType), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = NetworkMessage; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.remote_executor.v1.NetworkMessage") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut message__ = None; + let mut message_type__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Message => { + if message__.is_some() { + return Err(serde::de::Error::duplicate_field("message")); + } + message__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::MessageType => { + if message_type__.is_some() { + return Err(serde::de::Error::duplicate_field("messageType")); + } + message_type__ = Some(map.next_value()?); + } + } + } + Ok(NetworkMessage { + message: message__.unwrap_or_default(), + message_type: message_type__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.remote_executor.v1.NetworkMessage", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/rust/src/pb/aptos.remote_executor.v1.tonic.rs b/protos/rust/src/pb/aptos.remote_executor.v1.tonic.rs new file mode 100644 index 00000000000000..84cc02c328d07a --- /dev/null +++ b/protos/rust/src/pb/aptos.remote_executor.v1.tonic.rs @@ -0,0 +1,301 @@ +// Copyright © Aptos Foundation + +// @generated +/// Generated client implementations. +pub mod network_message_service_client { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + use tonic::codegen::http::Uri; + /// + #[derive(Debug, Clone)] + pub struct NetworkMessageServiceClient { + inner: tonic::client::Grpc, + } + impl NetworkMessageServiceClient { + /// Attempt to create a new client by connecting to a given endpoint. + pub async fn connect(dst: D) -> Result + where + D: TryInto, + D::Error: Into, + { + let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; + Ok(Self::new(conn)) + } + } + impl NetworkMessageServiceClient + where + T: tonic::client::GrpcService, + T::Error: Into, + T::ResponseBody: Body + Send + 'static, + ::Error: Into + Send, + { + pub fn new(inner: T) -> Self { + let inner = tonic::client::Grpc::new(inner); + Self { inner } + } + pub fn with_origin(inner: T, origin: Uri) -> Self { + let inner = tonic::client::Grpc::with_origin(inner, origin); + Self { inner } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> NetworkMessageServiceClient> + where + F: tonic::service::Interceptor, + T::ResponseBody: Default, + T: tonic::codegen::Service< + http::Request, + Response = http::Response< + >::ResponseBody, + >, + >, + , + >>::Error: Into + Send + Sync, + { + NetworkMessageServiceClient::new(InterceptedService::new(inner, interceptor)) + } + /// Compress requests with the given encoding. + /// + /// This requires the server to support it otherwise it might respond with an + /// error. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.send_compressed(encoding); + self + } + /// Enable decompressing responses. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.inner = self.inner.accept_compressed(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_decoding_message_size(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.inner = self.inner.max_encoding_message_size(limit); + self + } + /// + pub async fn simple_msg_exchange( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result, tonic::Status> { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::new( + tonic::Code::Unknown, + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic::codec::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/aptos.remote_executor.v1.NetworkMessageService/SimpleMsgExchange", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert( + GrpcMethod::new( + "aptos.remote_executor.v1.NetworkMessageService", + "SimpleMsgExchange", + ), + ); + self.inner.unary(req, path, codec).await + } + } +} +/// Generated server implementations. +pub mod network_message_service_server { + #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + use tonic::codegen::*; + /// Generated trait containing gRPC methods that should be implemented for use with NetworkMessageServiceServer. + #[async_trait] + pub trait NetworkMessageService: Send + Sync + 'static { + /// + async fn simple_msg_exchange( + &self, + request: tonic::Request, + ) -> std::result::Result, tonic::Status>; + } + /// + #[derive(Debug)] + pub struct NetworkMessageServiceServer { + inner: _Inner, + accept_compression_encodings: EnabledCompressionEncodings, + send_compression_encodings: EnabledCompressionEncodings, + max_decoding_message_size: Option, + max_encoding_message_size: Option, + } + struct _Inner(Arc); + impl NetworkMessageServiceServer { + pub fn new(inner: T) -> Self { + Self::from_arc(Arc::new(inner)) + } + pub fn from_arc(inner: Arc) -> Self { + let inner = _Inner(inner); + Self { + inner, + accept_compression_encodings: Default::default(), + send_compression_encodings: Default::default(), + max_decoding_message_size: None, + max_encoding_message_size: None, + } + } + pub fn with_interceptor( + inner: T, + interceptor: F, + ) -> InterceptedService + where + F: tonic::service::Interceptor, + { + InterceptedService::new(Self::new(inner), interceptor) + } + /// Enable decompressing requests with the given encoding. + #[must_use] + pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.accept_compression_encodings.enable(encoding); + self + } + /// Compress responses with the given encoding, if the client supports it. + #[must_use] + pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { + self.send_compression_encodings.enable(encoding); + self + } + /// Limits the maximum size of a decoded message. + /// + /// Default: `4MB` + #[must_use] + pub fn max_decoding_message_size(mut self, limit: usize) -> Self { + self.max_decoding_message_size = Some(limit); + self + } + /// Limits the maximum size of an encoded message. + /// + /// Default: `usize::MAX` + #[must_use] + pub fn max_encoding_message_size(mut self, limit: usize) -> Self { + self.max_encoding_message_size = Some(limit); + self + } + } + impl tonic::codegen::Service> + for NetworkMessageServiceServer + where + T: NetworkMessageService, + B: Body + Send + 'static, + B::Error: Into + Send + 'static, + { + type Response = http::Response; + type Error = std::convert::Infallible; + type Future = BoxFuture; + fn poll_ready( + &mut self, + _cx: &mut Context<'_>, + ) -> Poll> { + Poll::Ready(Ok(())) + } + fn call(&mut self, req: http::Request) -> Self::Future { + let inner = self.inner.clone(); + match req.uri().path() { + "/aptos.remote_executor.v1.NetworkMessageService/SimpleMsgExchange" => { + #[allow(non_camel_case_types)] + struct SimpleMsgExchangeSvc(pub Arc); + impl< + T: NetworkMessageService, + > tonic::server::UnaryService + for SimpleMsgExchangeSvc { + type Response = super::Empty; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + (*inner).simple_msg_exchange(request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let inner = inner.0; + let method = SimpleMsgExchangeSvc(inner); + let codec = tonic::codec::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } + _ => { + Box::pin(async move { + Ok( + http::Response::builder() + .status(200) + .header("grpc-status", "12") + .header("content-type", "application/grpc") + .body(empty_body()) + .unwrap(), + ) + }) + } + } + } + } + impl Clone for NetworkMessageServiceServer { + fn clone(&self) -> Self { + let inner = self.inner.clone(); + Self { + inner, + accept_compression_encodings: self.accept_compression_encodings, + send_compression_encodings: self.send_compression_encodings, + max_decoding_message_size: self.max_decoding_message_size, + max_encoding_message_size: self.max_encoding_message_size, + } + } + } + impl Clone for _Inner { + fn clone(&self) -> Self { + Self(Arc::clone(&self.0)) + } + } + impl std::fmt::Debug for _Inner { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self.0) + } + } + impl tonic::server::NamedService + for NetworkMessageServiceServer { + const NAME: &'static str = "aptos.remote_executor.v1.NetworkMessageService"; + } +} diff --git a/protos/rust/src/pb/aptos.transaction.v1.rs b/protos/rust/src/pb/aptos.transaction.v1.rs new file mode 100644 index 00000000000000..cfed692221b03a --- /dev/null +++ b/protos/rust/src/pb/aptos.transaction.v1.rs @@ -0,0 +1,3138 @@ +// Copyright © Aptos Foundation + +// @generated +/// A block on Aptos holds transactions in chronological order (ordered by a transactions monotonically increasing `version` field) +/// All blocks start with a `BlockMetadataTransaction`, and are followed by zero or more transactions. +/// The next `BlockMetadataTransaction` denotes the end of the current block, and the start of the next one. +/// +/// The Block `height` is a strictly monotonically increasing count of the number of blocks, +/// and there will never be a gap in the numbers. It is also a unique identifier: there will never be two blocks with +/// the same `height`. +/// +/// The Genesis Transaction (version 0) is contained within the first block, which has a height of `0` +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Block { + /// Timestamp represents the timestamp of the `BlockMetadataTransaction` (or `GenesisTransaction` for the genesis block) + /// and every transaction in the `transactions` will have the same `timestamp` as the block. + #[prost(message, optional, tag="1")] + pub timestamp: ::core::option::Option, + /// Height represents the block number and ultimately, is the count of `BlockMetadataTransaction` that happened on the chain. + #[prost(uint64, tag="2")] + pub height: u64, + /// Transactions holds all transactions that happened in the Block, which is transactions that happened starting with (and including) + /// a `BlockMetadataTransaction`, and every other transaction up to (but excluding) the next `BlockMetadataTransaction`. + #[prost(message, repeated, tag="3")] + pub transactions: ::prost::alloc::vec::Vec, + /// Chain ID informs us which chain we're trying to index, this is important to ensure that we're not mixing chains within a single pipeline. + #[prost(uint32, tag="4")] + pub chain_id: u32, +} +/// Transaction as it happened on the chain, there are 4 types of transactions: +/// - User Transaction: a user initiated transaction to interact with the chain +/// - Block Metadata Transaction: transactions generated by the chain to group together transactions forming a "block" +/// - State Checkpoint Transaction: transactions generated by the chain so when validator agreed on a particular global state +/// - Genesis Transaction: the first transaction of the chain, with all core contract and validator information baked in +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Transaction { + #[prost(message, optional, tag="1")] + pub timestamp: ::core::option::Option, + #[prost(uint64, tag="2")] + pub version: u64, + #[prost(message, optional, tag="3")] + pub info: ::core::option::Option, + #[prost(uint64, tag="4")] + pub epoch: u64, + #[prost(uint64, tag="5")] + pub block_height: u64, + #[prost(enumeration="transaction::TransactionType", tag="6")] + pub r#type: i32, + #[prost(oneof="transaction::TxnData", tags="7, 8, 9, 10")] + pub txn_data: ::core::option::Option, +} +/// Nested message and enum types in `Transaction`. +pub mod transaction { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum TransactionType { + Unspecified = 0, + Genesis = 1, + BlockMetadata = 2, + StateCheckpoint = 3, + User = 4, + } + impl TransactionType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + TransactionType::Unspecified => "TRANSACTION_TYPE_UNSPECIFIED", + TransactionType::Genesis => "TRANSACTION_TYPE_GENESIS", + TransactionType::BlockMetadata => "TRANSACTION_TYPE_BLOCK_METADATA", + TransactionType::StateCheckpoint => "TRANSACTION_TYPE_STATE_CHECKPOINT", + TransactionType::User => "TRANSACTION_TYPE_USER", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TRANSACTION_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TRANSACTION_TYPE_GENESIS" => Some(Self::Genesis), + "TRANSACTION_TYPE_BLOCK_METADATA" => Some(Self::BlockMetadata), + "TRANSACTION_TYPE_STATE_CHECKPOINT" => Some(Self::StateCheckpoint), + "TRANSACTION_TYPE_USER" => Some(Self::User), + _ => None, + } + } + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum TxnData { + #[prost(message, tag="7")] + BlockMetadata(super::BlockMetadataTransaction), + #[prost(message, tag="8")] + Genesis(super::GenesisTransaction), + #[prost(message, tag="9")] + StateCheckpoint(super::StateCheckpointTransaction), + #[prost(message, tag="10")] + User(super::UserTransaction), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BlockMetadataTransaction { + #[prost(string, tag="1")] + pub id: ::prost::alloc::string::String, + #[prost(uint64, tag="2")] + pub round: u64, + #[prost(message, repeated, tag="3")] + pub events: ::prost::alloc::vec::Vec, + #[prost(bytes="vec", tag="4")] + pub previous_block_votes_bitvec: ::prost::alloc::vec::Vec, + #[prost(string, tag="5")] + pub proposer: ::prost::alloc::string::String, + #[prost(uint32, repeated, tag="6")] + pub failed_proposer_indices: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GenesisTransaction { + #[prost(message, optional, tag="1")] + pub payload: ::core::option::Option, + #[prost(message, repeated, tag="2")] + pub events: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StateCheckpointTransaction { +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UserTransaction { + #[prost(message, optional, tag="1")] + pub request: ::core::option::Option, + #[prost(message, repeated, tag="2")] + pub events: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Event { + #[prost(message, optional, tag="1")] + pub key: ::core::option::Option, + #[prost(uint64, tag="2")] + pub sequence_number: u64, + #[prost(message, optional, tag="3")] + pub r#type: ::core::option::Option, + #[prost(string, tag="5")] + pub type_str: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub data: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionInfo { + #[prost(bytes="vec", tag="1")] + pub hash: ::prost::alloc::vec::Vec, + #[prost(bytes="vec", tag="2")] + pub state_change_hash: ::prost::alloc::vec::Vec, + #[prost(bytes="vec", tag="3")] + pub event_root_hash: ::prost::alloc::vec::Vec, + #[prost(bytes="vec", optional, tag="4")] + pub state_checkpoint_hash: ::core::option::Option<::prost::alloc::vec::Vec>, + #[prost(uint64, tag="5")] + pub gas_used: u64, + #[prost(bool, tag="6")] + pub success: bool, + #[prost(string, tag="7")] + pub vm_status: ::prost::alloc::string::String, + #[prost(bytes="vec", tag="8")] + pub accumulator_root_hash: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="9")] + pub changes: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EventKey { + #[prost(uint64, tag="1")] + pub creation_number: u64, + #[prost(string, tag="2")] + pub account_address: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct UserTransactionRequest { + #[prost(string, tag="1")] + pub sender: ::prost::alloc::string::String, + #[prost(uint64, tag="2")] + pub sequence_number: u64, + #[prost(uint64, tag="3")] + pub max_gas_amount: u64, + #[prost(uint64, tag="4")] + pub gas_unit_price: u64, + #[prost(message, optional, tag="5")] + pub expiration_timestamp_secs: ::core::option::Option, + #[prost(message, optional, tag="6")] + pub payload: ::core::option::Option, + #[prost(message, optional, tag="7")] + pub signature: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WriteSet { + #[prost(enumeration="write_set::WriteSetType", tag="1")] + pub write_set_type: i32, + #[prost(oneof="write_set::WriteSet", tags="2, 3")] + pub write_set: ::core::option::Option, +} +/// Nested message and enum types in `WriteSet`. +pub mod write_set { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum WriteSetType { + Unspecified = 0, + ScriptWriteSet = 1, + DirectWriteSet = 2, + } + impl WriteSetType { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + WriteSetType::Unspecified => "WRITE_SET_TYPE_UNSPECIFIED", + WriteSetType::ScriptWriteSet => "WRITE_SET_TYPE_SCRIPT_WRITE_SET", + WriteSetType::DirectWriteSet => "WRITE_SET_TYPE_DIRECT_WRITE_SET", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "WRITE_SET_TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "WRITE_SET_TYPE_SCRIPT_WRITE_SET" => Some(Self::ScriptWriteSet), + "WRITE_SET_TYPE_DIRECT_WRITE_SET" => Some(Self::DirectWriteSet), + _ => None, + } + } + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum WriteSet { + #[prost(message, tag="2")] + ScriptWriteSet(super::ScriptWriteSet), + #[prost(message, tag="3")] + DirectWriteSet(super::DirectWriteSet), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ScriptWriteSet { + #[prost(string, tag="1")] + pub execute_as: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub script: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DirectWriteSet { + #[prost(message, repeated, tag="1")] + pub write_set_change: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="2")] + pub events: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WriteSetChange { + #[prost(enumeration="write_set_change::Type", tag="1")] + pub r#type: i32, + #[prost(oneof="write_set_change::Change", tags="2, 3, 4, 5, 6, 7")] + pub change: ::core::option::Option, +} +/// Nested message and enum types in `WriteSetChange`. +pub mod write_set_change { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Type { + Unspecified = 0, + DeleteModule = 1, + DeleteResource = 2, + DeleteTableItem = 3, + WriteModule = 4, + WriteResource = 5, + WriteTableItem = 6, + } + impl Type { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Type::Unspecified => "TYPE_UNSPECIFIED", + Type::DeleteModule => "TYPE_DELETE_MODULE", + Type::DeleteResource => "TYPE_DELETE_RESOURCE", + Type::DeleteTableItem => "TYPE_DELETE_TABLE_ITEM", + Type::WriteModule => "TYPE_WRITE_MODULE", + Type::WriteResource => "TYPE_WRITE_RESOURCE", + Type::WriteTableItem => "TYPE_WRITE_TABLE_ITEM", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TYPE_DELETE_MODULE" => Some(Self::DeleteModule), + "TYPE_DELETE_RESOURCE" => Some(Self::DeleteResource), + "TYPE_DELETE_TABLE_ITEM" => Some(Self::DeleteTableItem), + "TYPE_WRITE_MODULE" => Some(Self::WriteModule), + "TYPE_WRITE_RESOURCE" => Some(Self::WriteResource), + "TYPE_WRITE_TABLE_ITEM" => Some(Self::WriteTableItem), + _ => None, + } + } + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Change { + #[prost(message, tag="2")] + DeleteModule(super::DeleteModule), + #[prost(message, tag="3")] + DeleteResource(super::DeleteResource), + #[prost(message, tag="4")] + DeleteTableItem(super::DeleteTableItem), + #[prost(message, tag="5")] + WriteModule(super::WriteModule), + #[prost(message, tag="6")] + WriteResource(super::WriteResource), + #[prost(message, tag="7")] + WriteTableItem(super::WriteTableItem), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeleteModule { + #[prost(string, tag="1")] + pub address: ::prost::alloc::string::String, + #[prost(bytes="vec", tag="2")] + pub state_key_hash: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="3")] + pub module: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeleteResource { + #[prost(string, tag="1")] + pub address: ::prost::alloc::string::String, + #[prost(bytes="vec", tag="2")] + pub state_key_hash: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="3")] + pub r#type: ::core::option::Option, + #[prost(string, tag="4")] + pub type_str: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeleteTableItem { + #[prost(bytes="vec", tag="1")] + pub state_key_hash: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub handle: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub key: ::prost::alloc::string::String, + #[prost(message, optional, tag="4")] + pub data: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DeleteTableData { + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub key_type: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WriteModule { + #[prost(string, tag="1")] + pub address: ::prost::alloc::string::String, + #[prost(bytes="vec", tag="2")] + pub state_key_hash: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="3")] + pub data: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WriteResource { + #[prost(string, tag="1")] + pub address: ::prost::alloc::string::String, + #[prost(bytes="vec", tag="2")] + pub state_key_hash: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="3")] + pub r#type: ::core::option::Option, + #[prost(string, tag="4")] + pub type_str: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub data: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WriteTableData { + #[prost(string, tag="1")] + pub key: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub key_type: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub value: ::prost::alloc::string::String, + #[prost(string, tag="4")] + pub value_type: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WriteTableItem { + #[prost(bytes="vec", tag="1")] + pub state_key_hash: ::prost::alloc::vec::Vec, + #[prost(string, tag="2")] + pub handle: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub key: ::prost::alloc::string::String, + #[prost(message, optional, tag="4")] + pub data: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct TransactionPayload { + #[prost(enumeration="transaction_payload::Type", tag="1")] + pub r#type: i32, + #[prost(oneof="transaction_payload::Payload", tags="2, 3, 4, 5, 6")] + pub payload: ::core::option::Option, +} +/// Nested message and enum types in `TransactionPayload`. +pub mod transaction_payload { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Type { + Unspecified = 0, + EntryFunctionPayload = 1, + ScriptPayload = 2, + ModuleBundlePayload = 3, + WriteSetPayload = 4, + MultisigPayload = 5, + } + impl Type { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Type::Unspecified => "TYPE_UNSPECIFIED", + Type::EntryFunctionPayload => "TYPE_ENTRY_FUNCTION_PAYLOAD", + Type::ScriptPayload => "TYPE_SCRIPT_PAYLOAD", + Type::ModuleBundlePayload => "TYPE_MODULE_BUNDLE_PAYLOAD", + Type::WriteSetPayload => "TYPE_WRITE_SET_PAYLOAD", + Type::MultisigPayload => "TYPE_MULTISIG_PAYLOAD", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TYPE_ENTRY_FUNCTION_PAYLOAD" => Some(Self::EntryFunctionPayload), + "TYPE_SCRIPT_PAYLOAD" => Some(Self::ScriptPayload), + "TYPE_MODULE_BUNDLE_PAYLOAD" => Some(Self::ModuleBundlePayload), + "TYPE_WRITE_SET_PAYLOAD" => Some(Self::WriteSetPayload), + "TYPE_MULTISIG_PAYLOAD" => Some(Self::MultisigPayload), + _ => None, + } + } + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Payload { + #[prost(message, tag="2")] + EntryFunctionPayload(super::EntryFunctionPayload), + #[prost(message, tag="3")] + ScriptPayload(super::ScriptPayload), + #[prost(message, tag="4")] + ModuleBundlePayload(super::ModuleBundlePayload), + #[prost(message, tag="5")] + WriteSetPayload(super::WriteSetPayload), + #[prost(message, tag="6")] + MultisigPayload(super::MultisigPayload), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntryFunctionPayload { + #[prost(message, optional, tag="1")] + pub function: ::core::option::Option, + #[prost(message, repeated, tag="2")] + pub type_arguments: ::prost::alloc::vec::Vec, + #[prost(string, repeated, tag="3")] + pub arguments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(string, tag="4")] + pub entry_function_id_str: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveScriptBytecode { + #[prost(bytes="vec", tag="1")] + pub bytecode: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="2")] + pub abi: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ScriptPayload { + #[prost(message, optional, tag="1")] + pub code: ::core::option::Option, + #[prost(message, repeated, tag="2")] + pub type_arguments: ::prost::alloc::vec::Vec, + #[prost(string, repeated, tag="3")] + pub arguments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MultisigPayload { + #[prost(string, tag="1")] + pub multisig_address: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub transaction_payload: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MultisigTransactionPayload { + #[prost(enumeration="multisig_transaction_payload::Type", tag="1")] + pub r#type: i32, + #[prost(oneof="multisig_transaction_payload::Payload", tags="2")] + pub payload: ::core::option::Option, +} +/// Nested message and enum types in `MultisigTransactionPayload`. +pub mod multisig_transaction_payload { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Type { + Unspecified = 0, + EntryFunctionPayload = 1, + } + impl Type { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Type::Unspecified => "TYPE_UNSPECIFIED", + Type::EntryFunctionPayload => "TYPE_ENTRY_FUNCTION_PAYLOAD", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TYPE_ENTRY_FUNCTION_PAYLOAD" => Some(Self::EntryFunctionPayload), + _ => None, + } + } + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Payload { + #[prost(message, tag="2")] + EntryFunctionPayload(super::EntryFunctionPayload), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ModuleBundlePayload { + #[prost(message, repeated, tag="1")] + pub modules: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveModuleBytecode { + #[prost(bytes="vec", tag="1")] + pub bytecode: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag="2")] + pub abi: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveModule { + #[prost(string, tag="1")] + pub address: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub name: ::prost::alloc::string::String, + #[prost(message, repeated, tag="3")] + pub friends: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub exposed_functions: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="5")] + pub structs: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveFunction { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + #[prost(enumeration="move_function::Visibility", tag="2")] + pub visibility: i32, + #[prost(bool, tag="3")] + pub is_entry: bool, + #[prost(message, repeated, tag="4")] + pub generic_type_params: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="5")] + pub params: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="6")] + pub r#return: ::prost::alloc::vec::Vec, +} +/// Nested message and enum types in `MoveFunction`. +pub mod move_function { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Visibility { + Unspecified = 0, + Private = 1, + Public = 2, + Friend = 3, + } + impl Visibility { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Visibility::Unspecified => "VISIBILITY_UNSPECIFIED", + Visibility::Private => "VISIBILITY_PRIVATE", + Visibility::Public => "VISIBILITY_PUBLIC", + Visibility::Friend => "VISIBILITY_FRIEND", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "VISIBILITY_UNSPECIFIED" => Some(Self::Unspecified), + "VISIBILITY_PRIVATE" => Some(Self::Private), + "VISIBILITY_PUBLIC" => Some(Self::Public), + "VISIBILITY_FRIEND" => Some(Self::Friend), + _ => None, + } + } + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveStruct { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + #[prost(bool, tag="2")] + pub is_native: bool, + #[prost(enumeration="MoveAbility", repeated, tag="3")] + pub abilities: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub generic_type_params: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="5")] + pub fields: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveStructGenericTypeParam { + #[prost(enumeration="MoveAbility", repeated, tag="1")] + pub constraints: ::prost::alloc::vec::Vec, + #[prost(bool, tag="2")] + pub is_phantom: bool, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveStructField { + #[prost(string, tag="1")] + pub name: ::prost::alloc::string::String, + #[prost(message, optional, tag="2")] + pub r#type: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveFunctionGenericTypeParam { + #[prost(enumeration="MoveAbility", repeated, tag="1")] + pub constraints: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveType { + #[prost(enumeration="MoveTypes", tag="1")] + pub r#type: i32, + #[prost(oneof="move_type::Content", tags="3, 4, 5, 6, 7")] + pub content: ::core::option::Option, +} +/// Nested message and enum types in `MoveType`. +pub mod move_type { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] + pub struct ReferenceType { + #[prost(bool, tag="1")] + pub mutable: bool, + #[prost(message, optional, boxed, tag="2")] + pub to: ::core::option::Option<::prost::alloc::boxed::Box>, + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Content { + #[prost(message, tag="3")] + Vector(::prost::alloc::boxed::Box), + #[prost(message, tag="4")] + Struct(super::MoveStructTag), + #[prost(uint32, tag="5")] + GenericTypeParamIndex(u32), + #[prost(message, tag="6")] + Reference(::prost::alloc::boxed::Box), + #[prost(string, tag="7")] + Unparsable(::prost::alloc::string::String), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct WriteSetPayload { + #[prost(message, optional, tag="1")] + pub write_set: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EntryFunctionId { + #[prost(message, optional, tag="1")] + pub module: ::core::option::Option, + #[prost(string, tag="2")] + pub name: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveModuleId { + #[prost(string, tag="1")] + pub address: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub name: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MoveStructTag { + #[prost(string, tag="1")] + pub address: ::prost::alloc::string::String, + #[prost(string, tag="2")] + pub module: ::prost::alloc::string::String, + #[prost(string, tag="3")] + pub name: ::prost::alloc::string::String, + #[prost(message, repeated, tag="4")] + pub generic_type_params: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Signature { + #[prost(enumeration="signature::Type", tag="1")] + pub r#type: i32, + #[prost(oneof="signature::Signature", tags="2, 3, 4, 5, 7")] + pub signature: ::core::option::Option, +} +/// Nested message and enum types in `Signature`. +pub mod signature { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Type { + Unspecified = 0, + Ed25519 = 1, + MultiEd25519 = 2, + MultiAgent = 3, + FeePayer = 4, + SingleSender = 6, + } + impl Type { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Type::Unspecified => "TYPE_UNSPECIFIED", + Type::Ed25519 => "TYPE_ED25519", + Type::MultiEd25519 => "TYPE_MULTI_ED25519", + Type::MultiAgent => "TYPE_MULTI_AGENT", + Type::FeePayer => "TYPE_FEE_PAYER", + Type::SingleSender => "TYPE_SINGLE_SENDER", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TYPE_ED25519" => Some(Self::Ed25519), + "TYPE_MULTI_ED25519" => Some(Self::MultiEd25519), + "TYPE_MULTI_AGENT" => Some(Self::MultiAgent), + "TYPE_FEE_PAYER" => Some(Self::FeePayer), + "TYPE_SINGLE_SENDER" => Some(Self::SingleSender), + _ => None, + } + } + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Signature { + #[prost(message, tag="2")] + Ed25519(super::Ed25519Signature), + #[prost(message, tag="3")] + MultiEd25519(super::MultiEd25519Signature), + #[prost(message, tag="4")] + MultiAgent(super::MultiAgentSignature), + #[prost(message, tag="5")] + FeePayer(super::FeePayerSignature), + #[prost(message, tag="7")] + SingleSender(super::SingleSender), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Ed25519Signature { + #[prost(bytes="vec", tag="1")] + pub public_key: ::prost::alloc::vec::Vec, + #[prost(bytes="vec", tag="2")] + pub signature: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MultiEd25519Signature { + #[prost(bytes="vec", repeated, tag="1")] + pub public_keys: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + #[prost(bytes="vec", repeated, tag="2")] + pub signatures: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec>, + #[prost(uint32, tag="3")] + pub threshold: u32, + #[prost(uint32, repeated, tag="4")] + pub public_key_indices: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MultiAgentSignature { + #[prost(message, optional, tag="1")] + pub sender: ::core::option::Option, + #[prost(string, repeated, tag="2")] + pub secondary_signer_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, repeated, tag="3")] + pub secondary_signers: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FeePayerSignature { + #[prost(message, optional, tag="1")] + pub sender: ::core::option::Option, + #[prost(string, repeated, tag="2")] + pub secondary_signer_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + #[prost(message, repeated, tag="3")] + pub secondary_signers: ::prost::alloc::vec::Vec, + #[prost(string, tag="4")] + pub fee_payer_address: ::prost::alloc::string::String, + #[prost(message, optional, tag="5")] + pub fee_payer_signer: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AnyPublicKey { + #[prost(enumeration="any_public_key::Type", tag="1")] + pub r#type: i32, + #[prost(bytes="vec", tag="2")] + pub public_key: ::prost::alloc::vec::Vec, +} +/// Nested message and enum types in `AnyPublicKey`. +pub mod any_public_key { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Type { + Unspecified = 0, + Ed25519 = 1, + Secp256k1Ecdsa = 2, + } + impl Type { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Type::Unspecified => "TYPE_UNSPECIFIED", + Type::Ed25519 => "TYPE_ED25519", + Type::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TYPE_ED25519" => Some(Self::Ed25519), + "TYPE_SECP256K1_ECDSA" => Some(Self::Secp256k1Ecdsa), + _ => None, + } + } + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AnySignature { + #[prost(enumeration="any_signature::Type", tag="1")] + pub r#type: i32, + #[prost(bytes="vec", tag="2")] + pub signature: ::prost::alloc::vec::Vec, +} +/// Nested message and enum types in `AnySignature`. +pub mod any_signature { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Type { + Unspecified = 0, + Ed25519 = 1, + Secp256k1Ecdsa = 2, + } + impl Type { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Type::Unspecified => "TYPE_UNSPECIFIED", + Type::Ed25519 => "TYPE_ED25519", + Type::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TYPE_ED25519" => Some(Self::Ed25519), + "TYPE_SECP256K1_ECDSA" => Some(Self::Secp256k1Ecdsa), + _ => None, + } + } + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SingleKeySignature { + #[prost(message, optional, tag="1")] + pub public_key: ::core::option::Option, + #[prost(message, optional, tag="2")] + pub signature: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IndexedSignature { + #[prost(uint32, tag="1")] + pub index: u32, + #[prost(message, optional, tag="2")] + pub signature: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MultiKeySignature { + #[prost(message, repeated, tag="1")] + pub public_keys: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="2")] + pub signatures: ::prost::alloc::vec::Vec, + #[prost(uint32, tag="3")] + pub signatures_required: u32, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SingleSender { + #[prost(message, optional, tag="1")] + pub sender: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AccountSignature { + #[prost(enumeration="account_signature::Type", tag="1")] + pub r#type: i32, + #[prost(oneof="account_signature::Signature", tags="2, 3, 5, 6")] + pub signature: ::core::option::Option, +} +/// Nested message and enum types in `AccountSignature`. +pub mod account_signature { + #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] + #[repr(i32)] + pub enum Type { + Unspecified = 0, + Ed25519 = 1, + MultiEd25519 = 2, + SingleKey = 4, + MultiKey = 5, + } + impl Type { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Type::Unspecified => "TYPE_UNSPECIFIED", + Type::Ed25519 => "TYPE_ED25519", + Type::MultiEd25519 => "TYPE_MULTI_ED25519", + Type::SingleKey => "TYPE_SINGLE_KEY", + Type::MultiKey => "TYPE_MULTI_KEY", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "TYPE_UNSPECIFIED" => Some(Self::Unspecified), + "TYPE_ED25519" => Some(Self::Ed25519), + "TYPE_MULTI_ED25519" => Some(Self::MultiEd25519), + "TYPE_SINGLE_KEY" => Some(Self::SingleKey), + "TYPE_MULTI_KEY" => Some(Self::MultiKey), + _ => None, + } + } + } + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Signature { + #[prost(message, tag="2")] + Ed25519(super::Ed25519Signature), + #[prost(message, tag="3")] + MultiEd25519(super::MultiEd25519Signature), + #[prost(message, tag="5")] + SingleKeySignature(super::SingleKeySignature), + #[prost(message, tag="6")] + MultiKeySignature(super::MultiKeySignature), + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum MoveTypes { + Unspecified = 0, + Bool = 1, + U8 = 2, + U16 = 12, + U32 = 13, + U64 = 3, + U128 = 4, + U256 = 14, + Address = 5, + Signer = 6, + /// `{ items: Box }`, + Vector = 7, + /// `(MoveStructTag)`, + Struct = 8, + /// `{ index: u16 }``, + GenericTypeParam = 9, + /// `{ mutable: bool, to: Box }`, + Reference = 10, + /// `(String)`, + Unparsable = 11, +} +impl MoveTypes { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + MoveTypes::Unspecified => "MOVE_TYPES_UNSPECIFIED", + MoveTypes::Bool => "MOVE_TYPES_BOOL", + MoveTypes::U8 => "MOVE_TYPES_U8", + MoveTypes::U16 => "MOVE_TYPES_U16", + MoveTypes::U32 => "MOVE_TYPES_U32", + MoveTypes::U64 => "MOVE_TYPES_U64", + MoveTypes::U128 => "MOVE_TYPES_U128", + MoveTypes::U256 => "MOVE_TYPES_U256", + MoveTypes::Address => "MOVE_TYPES_ADDRESS", + MoveTypes::Signer => "MOVE_TYPES_SIGNER", + MoveTypes::Vector => "MOVE_TYPES_VECTOR", + MoveTypes::Struct => "MOVE_TYPES_STRUCT", + MoveTypes::GenericTypeParam => "MOVE_TYPES_GENERIC_TYPE_PARAM", + MoveTypes::Reference => "MOVE_TYPES_REFERENCE", + MoveTypes::Unparsable => "MOVE_TYPES_UNPARSABLE", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MOVE_TYPES_UNSPECIFIED" => Some(Self::Unspecified), + "MOVE_TYPES_BOOL" => Some(Self::Bool), + "MOVE_TYPES_U8" => Some(Self::U8), + "MOVE_TYPES_U16" => Some(Self::U16), + "MOVE_TYPES_U32" => Some(Self::U32), + "MOVE_TYPES_U64" => Some(Self::U64), + "MOVE_TYPES_U128" => Some(Self::U128), + "MOVE_TYPES_U256" => Some(Self::U256), + "MOVE_TYPES_ADDRESS" => Some(Self::Address), + "MOVE_TYPES_SIGNER" => Some(Self::Signer), + "MOVE_TYPES_VECTOR" => Some(Self::Vector), + "MOVE_TYPES_STRUCT" => Some(Self::Struct), + "MOVE_TYPES_GENERIC_TYPE_PARAM" => Some(Self::GenericTypeParam), + "MOVE_TYPES_REFERENCE" => Some(Self::Reference), + "MOVE_TYPES_UNPARSABLE" => Some(Self::Unparsable), + _ => None, + } + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] +#[repr(i32)] +pub enum MoveAbility { + Unspecified = 0, + Copy = 1, + Drop = 2, + Store = 3, + Key = 4, +} +impl MoveAbility { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + MoveAbility::Unspecified => "MOVE_ABILITY_UNSPECIFIED", + MoveAbility::Copy => "MOVE_ABILITY_COPY", + MoveAbility::Drop => "MOVE_ABILITY_DROP", + MoveAbility::Store => "MOVE_ABILITY_STORE", + MoveAbility::Key => "MOVE_ABILITY_KEY", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "MOVE_ABILITY_UNSPECIFIED" => Some(Self::Unspecified), + "MOVE_ABILITY_COPY" => Some(Self::Copy), + "MOVE_ABILITY_DROP" => Some(Self::Drop), + "MOVE_ABILITY_STORE" => Some(Self::Store), + "MOVE_ABILITY_KEY" => Some(Self::Key), + _ => None, + } + } +} +/// Encoded file descriptor set for the `aptos.transaction.v1` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0x9a, 0xfa, 0x01, 0x0a, 0x26, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x1a, 0x24, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x75, 0x74, 0x69, 0x6c, 0x2f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, + 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x1a, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, + 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, + 0xaf, 0x06, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x02, 0x30, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x25, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x0b, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x57, 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x07, 0x67, 0x65, 0x6e, 0x65, + 0x73, 0x69, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x12, 0x5d, + 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3b, 0x0a, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0xb8, 0x01, 0x0a, 0x0f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, + 0x0a, 0x1c, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x53, 0x49, 0x53, 0x10, 0x01, 0x12, 0x23, + 0x0a, 0x1f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, + 0x41, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x48, + 0x45, 0x43, 0x4b, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x53, 0x45, 0x52, 0x10, 0x04, 0x42, 0x0a, 0x0a, 0x08, 0x74, 0x78, 0x6e, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x8c, 0x02, 0x0a, 0x18, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, + 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, + 0x01, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3d, 0x0a, + 0x1b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x76, 0x6f, 0x74, 0x65, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x76, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x18, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x56, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x69, 0x74, 0x76, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x15, 0x66, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, + 0x22, 0x83, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x33, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8e, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x33, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x30, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2b, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x0e, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x96, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x37, 0x0a, + 0x15, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x13, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x07, 0x67, 0x61, + 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x76, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x76, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x15, + 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x60, 0x0a, 0x08, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x02, 0x30, 0x01, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x91, 0x03, 0x0a, + 0x16, 0x55, 0x73, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x2b, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x0e, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0e, + 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x30, 0x01, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0e, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, + 0x30, 0x01, 0x52, 0x0c, 0x67, 0x61, 0x73, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x5b, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, + 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x17, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x65, 0x63, 0x73, 0x12, 0x42, 0x0a, + 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x3d, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x22, 0x88, 0x03, 0x0a, 0x08, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x51, 0x0a, + 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x50, 0x0a, 0x10, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x12, 0x50, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x53, 0x65, 0x74, 0x22, 0x78, 0x0a, 0x0c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x45, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x45, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x57, 0x52, 0x49, + 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, + 0x43, 0x54, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x02, 0x42, 0x0b, + 0x0a, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x22, 0x6c, 0x0a, 0x0e, 0x53, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x73, 0x12, 0x3b, 0x0a, 0x06, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x06, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x0e, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x4e, 0x0a, 0x10, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x22, 0xea, 0x05, 0x0a, 0x0e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, + 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x4f, + 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, + 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x53, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x69, 0x74, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x46, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x00, 0x52, + 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x4c, 0x0a, 0x0e, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x10, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x22, 0xb5, 0x01, 0x0a, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, + 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, + 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, + 0x16, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x54, 0x41, 0x42, + 0x4c, 0x45, 0x5f, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x04, + 0x12, 0x17, 0x0a, 0x13, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x52, + 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x54, + 0x45, 0x4d, 0x10, 0x06, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x8a, + 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x3a, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x49, 0x64, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x0e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x37, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x61, + 0x67, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x73, 0x74, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x53, + 0x74, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x3e, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x0b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xb7, 0x01, 0x0a, 0x0d, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, + 0x70, 0x65, 0x53, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x72, 0x0a, 0x0e, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x19, 0x0a, + 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9a, 0x01, + 0x0a, 0x0e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4b, + 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x12, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x62, 0x0a, 0x16, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x66, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x48, 0x00, 0x52, 0x14, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4c, 0x0a, 0x0e, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x5f, 0x0a, 0x15, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x48, 0x00, 0x52, 0x13, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x52, 0x0a, 0x10, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, + 0x0f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x22, 0xad, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1f, 0x0a, 0x1b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x46, 0x55, + 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, + 0x12, 0x17, 0x0a, 0x13, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x5f, + 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x55, 0x4c, 0x45, 0x5f, 0x42, 0x55, 0x4e, 0x44, 0x4c, 0x45, 0x5f, + 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x41, 0x59, 0x4c, + 0x4f, 0x41, 0x44, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, + 0x4c, 0x54, 0x49, 0x53, 0x49, 0x47, 0x5f, 0x50, 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x14, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x41, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x08, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0d, 0x74, 0x79, 0x70, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x15, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x53, 0x74, 0x72, 0x22, + 0x66, 0x0a, 0x12, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x79, 0x74, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x34, 0x0a, 0x03, 0x61, 0x62, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x03, 0x61, 0x62, 0x69, 0x22, 0xb2, 0x01, 0x0a, 0x0d, 0x53, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6f, 0x76, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0d, 0x74, 0x79, 0x70, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xbc, 0x01, 0x0a, + 0x0f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x73, 0x69, 0x67, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x13, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x12, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x95, 0x02, 0x0a, 0x1a, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x73, 0x69, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x62, 0x0a, 0x16, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x48, 0x00, 0x52, 0x14, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x3d, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x45, 0x4e, 0x54, 0x52, 0x59, 0x5f, 0x46, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, + 0x41, 0x59, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x22, 0x59, 0x0a, 0x13, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x79, 0x74, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x64, + 0x0a, 0x12, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x79, 0x74, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x32, 0x0a, 0x03, 0x61, 0x62, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x03, 0x61, 0x62, 0x69, 0x22, 0x85, 0x02, 0x0a, 0x0a, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, + 0x4f, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x52, 0x07, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x73, 0x22, 0xd0, 0x03, 0x0a, + 0x0c, 0x4d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, + 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x62, 0x0a, 0x13, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x11, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x36, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x22, + 0x6e, 0x0a, 0x0a, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, + 0x16, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x49, 0x53, + 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, + 0x01, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, + 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x49, 0x53, 0x49, + 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x46, 0x52, 0x49, 0x45, 0x4e, 0x44, 0x10, 0x03, 0x22, + 0x9f, 0x02, 0x0a, 0x0a, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, + 0x3f, 0x0a, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x41, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x09, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x60, 0x0a, 0x13, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, + 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x43, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, + 0x65, 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x70, 0x68, 0x61, 0x6e, + 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x68, 0x61, + 0x6e, 0x74, 0x6f, 0x6d, 0x22, 0x59, 0x0a, 0x0f, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, + 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x63, 0x0a, 0x1c, 0x4d, 0x6f, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, + 0x43, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, + 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x74, 0x73, 0x22, 0xc9, 0x03, 0x0a, 0x08, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1f, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, + 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x54, 0x61, 0x67, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, + 0x39, 0x0a, 0x18, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x15, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4c, 0x0a, 0x09, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0a, 0x75, 0x6e, 0x70, 0x61, + 0x72, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, + 0x75, 0x6e, 0x70, 0x61, 0x72, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x59, 0x0a, 0x0d, 0x52, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x75, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x02, 0x74, 0x6f, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x22, 0x4e, 0x0a, 0x0f, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x77, 0x72, 0x69, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x22, 0x61, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x76, 0x65, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x52, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x0c, 0x4d, 0x6f, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x54, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x13, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, + 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, + 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xd6, 0x04, 0x0a, 0x09, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x42, 0x0a, 0x07, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, + 0x39, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x07, 0x65, 0x64, + 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, 0x52, 0x0a, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, + 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, + 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x74, + 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x49, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x88, 0x01, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, + 0x39, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, + 0x49, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x46, 0x45, 0x45, 0x5f, 0x50, 0x41, 0x59, 0x45, 0x52, 0x10, 0x04, 0x12, 0x16, 0x0a, + 0x12, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x45, 0x4e, + 0x44, 0x45, 0x52, 0x10, 0x06, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x4f, 0x0a, 0x10, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x15, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x32, + 0x35, 0x35, 0x31, 0x39, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2c, 0x0a, 0x12, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x69, 0x63, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x13, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x53, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x72, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x11, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x1a, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x11, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x10, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2a, + 0x0a, 0x11, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x50, 0x61, + 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x66, 0x65, + 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0e, 0x66, 0x65, + 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x22, 0xb4, 0x01, 0x0a, + 0x0c, 0x41, 0x6e, 0x79, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x3b, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x61, 0x70, + 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x48, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x5f, 0x45, 0x43, 0x44, 0x53, + 0x41, 0x10, 0x02, 0x22, 0xb3, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x48, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x01, 0x12, + 0x18, 0x0a, 0x14, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, + 0x31, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x10, 0x02, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6a, 0x0a, 0x10, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x40, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x79, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, + 0x52, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x46, 0x0a, 0x0a, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x12, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x4e, 0x0a, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0xa2, 0x04, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x65, + 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, + 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x07, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, + 0x52, 0x0a, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x64, 0x32, 0x35, + 0x35, 0x31, 0x39, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4b, + 0x65, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x12, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x59, 0x0a, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x4b, 0x65, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6f, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, + 0x31, 0x39, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, + 0x47, 0x4c, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x05, 0x42, 0x0b, 0x0a, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2a, 0xea, 0x02, 0x0a, 0x09, 0x4d, + 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x56, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x53, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x4f, 0x56, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x55, 0x38, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, + 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x55, 0x31, 0x36, 0x10, 0x0c, + 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x55, + 0x33, 0x32, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x53, 0x5f, 0x55, 0x36, 0x34, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x4f, 0x56, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x55, 0x31, 0x32, 0x38, 0x10, 0x04, 0x12, 0x13, 0x0a, + 0x0f, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x55, 0x32, 0x35, 0x36, + 0x10, 0x0e, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, + 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, + 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x52, 0x10, + 0x06, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, + 0x56, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x56, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x08, 0x12, + 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x47, 0x45, + 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, + 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, + 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, + 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x53, 0x5f, 0x55, 0x4e, 0x50, 0x41, 0x52, + 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0b, 0x2a, 0x87, 0x01, 0x0a, 0x0b, 0x4d, 0x6f, 0x76, 0x65, + 0x41, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x4f, 0x56, 0x45, 0x5f, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x44, 0x52, 0x4f, + 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x4d, + 0x4f, 0x56, 0x45, 0x5f, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4b, 0x45, 0x59, 0x10, + 0x04, 0x42, 0x9e, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x10, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x54, 0x58, 0xaa, 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x41, 0x70, 0x74, 0x6f, + 0x73, 0x3a, 0x3a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, + 0x56, 0x31, 0x4a, 0x90, 0x94, 0x01, 0x0a, 0x07, 0x12, 0x05, 0x03, 0x00, 0xf6, 0x03, 0x01, 0x0a, + 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, + 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x1d, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, + 0x03, 0x07, 0x00, 0x2e, 0x0a, 0xa3, 0x05, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x12, 0x00, 0x20, + 0x01, 0x1a, 0x96, 0x05, 0x20, 0x41, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x20, + 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x63, 0x68, 0x72, 0x6f, + 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, + 0x28, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x69, 0x6e, 0x67, 0x20, 0x60, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x29, 0x0a, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x60, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x72, + 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x7a, 0x65, + 0x72, 0x6f, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6e, 0x65, + 0x78, 0x74, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x64, 0x65, + 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x20, 0x6f, 0x6e, + 0x65, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x60, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x60, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x74, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x6c, 0x79, 0x20, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x20, 0x6f, 0x66, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2c, 0x0a, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x65, + 0x76, 0x65, 0x72, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x67, 0x61, 0x70, 0x20, 0x69, 0x6e, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x49, 0x74, 0x20, + 0x69, 0x73, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x61, 0x20, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x74, 0x68, 0x65, + 0x72, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x20, 0x62, 0x65, + 0x20, 0x74, 0x77, 0x6f, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, + 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x60, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x60, 0x2e, 0x0a, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x30, 0x29, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2c, 0x20, + 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x68, 0x61, 0x73, 0x20, 0x61, 0x20, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x30, 0x60, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, + 0x01, 0x12, 0x03, 0x12, 0x08, 0x0d, 0x0a, 0xde, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, + 0x03, 0x15, 0x02, 0x2f, 0x1a, 0xd0, 0x01, 0x20, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x28, 0x6f, 0x72, + 0x20, 0x60, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x29, 0x0a, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x60, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x60, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x68, + 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6d, 0x65, 0x20, 0x60, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x60, 0x20, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x06, + 0x12, 0x03, 0x15, 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x15, 0x21, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x15, 0x2d, + 0x2e, 0x0a, 0x88, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x18, 0x02, 0x29, 0x1a, + 0x7b, 0x20, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x61, 0x74, + 0x65, 0x6c, 0x79, 0x2c, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x20, 0x6f, 0x66, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x20, + 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, 0x18, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x18, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x18, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, + 0x03, 0x18, 0x14, 0x28, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x00, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, + 0x18, 0x15, 0x27, 0x0a, 0x87, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x1c, 0x02, + 0x28, 0x1a, 0xf9, 0x01, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x2c, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, + 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x28, 0x61, 0x6e, 0x64, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x69, 0x6e, 0x67, 0x29, 0x0a, 0x20, 0x61, 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x60, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x20, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x28, 0x62, 0x75, 0x74, 0x20, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, 0x65, 0x78, 0x74, + 0x20, 0x60, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x60, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x1c, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x02, 0x06, 0x12, 0x03, 0x1c, 0x0b, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x03, 0x1c, 0x17, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, + 0x12, 0x03, 0x1c, 0x26, 0x27, 0x0a, 0x99, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, + 0x1f, 0x02, 0x16, 0x1a, 0x8b, 0x01, 0x20, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x49, 0x44, 0x20, + 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x73, 0x20, 0x75, 0x73, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, + 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x77, 0x65, 0x27, 0x72, 0x65, 0x20, 0x74, 0x72, 0x79, + 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x20, + 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, + 0x65, 0x27, 0x72, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x67, 0x20, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x61, 0x20, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x05, 0x12, 0x03, 0x1f, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x1f, 0x09, 0x11, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x1f, 0x14, 0x15, 0x0a, 0x8c, 0x04, 0x0a, 0x02, + 0x04, 0x01, 0x12, 0x04, 0x27, 0x00, 0x3e, 0x01, 0x1a, 0xff, 0x03, 0x20, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x73, 0x20, 0x69, 0x74, 0x20, 0x68, 0x61, + 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x34, + 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0a, 0x20, 0x2d, 0x20, 0x55, 0x73, 0x65, 0x72, 0x20, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x20, 0x75, + 0x73, 0x65, 0x72, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x61, 0x63, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x0a, 0x20, 0x2d, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x20, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x20, 0x61, + 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x0a, 0x20, 0x2d, 0x20, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x6f, + 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x20, + 0x61, 0x67, 0x72, 0x65, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x0a, 0x20, 0x2d, 0x20, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x20, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2c, 0x20, + 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x62, 0x61, 0x6b, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, + 0x01, 0x12, 0x03, 0x27, 0x08, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, + 0x28, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x06, 0x12, 0x03, 0x28, 0x02, + 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, 0x03, 0x28, 0x21, 0x2a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x28, 0x2d, 0x2e, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x29, 0x02, 0x2a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x01, 0x05, 0x12, 0x03, 0x29, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x29, 0x09, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, + 0x03, 0x29, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x08, 0x12, 0x03, 0x29, + 0x15, 0x29, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x29, 0x16, + 0x28, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x2a, 0x02, 0x1b, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x06, 0x12, 0x03, 0x2a, 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x2a, 0x12, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x02, 0x03, 0x12, 0x03, 0x2a, 0x19, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, + 0x12, 0x03, 0x2b, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x05, 0x12, 0x03, + 0x2b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x2b, 0x09, + 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x2b, 0x11, 0x12, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x08, 0x12, 0x03, 0x2b, 0x13, 0x27, 0x0a, 0x0d, 0x0a, + 0x06, 0x04, 0x01, 0x02, 0x03, 0x08, 0x06, 0x12, 0x03, 0x2b, 0x14, 0x26, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x01, 0x02, 0x04, 0x12, 0x03, 0x2c, 0x02, 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x04, 0x05, 0x12, 0x03, 0x2c, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x01, + 0x12, 0x03, 0x2c, 0x09, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x03, 0x12, 0x03, + 0x2c, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x04, 0x08, 0x12, 0x03, 0x2c, 0x1a, + 0x2e, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x02, 0x04, 0x08, 0x06, 0x12, 0x03, 0x2c, 0x1b, 0x2d, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x01, 0x04, 0x00, 0x12, 0x04, 0x2e, 0x02, 0x34, 0x03, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x04, 0x00, 0x01, 0x12, 0x03, 0x2e, 0x07, 0x16, 0x0a, 0x0d, 0x0a, 0x06, + 0x04, 0x01, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x2f, 0x04, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x2f, 0x04, 0x20, 0x0a, 0x0e, 0x0a, 0x07, 0x04, + 0x01, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x2f, 0x23, 0x24, 0x0a, 0x0d, 0x0a, 0x06, 0x04, + 0x01, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x30, 0x04, 0x21, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x30, 0x04, 0x1c, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x30, 0x1f, 0x20, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, + 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x31, 0x04, 0x28, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, + 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x31, 0x04, 0x23, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, + 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x31, 0x26, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, + 0x00, 0x02, 0x03, 0x12, 0x03, 0x32, 0x04, 0x2a, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x03, 0x32, 0x04, 0x25, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, + 0x02, 0x03, 0x02, 0x12, 0x03, 0x32, 0x28, 0x29, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x01, 0x04, 0x00, + 0x02, 0x04, 0x12, 0x03, 0x33, 0x04, 0x1e, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x04, 0x01, 0x12, 0x03, 0x33, 0x04, 0x19, 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x01, 0x04, 0x00, 0x02, + 0x04, 0x02, 0x12, 0x03, 0x33, 0x1c, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x05, 0x12, + 0x03, 0x36, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x06, 0x12, 0x03, 0x36, + 0x02, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x01, 0x12, 0x03, 0x36, 0x12, 0x16, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x05, 0x03, 0x12, 0x03, 0x36, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x01, 0x08, 0x00, 0x12, 0x04, 0x38, 0x02, 0x3d, 0x03, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x08, 0x00, 0x01, 0x12, 0x03, 0x38, 0x08, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, + 0x02, 0x06, 0x12, 0x03, 0x39, 0x04, 0x30, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x06, + 0x12, 0x03, 0x39, 0x04, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x01, 0x12, 0x03, + 0x39, 0x1d, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x06, 0x03, 0x12, 0x03, 0x39, 0x2e, + 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x07, 0x12, 0x03, 0x3a, 0x04, 0x23, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x01, 0x02, 0x07, 0x06, 0x12, 0x03, 0x3a, 0x04, 0x16, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x07, 0x01, 0x12, 0x03, 0x3a, 0x17, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x07, 0x03, 0x12, 0x03, 0x3a, 0x21, 0x22, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x08, + 0x12, 0x03, 0x3b, 0x04, 0x34, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x06, 0x12, 0x03, + 0x3b, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x01, 0x12, 0x03, 0x3b, 0x1f, + 0x2f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x08, 0x03, 0x12, 0x03, 0x3b, 0x32, 0x33, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x09, 0x12, 0x03, 0x3c, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x09, 0x06, 0x12, 0x03, 0x3c, 0x04, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x09, 0x01, 0x12, 0x03, 0x3c, 0x14, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x09, + 0x03, 0x12, 0x03, 0x3c, 0x1b, 0x1d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x04, 0x40, 0x00, + 0x47, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x40, 0x08, 0x20, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x41, 0x02, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x00, 0x05, 0x12, 0x03, 0x41, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x00, 0x01, 0x12, 0x03, 0x41, 0x09, 0x0b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, + 0x12, 0x03, 0x41, 0x0e, 0x0f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x03, 0x42, + 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x05, 0x12, 0x03, 0x42, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x42, 0x09, 0x0e, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x42, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x01, 0x08, 0x12, 0x03, 0x42, 0x13, 0x27, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x02, + 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x42, 0x14, 0x26, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, + 0x02, 0x12, 0x03, 0x43, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x04, 0x12, + 0x03, 0x43, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x06, 0x12, 0x03, 0x43, + 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, 0x12, 0x03, 0x43, 0x11, 0x17, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, 0x43, 0x1a, 0x1b, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x03, 0x44, 0x02, 0x28, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x02, 0x02, 0x03, 0x05, 0x12, 0x03, 0x44, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x44, 0x08, 0x23, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, 0x03, + 0x12, 0x03, 0x44, 0x26, 0x27, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, 0x03, 0x45, + 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x05, 0x12, 0x03, 0x45, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x03, 0x45, 0x09, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x03, 0x45, 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x02, 0x02, 0x05, 0x12, 0x03, 0x46, 0x02, 0x2e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x05, 0x04, 0x12, 0x03, 0x46, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x05, + 0x12, 0x03, 0x46, 0x0b, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x03, + 0x46, 0x12, 0x29, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x03, 0x46, 0x2c, + 0x2d, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x04, 0x49, 0x00, 0x4c, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x03, 0x01, 0x12, 0x03, 0x49, 0x08, 0x1a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, + 0x00, 0x12, 0x03, 0x4a, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x06, 0x12, + 0x03, 0x4a, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, 0x12, 0x03, 0x4a, + 0x0b, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, 0x03, 0x4a, 0x15, 0x16, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x03, 0x02, 0x01, 0x12, 0x03, 0x4b, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x03, 0x02, 0x01, 0x04, 0x12, 0x03, 0x4b, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x03, 0x02, 0x01, 0x06, 0x12, 0x03, 0x4b, 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, + 0x01, 0x01, 0x12, 0x03, 0x4b, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x01, 0x03, + 0x12, 0x03, 0x4b, 0x1a, 0x1b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x04, 0x4e, 0x00, 0x4f, + 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x03, 0x4e, 0x08, 0x22, 0x0a, 0x0a, 0x0a, + 0x02, 0x04, 0x05, 0x12, 0x04, 0x51, 0x00, 0x54, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x05, 0x01, + 0x12, 0x03, 0x51, 0x08, 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x00, 0x12, 0x03, 0x52, + 0x02, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x06, 0x12, 0x03, 0x52, 0x02, 0x18, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x01, 0x12, 0x03, 0x52, 0x19, 0x20, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, 0x03, 0x12, 0x03, 0x52, 0x23, 0x24, 0x0a, 0x0b, 0x0a, 0x04, + 0x04, 0x05, 0x02, 0x01, 0x12, 0x03, 0x53, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, + 0x01, 0x04, 0x12, 0x03, 0x53, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x06, + 0x12, 0x03, 0x53, 0x0b, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x01, 0x12, 0x03, + 0x53, 0x11, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, 0x03, 0x12, 0x03, 0x53, 0x1a, + 0x1b, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x04, 0x56, 0x00, 0x5c, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x06, 0x01, 0x12, 0x03, 0x56, 0x08, 0x0d, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, + 0x00, 0x12, 0x03, 0x57, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x06, 0x12, + 0x03, 0x57, 0x02, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x03, 0x57, + 0x0b, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x03, 0x57, 0x11, 0x12, + 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x01, 0x12, 0x03, 0x58, 0x02, 0x32, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x01, 0x05, 0x12, 0x03, 0x58, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x01, 0x01, 0x12, 0x03, 0x58, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, + 0x01, 0x03, 0x12, 0x03, 0x58, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x01, 0x08, + 0x12, 0x03, 0x58, 0x1d, 0x31, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x06, 0x02, 0x01, 0x08, 0x06, 0x12, + 0x03, 0x58, 0x1e, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x02, 0x12, 0x03, 0x59, 0x02, + 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x06, 0x12, 0x03, 0x59, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x02, 0x01, 0x12, 0x03, 0x59, 0x0b, 0x0f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x02, 0x03, 0x12, 0x03, 0x59, 0x12, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x06, 0x02, 0x03, 0x12, 0x03, 0x5a, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, + 0x05, 0x12, 0x03, 0x5a, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x01, 0x12, + 0x03, 0x5a, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x03, 0x03, 0x12, 0x03, 0x5a, + 0x14, 0x15, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x04, 0x12, 0x03, 0x5b, 0x02, 0x12, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x04, 0x05, 0x12, 0x03, 0x5b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x06, 0x02, 0x04, 0x01, 0x12, 0x03, 0x5b, 0x09, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x06, 0x02, 0x04, 0x03, 0x12, 0x03, 0x5b, 0x10, 0x11, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x07, 0x12, + 0x04, 0x5e, 0x00, 0x68, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x07, 0x01, 0x12, 0x03, 0x5e, 0x08, + 0x17, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x00, 0x12, 0x03, 0x5f, 0x02, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x07, 0x02, 0x00, 0x05, 0x12, 0x03, 0x5f, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x00, 0x01, 0x12, 0x03, 0x5f, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x5f, 0x0f, 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x01, + 0x12, 0x03, 0x60, 0x02, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x05, 0x12, 0x03, + 0x60, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x01, 0x12, 0x03, 0x60, 0x08, + 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x01, 0x03, 0x12, 0x03, 0x60, 0x1c, 0x1d, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x02, 0x12, 0x03, 0x61, 0x02, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x02, 0x05, 0x12, 0x03, 0x61, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x02, 0x01, 0x12, 0x03, 0x61, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x02, + 0x03, 0x12, 0x03, 0x61, 0x1a, 0x1b, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x03, 0x12, 0x03, + 0x62, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x04, 0x12, 0x03, 0x62, 0x02, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x05, 0x12, 0x03, 0x62, 0x0b, 0x10, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x03, 0x01, 0x12, 0x03, 0x62, 0x11, 0x26, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x03, 0x03, 0x12, 0x03, 0x62, 0x29, 0x2a, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x07, 0x02, 0x04, 0x12, 0x03, 0x63, 0x02, 0x2b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, + 0x05, 0x12, 0x03, 0x63, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x01, 0x12, + 0x03, 0x63, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x03, 0x12, 0x03, 0x63, + 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x04, 0x08, 0x12, 0x03, 0x63, 0x16, 0x2a, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x07, 0x02, 0x04, 0x08, 0x06, 0x12, 0x03, 0x63, 0x17, 0x29, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x05, 0x12, 0x03, 0x64, 0x02, 0x13, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x07, 0x02, 0x05, 0x05, 0x12, 0x03, 0x64, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x05, 0x01, 0x12, 0x03, 0x64, 0x07, 0x0e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x05, + 0x03, 0x12, 0x03, 0x64, 0x11, 0x12, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x06, 0x12, 0x03, + 0x65, 0x02, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x05, 0x12, 0x03, 0x65, 0x02, + 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x01, 0x12, 0x03, 0x65, 0x09, 0x12, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x06, 0x03, 0x12, 0x03, 0x65, 0x15, 0x16, 0x0a, 0x0b, 0x0a, + 0x04, 0x04, 0x07, 0x02, 0x07, 0x12, 0x03, 0x66, 0x02, 0x22, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, + 0x02, 0x07, 0x05, 0x12, 0x03, 0x66, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x07, + 0x01, 0x12, 0x03, 0x66, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x07, 0x03, 0x12, + 0x03, 0x66, 0x20, 0x21, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x07, 0x02, 0x08, 0x12, 0x03, 0x67, 0x02, + 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x08, 0x04, 0x12, 0x03, 0x67, 0x02, 0x0a, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x07, 0x02, 0x08, 0x06, 0x12, 0x03, 0x67, 0x0b, 0x19, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x07, 0x02, 0x08, 0x01, 0x12, 0x03, 0x67, 0x1a, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x07, 0x02, 0x08, 0x03, 0x12, 0x03, 0x67, 0x24, 0x25, 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x08, 0x12, + 0x04, 0x6a, 0x00, 0x6d, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x08, 0x01, 0x12, 0x03, 0x6a, 0x08, + 0x10, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x00, 0x12, 0x03, 0x6b, 0x02, 0x32, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, 0x05, 0x12, 0x03, 0x6b, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x08, 0x02, 0x00, 0x01, 0x12, 0x03, 0x6b, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x6b, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x00, + 0x08, 0x12, 0x03, 0x6b, 0x1d, 0x31, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x08, 0x02, 0x00, 0x08, 0x06, + 0x12, 0x03, 0x6b, 0x1e, 0x30, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x08, 0x02, 0x01, 0x12, 0x03, 0x6c, + 0x02, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x05, 0x12, 0x03, 0x6c, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x01, 0x12, 0x03, 0x6c, 0x09, 0x18, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x08, 0x02, 0x01, 0x03, 0x12, 0x03, 0x6c, 0x1b, 0x1c, 0x0a, 0x0a, 0x0a, 0x02, + 0x04, 0x09, 0x12, 0x04, 0x6f, 0x00, 0x77, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x09, 0x01, 0x12, + 0x03, 0x6f, 0x08, 0x1e, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x00, 0x12, 0x03, 0x70, 0x02, + 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x05, 0x12, 0x03, 0x70, 0x02, 0x08, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x00, 0x01, 0x12, 0x03, 0x70, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x09, 0x02, 0x00, 0x03, 0x12, 0x03, 0x70, 0x12, 0x13, 0x0a, 0x0b, 0x0a, 0x04, 0x04, + 0x09, 0x02, 0x01, 0x12, 0x03, 0x71, 0x02, 0x32, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x71, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x01, 0x12, + 0x03, 0x71, 0x09, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x03, 0x12, 0x03, 0x71, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x01, 0x08, 0x12, 0x03, 0x71, 0x1d, 0x31, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x01, 0x08, 0x06, 0x12, 0x03, 0x71, 0x1e, 0x30, 0x0a, + 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x02, 0x12, 0x03, 0x72, 0x02, 0x31, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x02, 0x05, 0x12, 0x03, 0x72, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x02, 0x01, 0x12, 0x03, 0x72, 0x09, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, + 0x03, 0x12, 0x03, 0x72, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x02, 0x08, 0x12, + 0x03, 0x72, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x02, 0x08, 0x06, 0x12, 0x03, + 0x72, 0x1d, 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x03, 0x12, 0x03, 0x73, 0x02, 0x31, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x05, 0x12, 0x03, 0x73, 0x02, 0x08, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x03, 0x01, 0x12, 0x03, 0x73, 0x09, 0x17, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x09, 0x02, 0x03, 0x03, 0x12, 0x03, 0x73, 0x1a, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, + 0x02, 0x03, 0x08, 0x12, 0x03, 0x73, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x09, 0x02, 0x03, + 0x08, 0x06, 0x12, 0x03, 0x73, 0x1d, 0x2f, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x04, 0x12, + 0x03, 0x74, 0x02, 0x3f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x06, 0x12, 0x03, 0x74, + 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x01, 0x12, 0x03, 0x74, 0x21, 0x3a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x04, 0x03, 0x12, 0x03, 0x74, 0x3d, 0x3e, 0x0a, 0x0b, + 0x0a, 0x04, 0x04, 0x09, 0x02, 0x05, 0x12, 0x03, 0x75, 0x02, 0x21, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x09, 0x02, 0x05, 0x06, 0x12, 0x03, 0x75, 0x02, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, + 0x05, 0x01, 0x12, 0x03, 0x75, 0x15, 0x1c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x05, 0x03, + 0x12, 0x03, 0x75, 0x1f, 0x20, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x09, 0x02, 0x06, 0x12, 0x03, 0x76, + 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x06, 0x12, 0x03, 0x76, 0x02, 0x0b, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x01, 0x12, 0x03, 0x76, 0x0c, 0x15, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x09, 0x02, 0x06, 0x03, 0x12, 0x03, 0x76, 0x18, 0x19, 0x0a, 0x0b, 0x0a, 0x02, + 0x04, 0x0a, 0x12, 0x05, 0x79, 0x00, 0x86, 0x01, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x0a, 0x01, + 0x12, 0x03, 0x79, 0x08, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x04, 0x00, 0x12, 0x04, 0x7b, + 0x02, 0x7f, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x0a, 0x04, 0x00, 0x01, 0x12, 0x03, 0x7b, 0x07, + 0x13, 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x7c, 0x04, 0x23, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x7c, 0x04, 0x1e, + 0x0a, 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x7c, 0x21, 0x22, + 0x0a, 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x7d, 0x04, 0x28, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x7d, 0x04, 0x23, 0x0a, + 0x0e, 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x7d, 0x26, 0x27, 0x0a, + 0x0d, 0x0a, 0x06, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x04, 0x28, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x7e, 0x04, 0x23, 0x0a, 0x0e, + 0x0a, 0x07, 0x04, 0x0a, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x26, 0x27, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x00, 0x12, 0x04, 0x81, 0x01, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0a, 0x02, 0x00, 0x06, 0x12, 0x04, 0x81, 0x01, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0a, 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x01, 0x0f, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x01, 0x20, 0x21, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0a, 0x08, + 0x00, 0x12, 0x06, 0x82, 0x01, 0x02, 0x85, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x08, + 0x00, 0x01, 0x12, 0x04, 0x82, 0x01, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x01, + 0x12, 0x04, 0x83, 0x01, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x83, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x83, 0x01, 0x13, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x83, + 0x01, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0a, 0x02, 0x02, 0x12, 0x04, 0x84, 0x01, 0x04, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x06, 0x12, 0x04, 0x84, 0x01, 0x04, 0x12, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x01, 0x12, 0x04, 0x84, 0x01, 0x13, 0x23, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0a, 0x02, 0x02, 0x03, 0x12, 0x04, 0x84, 0x01, 0x26, 0x27, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x0b, 0x12, 0x06, 0x88, 0x01, 0x00, 0x8b, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x0b, 0x01, 0x12, 0x04, 0x88, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, + 0x00, 0x12, 0x04, 0x89, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x05, + 0x12, 0x04, 0x89, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x89, 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x89, 0x01, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0b, 0x02, 0x01, 0x12, 0x04, 0x8a, 0x01, + 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8a, 0x01, 0x02, + 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8a, 0x01, 0x10, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0b, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8a, 0x01, 0x19, 0x1a, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x0c, 0x12, 0x06, 0x8d, 0x01, 0x00, 0x90, 0x01, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x0c, 0x01, 0x12, 0x04, 0x8d, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, + 0x02, 0x00, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, + 0x04, 0x12, 0x04, 0x8e, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x06, + 0x12, 0x04, 0x8e, 0x01, 0x0b, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x01, 0x12, + 0x04, 0x8e, 0x01, 0x1a, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x00, 0x03, 0x12, 0x04, + 0x8e, 0x01, 0x2d, 0x2e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0c, 0x02, 0x01, 0x12, 0x04, 0x8f, 0x01, + 0x02, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x04, 0x12, 0x04, 0x8f, 0x01, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x06, 0x12, 0x04, 0x8f, 0x01, 0x0b, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8f, 0x01, 0x11, 0x17, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0c, 0x02, 0x01, 0x03, 0x12, 0x04, 0x8f, 0x01, 0x1a, 0x1b, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x0d, 0x12, 0x06, 0x92, 0x01, 0x00, 0xa8, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x0d, 0x01, 0x12, 0x04, 0x92, 0x01, 0x08, 0x16, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0d, 0x04, + 0x00, 0x12, 0x06, 0x94, 0x01, 0x02, 0x9c, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x04, + 0x00, 0x01, 0x12, 0x04, 0x94, 0x01, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x04, 0x95, 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x95, 0x01, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, + 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x95, 0x01, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, + 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0x96, 0x01, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x96, 0x01, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x0d, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0x96, 0x01, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x0d, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0x97, 0x01, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x0d, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0x97, 0x01, 0x04, 0x18, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0x97, 0x01, 0x1b, 0x1c, 0x0a, 0x0e, + 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, 0x98, 0x01, 0x04, 0x1f, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0x98, 0x01, 0x04, 0x1a, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0x98, 0x01, 0x1d, 0x1e, + 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0x99, 0x01, 0x04, 0x1a, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x99, 0x01, 0x04, + 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0x99, 0x01, + 0x18, 0x19, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x9a, 0x01, + 0x04, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0x9a, + 0x01, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, + 0x9a, 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x12, 0x04, + 0x9b, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, + 0x04, 0x9b, 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x0d, 0x04, 0x00, 0x02, 0x06, 0x02, + 0x12, 0x04, 0x9b, 0x01, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x00, 0x12, 0x04, + 0x9e, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x06, 0x12, 0x04, 0x9e, + 0x01, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9e, 0x01, + 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9e, 0x01, 0x0e, + 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x0d, 0x08, 0x00, 0x12, 0x06, 0xa0, 0x01, 0x02, 0xa7, 0x01, + 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x08, 0x00, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x08, 0x0e, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x04, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa1, 0x01, 0x04, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa1, 0x01, 0x11, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa1, 0x01, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x0d, 0x02, 0x02, 0x12, 0x04, 0xa2, 0x01, 0x04, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x02, 0x06, 0x12, 0x04, 0xa2, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xa2, 0x01, 0x13, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xa2, 0x01, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x03, 0x12, 0x04, + 0xa3, 0x01, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x06, 0x12, 0x04, 0xa3, + 0x01, 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa3, 0x01, + 0x14, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa3, 0x01, 0x28, + 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x04, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x21, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x04, 0x06, 0x12, 0x04, 0xa4, 0x01, 0x04, 0x0f, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x04, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x10, 0x1c, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0d, 0x02, 0x04, 0x03, 0x12, 0x04, 0xa4, 0x01, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x0d, 0x02, 0x05, 0x12, 0x04, 0xa5, 0x01, 0x04, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, + 0x02, 0x05, 0x06, 0x12, 0x04, 0xa5, 0x01, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, + 0x05, 0x01, 0x12, 0x04, 0xa5, 0x01, 0x12, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x05, + 0x03, 0x12, 0x04, 0xa5, 0x01, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0d, 0x02, 0x06, 0x12, + 0x04, 0xa6, 0x01, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x06, 0x12, 0x04, + 0xa6, 0x01, 0x04, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x01, 0x12, 0x04, 0xa6, + 0x01, 0x13, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0d, 0x02, 0x06, 0x03, 0x12, 0x04, 0xa6, 0x01, + 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x0e, 0x12, 0x06, 0xaa, 0x01, 0x00, 0xae, 0x01, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x0e, 0x01, 0x12, 0x04, 0xaa, 0x01, 0x08, 0x14, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x0e, 0x02, 0x00, 0x12, 0x04, 0xab, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xab, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xab, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xab, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x01, + 0x12, 0x04, 0xac, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xac, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xac, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xac, + 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0e, 0x02, 0x02, 0x12, 0x04, 0xad, 0x01, 0x02, + 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x06, 0x12, 0x04, 0xad, 0x01, 0x02, 0x0e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x01, 0x12, 0x04, 0xad, 0x01, 0x0f, 0x15, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x0e, 0x02, 0x02, 0x03, 0x12, 0x04, 0xad, 0x01, 0x18, 0x19, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x0f, 0x12, 0x06, 0xb0, 0x01, 0x00, 0xb5, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x0f, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, + 0x00, 0x12, 0x04, 0xb1, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x05, + 0x12, 0x04, 0xb1, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xb1, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xb1, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x01, 0x12, 0x04, 0xb2, 0x01, + 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb2, 0x01, 0x02, + 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb2, 0x01, 0x08, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb2, 0x01, 0x19, 0x1a, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x0f, 0x02, 0x02, 0x12, 0x04, 0xb3, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x0f, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb3, 0x01, 0x02, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x0f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb3, 0x01, 0x10, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x0f, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb3, 0x01, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x0f, + 0x02, 0x03, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, + 0x05, 0x12, 0x04, 0xb4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xb4, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x0f, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xb4, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x10, 0x12, 0x06, 0xb7, 0x01, 0x00, + 0xbc, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x10, 0x01, 0x12, 0x04, 0xb7, 0x01, 0x08, 0x17, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x1b, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x10, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x10, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x10, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x10, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, + 0x01, 0x05, 0x12, 0x04, 0xb9, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xb9, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xb9, 0x01, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x02, 0x12, 0x04, + 0xba, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x05, 0x12, 0x04, 0xba, + 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x01, 0x12, 0x04, 0xba, 0x01, + 0x09, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x02, 0x03, 0x12, 0x04, 0xba, 0x01, 0x0f, + 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x10, 0x02, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x1b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x10, 0x02, 0x03, 0x06, 0x12, 0x04, 0xbb, 0x01, 0x02, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x10, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbb, 0x01, 0x12, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x10, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbb, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x11, 0x12, 0x06, 0xbe, 0x01, 0x00, 0xc1, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x11, + 0x01, 0x12, 0x04, 0xbe, 0x01, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x00, 0x12, + 0x04, 0xbf, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x05, 0x12, 0x04, + 0xbf, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x01, 0x12, 0x04, 0xbf, + 0x01, 0x09, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x00, 0x03, 0x12, 0x04, 0xbf, 0x01, + 0x0f, 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x11, 0x02, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc0, 0x01, 0x02, 0x08, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc0, 0x01, 0x09, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x11, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc0, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, + 0x02, 0x04, 0x12, 0x12, 0x06, 0xc3, 0x01, 0x00, 0xc7, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, + 0x12, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x00, + 0x12, 0x04, 0xc4, 0x01, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x05, 0x12, + 0x04, 0xc4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xc4, 0x01, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc4, + 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x12, 0x02, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x02, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc5, 0x01, 0x02, 0x07, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x08, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x12, 0x02, 0x01, 0x03, 0x12, 0x04, 0xc5, 0x01, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x12, 0x02, 0x02, 0x12, 0x04, 0xc6, 0x01, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x12, 0x02, 0x02, 0x06, 0x12, 0x04, 0xc6, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x12, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc6, 0x01, 0x15, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x12, + 0x02, 0x02, 0x03, 0x12, 0x04, 0xc6, 0x01, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x13, 0x12, + 0x06, 0xc9, 0x01, 0x00, 0xcf, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x13, 0x01, 0x12, 0x04, + 0xc9, 0x01, 0x08, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x00, 0x12, 0x04, 0xca, 0x01, + 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x05, 0x12, 0x04, 0xca, 0x01, 0x02, + 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x01, 0x09, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x01, 0x13, 0x14, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcb, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcb, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x13, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcb, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, + 0x02, 0x02, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, + 0x06, 0x12, 0x04, 0xcc, 0x01, 0x02, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x01, + 0x12, 0x04, 0xcc, 0x01, 0x10, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x02, 0x03, 0x12, + 0x04, 0xcc, 0x01, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x03, 0x12, 0x04, 0xcd, + 0x01, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x05, 0x12, 0x04, 0xcd, 0x01, + 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x01, 0x12, 0x04, 0xcd, 0x01, 0x09, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x13, 0x02, 0x03, 0x03, 0x12, 0x04, 0xcd, 0x01, 0x14, 0x15, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x13, 0x02, 0x04, 0x12, 0x04, 0xce, 0x01, 0x02, 0x12, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x13, 0x02, 0x04, 0x05, 0x12, 0x04, 0xce, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x13, 0x02, 0x04, 0x01, 0x12, 0x04, 0xce, 0x01, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x13, 0x02, 0x04, 0x03, 0x12, 0x04, 0xce, 0x01, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x14, 0x12, 0x06, 0xd1, 0x01, 0x00, 0xd6, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x14, 0x01, + 0x12, 0x04, 0xd1, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x00, 0x12, 0x04, + 0xd2, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd2, + 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd2, 0x01, + 0x09, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd2, 0x01, 0x0f, + 0x10, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x05, 0x12, 0x04, 0xd3, 0x01, 0x02, 0x08, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x14, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd3, 0x01, 0x09, 0x11, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x14, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd3, 0x01, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x14, 0x02, 0x02, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, + 0x02, 0x02, 0x05, 0x12, 0x04, 0xd4, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xd4, 0x01, 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x02, + 0x03, 0x12, 0x04, 0xd4, 0x01, 0x11, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x14, 0x02, 0x03, 0x12, + 0x04, 0xd5, 0x01, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x05, 0x12, 0x04, + 0xd5, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd5, + 0x01, 0x09, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x14, 0x02, 0x03, 0x03, 0x12, 0x04, 0xd5, 0x01, + 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x15, 0x12, 0x06, 0xd8, 0x01, 0x00, 0xdd, 0x01, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x15, 0x01, 0x12, 0x04, 0xd8, 0x01, 0x08, 0x16, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x15, 0x02, 0x00, 0x12, 0x04, 0xd9, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x15, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd9, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xd9, 0x01, 0x08, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, + 0x00, 0x03, 0x12, 0x04, 0xd9, 0x01, 0x19, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x01, + 0x12, 0x04, 0xda, 0x01, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x05, 0x12, + 0x04, 0xda, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x01, 0x12, 0x04, + 0xda, 0x01, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x01, 0x03, 0x12, 0x04, 0xda, + 0x01, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x15, 0x02, 0x02, 0x12, 0x04, 0xdb, 0x01, 0x02, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x05, 0x12, 0x04, 0xdb, 0x01, 0x02, 0x08, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x01, 0x12, 0x04, 0xdb, 0x01, 0x09, 0x0c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x15, 0x02, 0x02, 0x03, 0x12, 0x04, 0xdb, 0x01, 0x0f, 0x10, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x15, 0x02, 0x03, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x15, 0x02, 0x03, 0x06, 0x12, 0x04, 0xdc, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x15, 0x02, 0x03, 0x01, 0x12, 0x04, 0xdc, 0x01, 0x11, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x15, + 0x02, 0x03, 0x03, 0x12, 0x04, 0xdc, 0x01, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x16, 0x12, + 0x06, 0xdf, 0x01, 0x00, 0xf2, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x16, 0x01, 0x12, 0x04, + 0xdf, 0x01, 0x08, 0x1a, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x16, 0x04, 0x00, 0x12, 0x06, 0xe0, 0x01, + 0x02, 0xe7, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x04, 0x00, 0x01, 0x12, 0x04, 0xe0, + 0x01, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xe1, + 0x01, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, + 0xe1, 0x01, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, + 0x04, 0xe1, 0x01, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, 0x12, + 0x04, 0xe2, 0x01, 0x04, 0x24, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xe2, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x01, + 0x02, 0x12, 0x04, 0xe2, 0x01, 0x22, 0x23, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, + 0x02, 0x12, 0x04, 0xe3, 0x01, 0x04, 0x1c, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, + 0x02, 0x01, 0x12, 0x04, 0xe3, 0x01, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, + 0x02, 0x02, 0x02, 0x12, 0x04, 0xe3, 0x01, 0x1a, 0x1b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x16, 0x04, + 0x00, 0x02, 0x03, 0x12, 0x04, 0xe4, 0x01, 0x04, 0x23, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, 0x04, + 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xe4, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x16, + 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xe4, 0x01, 0x21, 0x22, 0x0a, 0x0e, 0x0a, 0x06, 0x04, + 0x16, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xe5, 0x01, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x16, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xe5, 0x01, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x16, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0xe5, 0x01, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, + 0x06, 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0xe6, 0x01, 0x04, 0x1e, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xe6, 0x01, 0x04, 0x19, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x16, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0xe6, 0x01, 0x1c, 0x1d, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x00, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x10, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x16, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe9, 0x01, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x16, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe9, 0x01, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x16, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe9, 0x01, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x16, + 0x08, 0x00, 0x12, 0x06, 0xeb, 0x01, 0x02, 0xf1, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, + 0x08, 0x00, 0x01, 0x12, 0x04, 0xeb, 0x01, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, + 0x01, 0x12, 0x04, 0xec, 0x01, 0x04, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x06, + 0x12, 0x04, 0xec, 0x01, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xec, 0x01, 0x19, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xec, 0x01, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x02, 0x12, 0x04, 0xed, 0x01, + 0x04, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x06, 0x12, 0x04, 0xed, 0x01, 0x04, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x01, 0x12, 0x04, 0xed, 0x01, 0x12, 0x20, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x02, 0x03, 0x12, 0x04, 0xed, 0x01, 0x23, 0x24, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x03, 0x12, 0x04, 0xee, 0x01, 0x04, 0x32, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x16, 0x02, 0x03, 0x06, 0x12, 0x04, 0xee, 0x01, 0x04, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x16, 0x02, 0x03, 0x01, 0x12, 0x04, 0xee, 0x01, 0x18, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x16, 0x02, 0x03, 0x03, 0x12, 0x04, 0xee, 0x01, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, + 0x02, 0x04, 0x12, 0x04, 0xef, 0x01, 0x04, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, + 0x06, 0x12, 0x04, 0xef, 0x01, 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x01, + 0x12, 0x04, 0xef, 0x01, 0x14, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x04, 0x03, 0x12, + 0x04, 0xef, 0x01, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x16, 0x02, 0x05, 0x12, 0x04, 0xf0, + 0x01, 0x04, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x06, 0x12, 0x04, 0xf0, 0x01, + 0x04, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x01, 0x12, 0x04, 0xf0, 0x01, 0x14, + 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x16, 0x02, 0x05, 0x03, 0x12, 0x04, 0xf0, 0x01, 0x27, 0x28, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x17, 0x12, 0x06, 0xf4, 0x01, 0x00, 0xf9, 0x01, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x17, 0x01, 0x12, 0x04, 0xf4, 0x01, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x17, 0x02, 0x00, 0x12, 0x04, 0xf5, 0x01, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xf5, 0x01, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xf5, 0x01, 0x12, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xf5, 0x01, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x01, 0x12, 0x04, + 0xf6, 0x01, 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x04, 0x12, 0x04, 0xf6, + 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x06, 0x12, 0x04, 0xf6, 0x01, + 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x01, 0x12, 0x04, 0xf6, 0x01, 0x14, + 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x01, 0x03, 0x12, 0x04, 0xf6, 0x01, 0x25, 0x26, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, 0x02, 0x02, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x20, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x17, 0x02, 0x02, 0x04, 0x12, 0x04, 0xf7, 0x01, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x17, 0x02, 0x02, 0x05, 0x12, 0x04, 0xf7, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x17, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf7, 0x01, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x17, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf7, 0x01, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x17, + 0x02, 0x03, 0x12, 0x04, 0xf8, 0x01, 0x02, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, + 0x05, 0x12, 0x04, 0xf8, 0x01, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xf8, 0x01, 0x09, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x17, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xf8, 0x01, 0x21, 0x22, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x18, 0x12, 0x06, 0xfb, 0x01, 0x00, + 0xfe, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x18, 0x01, 0x12, 0x04, 0xfb, 0x01, 0x08, 0x1a, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x18, 0x02, 0x00, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x15, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x18, 0x02, 0x00, 0x05, 0x12, 0x04, 0xfc, 0x01, 0x02, 0x07, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x18, 0x02, 0x00, 0x01, 0x12, 0x04, 0xfc, 0x01, 0x08, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x18, 0x02, 0x00, 0x03, 0x12, 0x04, 0xfc, 0x01, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x18, 0x02, 0x01, 0x12, 0x04, 0xfd, 0x01, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, + 0x01, 0x06, 0x12, 0x04, 0xfd, 0x01, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xfd, 0x01, 0x0f, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x18, 0x02, 0x01, 0x03, + 0x12, 0x04, 0xfd, 0x01, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x19, 0x12, 0x06, 0x80, 0x02, + 0x00, 0x84, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x19, 0x01, 0x12, 0x04, 0x80, 0x02, 0x08, + 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x00, 0x12, 0x04, 0x81, 0x02, 0x02, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x06, 0x12, 0x04, 0x81, 0x02, 0x02, 0x14, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x19, 0x02, 0x00, 0x01, 0x12, 0x04, 0x81, 0x02, 0x15, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x19, 0x02, 0x00, 0x03, 0x12, 0x04, 0x81, 0x02, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x19, 0x02, 0x01, 0x12, 0x04, 0x82, 0x02, 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, + 0x02, 0x01, 0x04, 0x12, 0x04, 0x82, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, + 0x01, 0x06, 0x12, 0x04, 0x82, 0x02, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, + 0x01, 0x12, 0x04, 0x82, 0x02, 0x14, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x01, 0x03, + 0x12, 0x04, 0x82, 0x02, 0x25, 0x26, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x19, 0x02, 0x02, 0x12, 0x04, + 0x83, 0x02, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x04, 0x12, 0x04, 0x83, + 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x05, 0x12, 0x04, 0x83, 0x02, + 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x01, 0x12, 0x04, 0x83, 0x02, 0x12, + 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x19, 0x02, 0x02, 0x03, 0x12, 0x04, 0x83, 0x02, 0x1e, 0x1f, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1a, 0x12, 0x06, 0x86, 0x02, 0x00, 0x89, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x1a, 0x01, 0x12, 0x04, 0x86, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x1a, 0x02, 0x00, 0x12, 0x04, 0x87, 0x02, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, + 0x00, 0x05, 0x12, 0x04, 0x87, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, + 0x01, 0x12, 0x04, 0x87, 0x02, 0x09, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x00, 0x03, + 0x12, 0x04, 0x87, 0x02, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1a, 0x02, 0x01, 0x12, 0x04, + 0x88, 0x02, 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x04, 0x12, 0x04, 0x88, + 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x06, 0x12, 0x04, 0x88, 0x02, + 0x0b, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x01, 0x12, 0x04, 0x88, 0x02, 0x26, + 0x39, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1a, 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, 0x02, 0x3c, 0x3d, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1b, 0x12, 0x06, 0x8b, 0x02, 0x00, 0x96, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x1b, 0x01, 0x12, 0x04, 0x8b, 0x02, 0x08, 0x22, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x1b, 0x04, 0x00, 0x12, 0x06, 0x8c, 0x02, 0x02, 0x8f, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x04, 0x00, 0x01, 0x12, 0x04, 0x8c, 0x02, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1b, + 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0x8d, 0x02, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1b, + 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x8d, 0x02, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x1b, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0x8d, 0x02, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x1b, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x24, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x1b, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0x8e, 0x02, 0x04, 0x1f, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x1b, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0x8e, 0x02, 0x22, 0x23, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x00, 0x12, 0x04, 0x91, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1b, 0x02, 0x00, 0x06, 0x12, 0x04, 0x91, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1b, 0x02, 0x00, 0x01, 0x12, 0x04, 0x91, 0x02, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x91, 0x02, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x1b, 0x08, + 0x00, 0x12, 0x06, 0x93, 0x02, 0x02, 0x95, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x08, + 0x00, 0x01, 0x12, 0x04, 0x93, 0x02, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1b, 0x02, 0x01, + 0x12, 0x04, 0x94, 0x02, 0x04, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x94, 0x02, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x94, 0x02, 0x19, 0x2f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1b, 0x02, 0x01, 0x03, 0x12, 0x04, 0x94, + 0x02, 0x32, 0x33, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1c, 0x12, 0x06, 0x98, 0x02, 0x00, 0x9a, 0x02, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1c, 0x01, 0x12, 0x04, 0x98, 0x02, 0x08, 0x1b, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1c, 0x02, 0x00, 0x12, 0x04, 0x99, 0x02, 0x02, 0x2a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1c, 0x02, 0x00, 0x04, 0x12, 0x04, 0x99, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1c, 0x02, 0x00, 0x06, 0x12, 0x04, 0x99, 0x02, 0x0b, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x99, 0x02, 0x1e, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1c, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x99, 0x02, 0x28, 0x29, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1d, 0x12, 0x06, + 0x9c, 0x02, 0x00, 0x9f, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1d, 0x01, 0x12, 0x04, 0x9c, + 0x02, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x00, 0x12, 0x04, 0x9d, 0x02, 0x02, + 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x05, 0x12, 0x04, 0x9d, 0x02, 0x02, 0x07, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x01, 0x12, 0x04, 0x9d, 0x02, 0x08, 0x10, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1d, 0x02, 0x00, 0x03, 0x12, 0x04, 0x9d, 0x02, 0x13, 0x14, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1d, 0x02, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1d, 0x02, 0x01, 0x06, 0x12, 0x04, 0x9e, 0x02, 0x02, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1d, 0x02, 0x01, 0x01, 0x12, 0x04, 0x9e, 0x02, 0x0d, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1d, + 0x02, 0x01, 0x03, 0x12, 0x04, 0x9e, 0x02, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1e, 0x12, + 0x06, 0xa1, 0x02, 0x00, 0xa7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1e, 0x01, 0x12, 0x04, + 0xa1, 0x02, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x00, 0x12, 0x04, 0xa2, 0x02, + 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa2, 0x02, 0x02, + 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa2, 0x02, 0x09, 0x10, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa2, 0x02, 0x13, 0x14, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1e, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa3, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1e, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa3, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1e, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa3, 0x02, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, + 0x02, 0x02, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, + 0x04, 0x12, 0x04, 0xa4, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x06, + 0x12, 0x04, 0xa4, 0x02, 0x0b, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xa4, 0x02, 0x18, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xa4, 0x02, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x03, 0x12, 0x04, 0xa5, 0x02, + 0x02, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x04, 0x12, 0x04, 0xa5, 0x02, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x06, 0x12, 0x04, 0xa5, 0x02, 0x0b, 0x17, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x01, 0x12, 0x04, 0xa5, 0x02, 0x18, 0x29, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, 0x03, 0x03, 0x12, 0x04, 0xa5, 0x02, 0x2c, 0x2d, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x1e, 0x02, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x22, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1e, 0x02, 0x04, 0x04, 0x12, 0x04, 0xa6, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1e, 0x02, 0x04, 0x06, 0x12, 0x04, 0xa6, 0x02, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xa6, 0x02, 0x16, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1e, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xa6, 0x02, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x1f, 0x12, 0x06, + 0xa8, 0x02, 0x00, 0xb5, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x1f, 0x01, 0x12, 0x04, 0xa8, + 0x02, 0x08, 0x14, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x1f, 0x04, 0x00, 0x12, 0x06, 0xa9, 0x02, 0x02, + 0xae, 0x02, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x04, 0x00, 0x01, 0x12, 0x04, 0xa9, 0x02, + 0x07, 0x11, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xaa, 0x02, + 0x04, 0x1f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaa, + 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, + 0xaa, 0x02, 0x1d, 0x1e, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, + 0xab, 0x02, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xab, 0x02, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x04, 0xab, 0x02, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x02, + 0x12, 0x04, 0xac, 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xac, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, 0x02, + 0x02, 0x02, 0x12, 0x04, 0xac, 0x02, 0x18, 0x19, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x1f, 0x04, 0x00, + 0x02, 0x03, 0x12, 0x04, 0xad, 0x02, 0x04, 0x1a, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x04, 0xad, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x1f, 0x04, + 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xad, 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, + 0x02, 0x00, 0x12, 0x04, 0xaf, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xaf, 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xaf, 0x02, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xaf, 0x02, 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x01, 0x12, 0x04, 0xb0, + 0x02, 0x02, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x06, 0x12, 0x04, 0xb0, 0x02, + 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb0, 0x02, 0x1a, + 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb0, 0x02, 0x27, 0x28, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x14, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x02, 0x05, 0x12, 0x04, 0xb1, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1f, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x02, 0x07, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1f, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb1, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x1f, 0x02, 0x03, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x40, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, + 0x03, 0x04, 0x12, 0x04, 0xb2, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, + 0x06, 0x12, 0x04, 0xb2, 0x02, 0x0b, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x01, + 0x12, 0x04, 0xb2, 0x02, 0x28, 0x3b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x03, 0x03, 0x12, + 0x04, 0xb2, 0x02, 0x3e, 0x3f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x04, 0x12, 0x04, 0xb3, + 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x04, 0x12, 0x04, 0xb3, 0x02, + 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb3, 0x02, 0x0b, + 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb3, 0x02, 0x14, 0x1a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb3, 0x02, 0x1d, 0x1e, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x1f, 0x02, 0x05, 0x12, 0x04, 0xb4, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x1f, 0x02, 0x05, 0x04, 0x12, 0x04, 0xb4, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x1f, 0x02, 0x05, 0x06, 0x12, 0x04, 0xb4, 0x02, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x1f, 0x02, 0x05, 0x01, 0x12, 0x04, 0xb4, 0x02, 0x14, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x1f, + 0x02, 0x05, 0x03, 0x12, 0x04, 0xb4, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x20, 0x12, + 0x06, 0xb7, 0x02, 0x00, 0xbd, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x20, 0x01, 0x12, 0x04, + 0xb7, 0x02, 0x08, 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x00, 0x12, 0x04, 0xb8, 0x02, + 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x05, 0x12, 0x04, 0xb8, 0x02, 0x02, + 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x01, 0x12, 0x04, 0xb8, 0x02, 0x09, 0x0d, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x00, 0x03, 0x12, 0x04, 0xb8, 0x02, 0x10, 0x11, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x20, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb9, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x20, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb9, 0x02, 0x07, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x20, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb9, 0x02, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, + 0x02, 0x02, 0x12, 0x04, 0xba, 0x02, 0x02, 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, + 0x04, 0x12, 0x04, 0xba, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x06, + 0x12, 0x04, 0xba, 0x02, 0x0b, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x01, 0x12, + 0x04, 0xba, 0x02, 0x17, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x02, 0x03, 0x12, 0x04, + 0xba, 0x02, 0x23, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x20, 0x02, 0x03, 0x12, 0x04, 0xbb, 0x02, + 0x02, 0x3e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x04, 0x12, 0x04, 0xbb, 0x02, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x06, 0x12, 0x04, 0xbb, 0x02, 0x0b, 0x25, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x01, 0x12, 0x04, 0xbb, 0x02, 0x26, 0x39, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, 0x03, 0x03, 0x12, 0x04, 0xbb, 0x02, 0x3c, 0x3d, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x20, 0x02, 0x04, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x26, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x20, 0x02, 0x04, 0x04, 0x12, 0x04, 0xbc, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x20, 0x02, 0x04, 0x06, 0x12, 0x04, 0xbc, 0x02, 0x0b, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xbc, 0x02, 0x1b, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x20, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xbc, 0x02, 0x24, 0x25, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x21, 0x12, 0x06, + 0xbf, 0x02, 0x00, 0xc2, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x21, 0x01, 0x12, 0x04, 0xbf, + 0x02, 0x08, 0x22, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x21, 0x02, 0x00, 0x12, 0x04, 0xc0, 0x02, 0x02, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x04, 0x12, 0x04, 0xc0, 0x02, 0x02, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc0, 0x02, 0x0b, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc0, 0x02, 0x17, 0x22, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x21, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc0, 0x02, 0x25, 0x26, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x21, 0x02, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x21, 0x02, 0x01, 0x05, 0x12, 0x04, 0xc1, 0x02, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xc1, 0x02, 0x07, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x21, 0x02, + 0x01, 0x03, 0x12, 0x04, 0xc1, 0x02, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x22, 0x12, 0x06, + 0xc4, 0x02, 0x00, 0xc7, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x22, 0x01, 0x12, 0x04, 0xc4, + 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x22, 0x02, 0x00, 0x12, 0x04, 0xc5, 0x02, 0x02, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x05, 0x12, 0x04, 0xc5, 0x02, 0x02, 0x08, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc5, 0x02, 0x09, 0x0d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x22, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc5, 0x02, 0x10, 0x11, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x22, 0x02, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x22, 0x02, 0x01, 0x06, 0x12, 0x04, 0xc6, 0x02, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x22, 0x02, 0x01, 0x01, 0x12, 0x04, 0xc6, 0x02, 0x0b, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x22, + 0x02, 0x01, 0x03, 0x12, 0x04, 0xc6, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x23, 0x12, + 0x06, 0xc9, 0x02, 0x00, 0xcb, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x23, 0x01, 0x12, 0x04, + 0xc9, 0x02, 0x08, 0x24, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x23, 0x02, 0x00, 0x12, 0x04, 0xca, 0x02, + 0x02, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x04, 0x12, 0x04, 0xca, 0x02, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x06, 0x12, 0x04, 0xca, 0x02, 0x0b, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x01, 0x12, 0x04, 0xca, 0x02, 0x17, 0x22, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x23, 0x02, 0x00, 0x03, 0x12, 0x04, 0xca, 0x02, 0x25, 0x26, 0x0a, 0x0c, + 0x0a, 0x02, 0x05, 0x00, 0x12, 0x06, 0xcd, 0x02, 0x00, 0xdd, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x05, 0x00, 0x01, 0x12, 0x04, 0xcd, 0x02, 0x05, 0x0e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x00, 0x12, 0x04, 0xce, 0x02, 0x02, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xce, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, + 0x04, 0xce, 0x02, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x04, 0xcf, + 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcf, 0x02, + 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xcf, 0x02, 0x14, + 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x02, 0x12, 0x04, 0xd0, 0x02, 0x02, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xd0, 0x02, 0x02, 0x0f, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xd0, 0x02, 0x12, 0x13, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x03, 0x12, 0x04, 0xd1, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xd1, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x03, 0x02, 0x12, 0x04, 0xd1, 0x02, 0x13, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x04, 0x12, 0x04, 0xd2, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x01, + 0x12, 0x04, 0xd2, 0x02, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x04, 0x02, 0x12, + 0x04, 0xd2, 0x02, 0x13, 0x15, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x05, 0x12, 0x04, 0xd3, + 0x02, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0xd3, 0x02, + 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0xd3, 0x02, 0x13, + 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x06, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x16, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x01, 0x12, 0x04, 0xd4, 0x02, 0x02, 0x11, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x06, 0x02, 0x12, 0x04, 0xd4, 0x02, 0x14, 0x15, 0x0a, 0x0c, 0x0a, + 0x04, 0x05, 0x00, 0x02, 0x07, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x00, 0x02, 0x07, 0x01, 0x12, 0x04, 0xd5, 0x02, 0x02, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, + 0x02, 0x07, 0x02, 0x12, 0x04, 0xd5, 0x02, 0x14, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, + 0x08, 0x12, 0x04, 0xd6, 0x02, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x01, + 0x12, 0x04, 0xd6, 0x02, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x08, 0x02, 0x12, + 0x04, 0xd6, 0x02, 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x09, 0x12, 0x04, 0xd7, + 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x01, 0x12, 0x04, 0xd7, 0x02, + 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x09, 0x02, 0x12, 0x04, 0xd7, 0x02, 0x16, + 0x17, 0x0a, 0x2b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0a, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x18, 0x22, + 0x1d, 0x20, 0x60, 0x7b, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x42, 0x6f, 0x78, 0x3c, + 0x4d, 0x6f, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x20, 0x7d, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0a, 0x01, 0x12, 0x04, 0xd8, 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, + 0x05, 0x05, 0x00, 0x02, 0x0a, 0x02, 0x12, 0x04, 0xd8, 0x02, 0x16, 0x17, 0x0a, 0x22, 0x0a, 0x04, + 0x05, 0x00, 0x02, 0x0b, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x18, 0x22, 0x14, 0x20, 0x60, 0x28, 0x4d, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x54, 0x61, 0x67, 0x29, 0x60, 0x2c, 0x0a, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x01, 0x12, 0x04, 0xd9, 0x02, 0x02, 0x13, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0b, 0x02, 0x12, 0x04, 0xd9, 0x02, 0x16, 0x17, 0x0a, 0x22, + 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0c, 0x12, 0x04, 0xda, 0x02, 0x02, 0x24, 0x22, 0x14, 0x20, 0x60, + 0x7b, 0x20, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x20, 0x75, 0x31, 0x36, 0x20, 0x7d, 0x60, 0x60, + 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x01, 0x12, 0x04, 0xda, 0x02, 0x02, + 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0c, 0x02, 0x12, 0x04, 0xda, 0x02, 0x22, 0x23, + 0x0a, 0x37, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0d, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x1c, 0x22, 0x29, + 0x20, 0x60, 0x7b, 0x20, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x20, 0x62, 0x6f, 0x6f, + 0x6c, 0x2c, 0x20, 0x74, 0x6f, 0x3a, 0x20, 0x42, 0x6f, 0x78, 0x3c, 0x4d, 0x6f, 0x76, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x3e, 0x20, 0x7d, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, + 0x0d, 0x01, 0x12, 0x04, 0xdb, 0x02, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0d, + 0x02, 0x12, 0x04, 0xdb, 0x02, 0x19, 0x1b, 0x0a, 0x1b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x0e, 0x12, + 0x04, 0xdc, 0x02, 0x02, 0x1d, 0x22, 0x0d, 0x20, 0x60, 0x28, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x29, 0x60, 0x2c, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x01, 0x12, 0x04, 0xdc, + 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x0e, 0x02, 0x12, 0x04, 0xdc, 0x02, + 0x1a, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x24, 0x12, 0x06, 0xdf, 0x02, 0x00, 0xee, 0x02, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x24, 0x01, 0x12, 0x04, 0xdf, 0x02, 0x08, 0x10, 0x0a, 0x0e, 0x0a, + 0x04, 0x04, 0x24, 0x03, 0x00, 0x12, 0x06, 0xe1, 0x02, 0x02, 0xe4, 0x02, 0x03, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x03, 0x00, 0x01, 0x12, 0x04, 0xe1, 0x02, 0x0a, 0x17, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x12, 0x04, 0xe2, 0x02, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x05, 0x12, 0x04, 0xe2, 0x02, 0x04, 0x08, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe2, 0x02, 0x09, 0x10, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe2, 0x02, 0x13, 0x14, 0x0a, + 0x0e, 0x0a, 0x06, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x04, 0x14, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x06, 0x12, 0x04, 0xe3, 0x02, 0x04, 0x0c, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xe3, 0x02, 0x0d, + 0x0f, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x24, 0x03, 0x00, 0x02, 0x01, 0x03, 0x12, 0x04, 0xe3, 0x02, + 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x00, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x15, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe6, 0x02, 0x02, 0x0b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe6, 0x02, 0x0c, 0x10, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe6, 0x02, 0x13, 0x14, 0x0a, 0x0e, 0x0a, + 0x04, 0x04, 0x24, 0x08, 0x00, 0x12, 0x06, 0xe7, 0x02, 0x02, 0xed, 0x02, 0x03, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x24, 0x08, 0x00, 0x01, 0x12, 0x04, 0xe7, 0x02, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x24, 0x02, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x04, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, + 0x02, 0x01, 0x06, 0x12, 0x04, 0xe8, 0x02, 0x04, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, + 0x01, 0x01, 0x12, 0x04, 0xe8, 0x02, 0x0d, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x01, + 0x03, 0x12, 0x04, 0xe8, 0x02, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x02, 0x12, + 0x04, 0xe9, 0x02, 0x04, 0x1d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x06, 0x12, 0x04, + 0xe9, 0x02, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x01, 0x12, 0x04, 0xe9, + 0x02, 0x12, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x02, 0x03, 0x12, 0x04, 0xe9, 0x02, + 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x03, 0x12, 0x04, 0xea, 0x02, 0x04, 0x28, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x05, 0x12, 0x04, 0xea, 0x02, 0x04, 0x0a, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x01, 0x12, 0x04, 0xea, 0x02, 0x0b, 0x23, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x24, 0x02, 0x03, 0x03, 0x12, 0x04, 0xea, 0x02, 0x26, 0x27, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x24, 0x02, 0x04, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x24, 0x02, 0x04, 0x06, 0x12, 0x04, 0xeb, 0x02, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, + 0x02, 0x04, 0x01, 0x12, 0x04, 0xeb, 0x02, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, + 0x04, 0x03, 0x12, 0x04, 0xeb, 0x02, 0x1e, 0x1f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x24, 0x02, 0x05, + 0x12, 0x04, 0xec, 0x02, 0x04, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x05, 0x12, + 0x04, 0xec, 0x02, 0x04, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x01, 0x12, 0x04, + 0xec, 0x02, 0x0b, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x24, 0x02, 0x05, 0x03, 0x12, 0x04, 0xec, + 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x02, 0x05, 0x01, 0x12, 0x06, 0xf0, 0x02, 0x00, 0xf6, 0x02, + 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x05, 0x01, 0x01, 0x12, 0x04, 0xf0, 0x02, 0x05, 0x10, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x01, 0x02, 0x00, 0x12, 0x04, 0xf1, 0x02, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf1, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x00, 0x02, 0x12, 0x04, 0xf1, 0x02, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, + 0x02, 0x01, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, + 0x01, 0x12, 0x04, 0xf2, 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x01, 0x02, + 0x12, 0x04, 0xf2, 0x02, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x02, 0x12, 0x04, + 0xf3, 0x02, 0x02, 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf3, + 0x02, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x02, 0x02, 0x12, 0x04, 0xf3, 0x02, + 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x05, 0x01, 0x02, 0x03, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x19, + 0x0a, 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf4, 0x02, 0x02, 0x14, 0x0a, + 0x0d, 0x0a, 0x05, 0x05, 0x01, 0x02, 0x03, 0x02, 0x12, 0x04, 0xf4, 0x02, 0x17, 0x18, 0x0a, 0x0c, + 0x0a, 0x04, 0x05, 0x01, 0x02, 0x04, 0x12, 0x04, 0xf5, 0x02, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, + 0x05, 0x01, 0x02, 0x04, 0x01, 0x12, 0x04, 0xf5, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x05, + 0x01, 0x02, 0x04, 0x02, 0x12, 0x04, 0xf5, 0x02, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x25, + 0x12, 0x06, 0xf8, 0x02, 0x00, 0xfa, 0x02, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x25, 0x01, 0x12, + 0x04, 0xf8, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x25, 0x02, 0x00, 0x12, 0x04, 0xf9, + 0x02, 0x02, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x06, 0x12, 0x04, 0xf9, 0x02, + 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x01, 0x12, 0x04, 0xf9, 0x02, 0x0b, + 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x25, 0x02, 0x00, 0x03, 0x12, 0x04, 0xf9, 0x02, 0x17, 0x18, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x26, 0x12, 0x06, 0xfc, 0x02, 0x00, 0xff, 0x02, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x26, 0x01, 0x12, 0x04, 0xfc, 0x02, 0x08, 0x17, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x26, 0x02, 0x00, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, + 0x00, 0x06, 0x12, 0x04, 0xfd, 0x02, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xfd, 0x02, 0x0f, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x00, 0x03, + 0x12, 0x04, 0xfd, 0x02, 0x18, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x26, 0x02, 0x01, 0x12, 0x04, + 0xfe, 0x02, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x05, 0x12, 0x04, 0xfe, + 0x02, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x01, 0x12, 0x04, 0xfe, 0x02, + 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x26, 0x02, 0x01, 0x03, 0x12, 0x04, 0xfe, 0x02, 0x10, + 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x27, 0x12, 0x06, 0x81, 0x03, 0x00, 0x84, 0x03, 0x01, 0x0a, + 0x0b, 0x0a, 0x03, 0x04, 0x27, 0x01, 0x12, 0x04, 0x81, 0x03, 0x08, 0x14, 0x0a, 0x0c, 0x0a, 0x04, + 0x04, 0x27, 0x02, 0x00, 0x12, 0x04, 0x82, 0x03, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, + 0x02, 0x00, 0x05, 0x12, 0x04, 0x82, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, + 0x00, 0x01, 0x12, 0x04, 0x82, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x00, + 0x03, 0x12, 0x04, 0x82, 0x03, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x27, 0x02, 0x01, 0x12, + 0x04, 0x83, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x05, 0x12, 0x04, + 0x83, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x01, 0x12, 0x04, 0x83, + 0x03, 0x09, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x27, 0x02, 0x01, 0x03, 0x12, 0x04, 0x83, 0x03, + 0x10, 0x11, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x28, 0x12, 0x06, 0x86, 0x03, 0x00, 0x8b, 0x03, 0x01, + 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x28, 0x01, 0x12, 0x04, 0x86, 0x03, 0x08, 0x15, 0x0a, 0x0c, 0x0a, + 0x04, 0x04, 0x28, 0x02, 0x00, 0x12, 0x04, 0x87, 0x03, 0x02, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x28, 0x02, 0x00, 0x05, 0x12, 0x04, 0x87, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, + 0x02, 0x00, 0x01, 0x12, 0x04, 0x87, 0x03, 0x09, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, + 0x00, 0x03, 0x12, 0x04, 0x87, 0x03, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x01, + 0x12, 0x04, 0x88, 0x03, 0x02, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x05, 0x12, + 0x04, 0x88, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x88, 0x03, 0x09, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x01, 0x03, 0x12, 0x04, 0x88, + 0x03, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x28, 0x02, 0x02, 0x12, 0x04, 0x89, 0x03, 0x02, + 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x05, 0x12, 0x04, 0x89, 0x03, 0x02, 0x08, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x01, 0x12, 0x04, 0x89, 0x03, 0x09, 0x0d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, 0x02, 0x03, 0x12, 0x04, 0x89, 0x03, 0x10, 0x11, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x28, 0x02, 0x03, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x28, 0x02, 0x03, 0x04, 0x12, 0x04, 0x8a, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x28, 0x02, 0x03, 0x06, 0x12, 0x04, 0x8a, 0x03, 0x0b, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, + 0x02, 0x03, 0x01, 0x12, 0x04, 0x8a, 0x03, 0x14, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x28, 0x02, + 0x03, 0x03, 0x12, 0x04, 0x8a, 0x03, 0x2a, 0x2b, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x29, 0x12, 0x06, + 0x8d, 0x03, 0x00, 0xa0, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x29, 0x01, 0x12, 0x04, 0x8d, + 0x03, 0x08, 0x11, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x04, 0x00, 0x12, 0x06, 0x8f, 0x03, 0x02, + 0x96, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x04, 0x00, 0x01, 0x12, 0x04, 0x8f, 0x03, + 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0x90, 0x03, + 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0x90, + 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, + 0x90, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, + 0x91, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, + 0x04, 0x91, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x01, 0x02, + 0x12, 0x04, 0x91, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, 0x02, 0x02, + 0x12, 0x04, 0x92, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x02, + 0x01, 0x12, 0x04, 0x92, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, + 0x02, 0x02, 0x12, 0x04, 0x92, 0x03, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, 0x04, 0x00, + 0x02, 0x03, 0x12, 0x04, 0x93, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, 0x00, + 0x02, 0x03, 0x01, 0x12, 0x04, 0x93, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, 0x04, + 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0x93, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x29, + 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0x94, 0x03, 0x04, 0x17, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x29, + 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0x94, 0x03, 0x04, 0x12, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x29, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0x94, 0x03, 0x15, 0x16, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x29, 0x04, 0x00, 0x02, 0x05, 0x12, 0x04, 0x95, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x29, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x04, 0x95, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x29, 0x04, 0x00, 0x02, 0x05, 0x02, 0x12, 0x04, 0x95, 0x03, 0x19, 0x1a, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x29, 0x02, 0x00, 0x12, 0x04, 0x98, 0x03, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x29, 0x02, 0x00, 0x06, 0x12, 0x04, 0x98, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x29, 0x02, 0x00, 0x01, 0x12, 0x04, 0x98, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, + 0x02, 0x00, 0x03, 0x12, 0x04, 0x98, 0x03, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x29, 0x08, + 0x00, 0x12, 0x06, 0x99, 0x03, 0x02, 0x9f, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x08, + 0x00, 0x01, 0x12, 0x04, 0x99, 0x03, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x01, + 0x12, 0x04, 0x9a, 0x03, 0x04, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x06, 0x12, + 0x04, 0x9a, 0x03, 0x04, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x01, 0x12, 0x04, + 0x9a, 0x03, 0x15, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x01, 0x03, 0x12, 0x04, 0x9a, + 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x02, 0x12, 0x04, 0x9b, 0x03, 0x04, + 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x06, 0x12, 0x04, 0x9b, 0x03, 0x04, 0x19, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x01, 0x12, 0x04, 0x9b, 0x03, 0x1a, 0x27, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x02, 0x03, 0x12, 0x04, 0x9b, 0x03, 0x2a, 0x2b, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x29, 0x02, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x04, 0x28, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x29, 0x02, 0x03, 0x06, 0x12, 0x04, 0x9c, 0x03, 0x04, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x29, 0x02, 0x03, 0x01, 0x12, 0x04, 0x9c, 0x03, 0x18, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, + 0x02, 0x03, 0x03, 0x12, 0x04, 0x9c, 0x03, 0x26, 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, + 0x04, 0x12, 0x04, 0x9d, 0x03, 0x04, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x06, + 0x12, 0x04, 0x9d, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x01, 0x12, + 0x04, 0x9d, 0x03, 0x16, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x04, 0x03, 0x12, 0x04, + 0x9d, 0x03, 0x22, 0x23, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x29, 0x02, 0x05, 0x12, 0x04, 0x9e, 0x03, + 0x04, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x06, 0x12, 0x04, 0x9e, 0x03, 0x04, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x01, 0x12, 0x04, 0x9e, 0x03, 0x11, 0x1e, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x29, 0x02, 0x05, 0x03, 0x12, 0x04, 0x9e, 0x03, 0x21, 0x22, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x2a, 0x12, 0x06, 0xa2, 0x03, 0x00, 0xa5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x2a, 0x01, 0x12, 0x04, 0xa2, 0x03, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, + 0x02, 0x00, 0x12, 0x04, 0xa3, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xa3, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xa3, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xa3, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2a, 0x02, 0x01, 0x12, 0x04, 0xa4, + 0x03, 0x02, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa4, 0x03, + 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa4, 0x03, 0x08, + 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2a, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa4, 0x03, 0x14, 0x15, + 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2b, 0x12, 0x06, 0xa7, 0x03, 0x00, 0xac, 0x03, 0x01, 0x0a, 0x0b, + 0x0a, 0x03, 0x04, 0x2b, 0x01, 0x12, 0x04, 0xa7, 0x03, 0x08, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x2b, 0x02, 0x00, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, + 0x00, 0x04, 0x12, 0x04, 0xa8, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, + 0x05, 0x12, 0x04, 0xa8, 0x03, 0x0b, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x01, + 0x12, 0x04, 0xa8, 0x03, 0x11, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x00, 0x03, 0x12, + 0x04, 0xa8, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x01, 0x12, 0x04, 0xa9, + 0x03, 0x02, 0x20, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x04, 0x12, 0x04, 0xa9, 0x03, + 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x05, 0x12, 0x04, 0xa9, 0x03, 0x0b, + 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa9, 0x03, 0x11, 0x1b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa9, 0x03, 0x1e, 0x1f, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x2b, 0x02, 0x02, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2b, 0x02, 0x02, 0x05, 0x12, 0x04, 0xaa, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2b, 0x02, 0x02, 0x01, 0x12, 0x04, 0xaa, 0x03, 0x09, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2b, 0x02, 0x02, 0x03, 0x12, 0x04, 0xaa, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2b, + 0x02, 0x03, 0x12, 0x04, 0xab, 0x03, 0x02, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, + 0x04, 0x12, 0x04, 0xab, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x05, + 0x12, 0x04, 0xab, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x01, 0x12, + 0x04, 0xab, 0x03, 0x12, 0x24, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2b, 0x02, 0x03, 0x03, 0x12, 0x04, + 0xab, 0x03, 0x27, 0x28, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2c, 0x12, 0x06, 0xae, 0x03, 0x00, 0xb2, + 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2c, 0x01, 0x12, 0x04, 0xae, 0x03, 0x08, 0x1b, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x00, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2c, 0x02, 0x00, 0x06, 0x12, 0x04, 0xaf, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2c, 0x02, 0x00, 0x01, 0x12, 0x04, 0xaf, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2c, 0x02, 0x00, 0x03, 0x12, 0x04, 0xaf, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, + 0x02, 0x01, 0x12, 0x04, 0xb0, 0x03, 0x02, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, + 0x04, 0x12, 0x04, 0xb0, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xb0, 0x03, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xb0, 0x03, 0x12, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xb0, 0x03, 0x2f, 0x30, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2c, 0x02, 0x02, 0x12, 0x04, 0xb1, 0x03, + 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x04, 0x12, 0x04, 0xb1, 0x03, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb1, 0x03, 0x0b, 0x1b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x01, 0x12, 0x04, 0xb1, 0x03, 0x1c, 0x2d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2c, 0x02, 0x02, 0x03, 0x12, 0x04, 0xb1, 0x03, 0x30, 0x31, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x2d, 0x12, 0x06, 0xb4, 0x03, 0x00, 0xba, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x2d, 0x01, 0x12, 0x04, 0xb4, 0x03, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, + 0x00, 0x12, 0x04, 0xb5, 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x06, + 0x12, 0x04, 0xb5, 0x03, 0x02, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x01, 0x12, + 0x04, 0xb5, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x00, 0x03, 0x12, 0x04, + 0xb5, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x01, 0x12, 0x04, 0xb6, 0x03, + 0x02, 0x31, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x04, 0x12, 0x04, 0xb6, 0x03, 0x02, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x05, 0x12, 0x04, 0xb6, 0x03, 0x0b, 0x11, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x01, 0x12, 0x04, 0xb6, 0x03, 0x12, 0x2c, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x01, 0x03, 0x12, 0x04, 0xb6, 0x03, 0x2f, 0x30, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x02, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x32, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2d, 0x02, 0x02, 0x04, 0x12, 0x04, 0xb7, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2d, 0x02, 0x02, 0x06, 0x12, 0x04, 0xb7, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, + 0x02, 0x02, 0x01, 0x12, 0x04, 0xb7, 0x03, 0x1c, 0x2d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, + 0x02, 0x03, 0x12, 0x04, 0xb7, 0x03, 0x30, 0x31, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x03, + 0x12, 0x04, 0xb8, 0x03, 0x02, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x05, 0x12, + 0x04, 0xb8, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x01, 0x12, 0x04, + 0xb8, 0x03, 0x09, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x03, 0x03, 0x12, 0x04, 0xb8, + 0x03, 0x1d, 0x1e, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2d, 0x02, 0x04, 0x12, 0x04, 0xb9, 0x03, 0x02, + 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x06, 0x12, 0x04, 0xb9, 0x03, 0x02, 0x12, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x01, 0x12, 0x04, 0xb9, 0x03, 0x13, 0x23, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2d, 0x02, 0x04, 0x03, 0x12, 0x04, 0xb9, 0x03, 0x26, 0x27, 0x0a, 0x0c, + 0x0a, 0x02, 0x04, 0x2e, 0x12, 0x06, 0xbc, 0x03, 0x00, 0xc5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, + 0x04, 0x2e, 0x01, 0x12, 0x04, 0xbc, 0x03, 0x08, 0x14, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x2e, 0x04, + 0x00, 0x12, 0x06, 0xbd, 0x03, 0x02, 0xc1, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x04, + 0x00, 0x01, 0x12, 0x04, 0xbd, 0x03, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2e, 0x04, 0x00, + 0x02, 0x00, 0x12, 0x04, 0xbe, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, 0x04, 0x00, + 0x02, 0x00, 0x01, 0x12, 0x04, 0xbe, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, 0x04, + 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xbe, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2e, + 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2e, + 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xbf, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x2e, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xbf, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x2e, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x2e, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xc0, 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x2e, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xc0, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, + 0x0a, 0x04, 0x04, 0x2e, 0x02, 0x00, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2e, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc3, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2e, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc3, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, + 0x02, 0x00, 0x03, 0x12, 0x04, 0xc3, 0x03, 0x0e, 0x0f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2e, 0x02, + 0x01, 0x12, 0x04, 0xc4, 0x03, 0x02, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x05, + 0x12, 0x04, 0xc4, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x01, 0x12, + 0x04, 0xc4, 0x03, 0x08, 0x12, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2e, 0x02, 0x01, 0x03, 0x12, 0x04, + 0xc4, 0x03, 0x15, 0x16, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x2f, 0x12, 0x06, 0xc7, 0x03, 0x00, 0xd0, + 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x2f, 0x01, 0x12, 0x04, 0xc7, 0x03, 0x08, 0x14, 0x0a, + 0x0e, 0x0a, 0x04, 0x04, 0x2f, 0x04, 0x00, 0x12, 0x06, 0xc8, 0x03, 0x02, 0xcc, 0x03, 0x03, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x04, 0x00, 0x01, 0x12, 0x04, 0xc8, 0x03, 0x07, 0x0b, 0x0a, 0x0e, + 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x12, 0x04, 0xc9, 0x03, 0x04, 0x19, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc9, 0x03, 0x04, 0x14, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x00, 0x02, 0x12, 0x04, 0xc9, 0x03, 0x17, 0x18, + 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x12, 0x04, 0xca, 0x03, 0x04, 0x15, + 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x04, 0xca, 0x03, 0x04, + 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xca, 0x03, + 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xcb, 0x03, + 0x04, 0x1d, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xcb, + 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x2f, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, + 0xcb, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x00, 0x12, 0x04, 0xce, 0x03, + 0x02, 0x10, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x06, 0x12, 0x04, 0xce, 0x03, 0x02, + 0x06, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x01, 0x12, 0x04, 0xce, 0x03, 0x07, 0x0b, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x2f, 0x02, 0x00, 0x03, 0x12, 0x04, 0xce, 0x03, 0x0e, 0x0f, 0x0a, + 0x0c, 0x0a, 0x04, 0x04, 0x2f, 0x02, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x02, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x2f, 0x02, 0x01, 0x05, 0x12, 0x04, 0xcf, 0x03, 0x02, 0x07, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x2f, 0x02, 0x01, 0x01, 0x12, 0x04, 0xcf, 0x03, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x2f, 0x02, 0x01, 0x03, 0x12, 0x04, 0xcf, 0x03, 0x14, 0x15, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x30, + 0x12, 0x06, 0xd2, 0x03, 0x00, 0xd5, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x30, 0x01, 0x12, + 0x04, 0xd2, 0x03, 0x08, 0x1a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x00, 0x12, 0x04, 0xd3, + 0x03, 0x02, 0x1e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x06, 0x12, 0x04, 0xd3, 0x03, + 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd3, 0x03, 0x0f, + 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x30, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd3, 0x03, 0x1c, 0x1d, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x30, 0x02, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x1d, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x30, 0x02, 0x01, 0x06, 0x12, 0x04, 0xd4, 0x03, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x30, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd4, 0x03, 0x0f, 0x18, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x30, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd4, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, 0x04, + 0x31, 0x12, 0x06, 0xd7, 0x03, 0x00, 0xda, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x31, 0x01, + 0x12, 0x04, 0xd7, 0x03, 0x08, 0x18, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x00, 0x12, 0x04, + 0xd8, 0x03, 0x02, 0x13, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x05, 0x12, 0x04, 0xd8, + 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x01, 0x12, 0x04, 0xd8, 0x03, + 0x09, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x00, 0x03, 0x12, 0x04, 0xd8, 0x03, 0x11, + 0x12, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x31, 0x02, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x1d, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x31, 0x02, 0x01, 0x06, 0x12, 0x04, 0xd9, 0x03, 0x02, 0x0e, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x31, 0x02, 0x01, 0x01, 0x12, 0x04, 0xd9, 0x03, 0x0f, 0x18, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x31, 0x02, 0x01, 0x03, 0x12, 0x04, 0xd9, 0x03, 0x1b, 0x1c, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x32, 0x12, 0x06, 0xdc, 0x03, 0x00, 0xe0, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x32, + 0x01, 0x12, 0x04, 0xdc, 0x03, 0x08, 0x19, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x00, 0x12, + 0x04, 0xdd, 0x03, 0x02, 0x28, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x04, 0x12, 0x04, + 0xdd, 0x03, 0x02, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x06, 0x12, 0x04, 0xdd, + 0x03, 0x0b, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x01, 0x12, 0x04, 0xdd, 0x03, + 0x18, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x00, 0x03, 0x12, 0x04, 0xdd, 0x03, 0x26, + 0x27, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x32, 0x02, 0x01, 0x12, 0x04, 0xde, 0x03, 0x02, 0x2b, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x04, 0x12, 0x04, 0xde, 0x03, 0x02, 0x0a, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x32, 0x02, 0x01, 0x06, 0x12, 0x04, 0xde, 0x03, 0x0b, 0x1b, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x32, 0x02, 0x01, 0x01, 0x12, 0x04, 0xde, 0x03, 0x1c, 0x26, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x32, 0x02, 0x01, 0x03, 0x12, 0x04, 0xde, 0x03, 0x29, 0x2a, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x32, 0x02, 0x02, 0x12, 0x04, 0xdf, 0x03, 0x02, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, + 0x02, 0x05, 0x12, 0x04, 0xdf, 0x03, 0x02, 0x08, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x02, + 0x01, 0x12, 0x04, 0xdf, 0x03, 0x09, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x32, 0x02, 0x02, 0x03, + 0x12, 0x04, 0xdf, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x33, 0x12, 0x06, 0xe2, 0x03, + 0x00, 0xe4, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x33, 0x01, 0x12, 0x04, 0xe2, 0x03, 0x08, + 0x14, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x33, 0x02, 0x00, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x1e, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x06, 0x12, 0x04, 0xe3, 0x03, 0x02, 0x12, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x33, 0x02, 0x00, 0x01, 0x12, 0x04, 0xe3, 0x03, 0x13, 0x19, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x33, 0x02, 0x00, 0x03, 0x12, 0x04, 0xe3, 0x03, 0x1c, 0x1d, 0x0a, 0x0c, 0x0a, 0x02, + 0x04, 0x34, 0x12, 0x06, 0xe6, 0x03, 0x00, 0xf6, 0x03, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x34, + 0x01, 0x12, 0x04, 0xe6, 0x03, 0x08, 0x18, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x34, 0x04, 0x00, 0x12, + 0x06, 0xe7, 0x03, 0x02, 0xed, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x04, 0x00, 0x01, + 0x12, 0x04, 0xe7, 0x03, 0x07, 0x0b, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, 0x02, 0x00, + 0x12, 0x04, 0xe8, 0x03, 0x04, 0x19, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x00, + 0x01, 0x12, 0x04, 0xe8, 0x03, 0x04, 0x14, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, + 0x00, 0x02, 0x12, 0x04, 0xe8, 0x03, 0x17, 0x18, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, + 0x02, 0x01, 0x12, 0x04, 0xe9, 0x03, 0x04, 0x15, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, + 0x02, 0x01, 0x01, 0x12, 0x04, 0xe9, 0x03, 0x04, 0x10, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, + 0x00, 0x02, 0x01, 0x02, 0x12, 0x04, 0xe9, 0x03, 0x13, 0x14, 0x0a, 0x0e, 0x0a, 0x06, 0x04, 0x34, + 0x04, 0x00, 0x02, 0x02, 0x12, 0x04, 0xea, 0x03, 0x04, 0x1b, 0x0a, 0x0f, 0x0a, 0x07, 0x04, 0x34, + 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x04, 0xea, 0x03, 0x04, 0x16, 0x0a, 0x0f, 0x0a, 0x07, 0x04, + 0x34, 0x04, 0x00, 0x02, 0x02, 0x02, 0x12, 0x04, 0xea, 0x03, 0x19, 0x1a, 0x0a, 0x0e, 0x0a, 0x06, + 0x04, 0x34, 0x04, 0x00, 0x02, 0x03, 0x12, 0x04, 0xeb, 0x03, 0x04, 0x18, 0x0a, 0x0f, 0x0a, 0x07, + 0x04, 0x34, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x04, 0xeb, 0x03, 0x04, 0x13, 0x0a, 0x0f, 0x0a, + 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x03, 0x02, 0x12, 0x04, 0xeb, 0x03, 0x16, 0x17, 0x0a, 0x0e, + 0x0a, 0x06, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x12, 0x04, 0xec, 0x03, 0x04, 0x17, 0x0a, 0x0f, + 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x04, 0xec, 0x03, 0x04, 0x12, 0x0a, + 0x0f, 0x0a, 0x07, 0x04, 0x34, 0x04, 0x00, 0x02, 0x04, 0x02, 0x12, 0x04, 0xec, 0x03, 0x15, 0x16, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x00, 0x12, 0x04, 0xef, 0x03, 0x02, 0x10, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x00, 0x06, 0x12, 0x04, 0xef, 0x03, 0x02, 0x06, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x34, 0x02, 0x00, 0x01, 0x12, 0x04, 0xef, 0x03, 0x07, 0x0b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x34, 0x02, 0x00, 0x03, 0x12, 0x04, 0xef, 0x03, 0x0e, 0x0f, 0x0a, 0x0e, 0x0a, 0x04, 0x04, + 0x34, 0x08, 0x00, 0x12, 0x06, 0xf0, 0x03, 0x02, 0xf5, 0x03, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, + 0x34, 0x08, 0x00, 0x01, 0x12, 0x04, 0xf0, 0x03, 0x08, 0x11, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, + 0x02, 0x01, 0x12, 0x04, 0xf1, 0x03, 0x04, 0x21, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, + 0x06, 0x12, 0x04, 0xf1, 0x03, 0x04, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x01, + 0x12, 0x04, 0xf1, 0x03, 0x15, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x01, 0x03, 0x12, + 0x04, 0xf1, 0x03, 0x1f, 0x20, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x02, 0x12, 0x04, 0xf2, + 0x03, 0x04, 0x2c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x06, 0x12, 0x04, 0xf2, 0x03, + 0x04, 0x19, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x01, 0x12, 0x04, 0xf2, 0x03, 0x1a, + 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x02, 0x03, 0x12, 0x04, 0xf2, 0x03, 0x2a, 0x2b, + 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x34, 0x02, 0x03, 0x12, 0x04, 0xf3, 0x03, 0x04, 0x30, 0x0a, 0x0d, + 0x0a, 0x05, 0x04, 0x34, 0x02, 0x03, 0x06, 0x12, 0x04, 0xf3, 0x03, 0x04, 0x16, 0x0a, 0x0d, 0x0a, + 0x05, 0x04, 0x34, 0x02, 0x03, 0x01, 0x12, 0x04, 0xf3, 0x03, 0x17, 0x2b, 0x0a, 0x0d, 0x0a, 0x05, + 0x04, 0x34, 0x02, 0x03, 0x03, 0x12, 0x04, 0xf3, 0x03, 0x2e, 0x2f, 0x0a, 0x0c, 0x0a, 0x04, 0x04, + 0x34, 0x02, 0x04, 0x12, 0x04, 0xf4, 0x03, 0x04, 0x2e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, + 0x04, 0x06, 0x12, 0x04, 0xf4, 0x03, 0x04, 0x15, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, + 0x01, 0x12, 0x04, 0xf4, 0x03, 0x16, 0x29, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x34, 0x02, 0x04, 0x03, + 0x12, 0x04, 0xf4, 0x03, 0x2c, 0x2d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.transaction.v1.serde.rs"); +// @@protoc_insertion_point(module) diff --git a/protos/rust/src/pb/aptos.transaction.v1.serde.rs b/protos/rust/src/pb/aptos.transaction.v1.serde.rs new file mode 100644 index 00000000000000..ffcda66487f319 --- /dev/null +++ b/protos/rust/src/pb/aptos.transaction.v1.serde.rs @@ -0,0 +1,8307 @@ +// Copyright © Aptos Foundation + +// @generated +impl serde::Serialize for AccountSignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if self.signature.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.AccountSignature", len)?; + if self.r#type != 0 { + let v = account_signature::Type::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if let Some(v) = self.signature.as_ref() { + match v { + account_signature::Signature::Ed25519(v) => { + struct_ser.serialize_field("ed25519", v)?; + } + account_signature::Signature::MultiEd25519(v) => { + struct_ser.serialize_field("multiEd25519", v)?; + } + account_signature::Signature::SingleKeySignature(v) => { + struct_ser.serialize_field("singleKeySignature", v)?; + } + account_signature::Signature::MultiKeySignature(v) => { + struct_ser.serialize_field("multiKeySignature", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AccountSignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "ed25519", + "multi_ed25519", + "multiEd25519", + "single_key_signature", + "singleKeySignature", + "multi_key_signature", + "multiKeySignature", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + Ed25519, + MultiEd25519, + SingleKeySignature, + MultiKeySignature, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "ed25519" => Ok(GeneratedField::Ed25519), + "multiEd25519" | "multi_ed25519" => Ok(GeneratedField::MultiEd25519), + "singleKeySignature" | "single_key_signature" => Ok(GeneratedField::SingleKeySignature), + "multiKeySignature" | "multi_key_signature" => Ok(GeneratedField::MultiKeySignature), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AccountSignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.AccountSignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::Ed25519 => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("ed25519")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(account_signature::Signature::Ed25519) +; + } + GeneratedField::MultiEd25519 => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("multiEd25519")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(account_signature::Signature::MultiEd25519) +; + } + GeneratedField::SingleKeySignature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("singleKeySignature")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(account_signature::Signature::SingleKeySignature) +; + } + GeneratedField::MultiKeySignature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("multiKeySignature")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(account_signature::Signature::MultiKeySignature) +; + } + } + } + Ok(AccountSignature { + r#type: r#type__.unwrap_or_default(), + signature: signature__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.AccountSignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for account_signature::Type { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TYPE_UNSPECIFIED", + Self::Ed25519 => "TYPE_ED25519", + Self::MultiEd25519 => "TYPE_MULTI_ED25519", + Self::SingleKey => "TYPE_SINGLE_KEY", + Self::MultiKey => "TYPE_MULTI_KEY", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for account_signature::Type { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TYPE_UNSPECIFIED", + "TYPE_ED25519", + "TYPE_MULTI_ED25519", + "TYPE_SINGLE_KEY", + "TYPE_MULTI_KEY", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = account_signature::Type; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(account_signature::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(account_signature::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TYPE_UNSPECIFIED" => Ok(account_signature::Type::Unspecified), + "TYPE_ED25519" => Ok(account_signature::Type::Ed25519), + "TYPE_MULTI_ED25519" => Ok(account_signature::Type::MultiEd25519), + "TYPE_SINGLE_KEY" => Ok(account_signature::Type::SingleKey), + "TYPE_MULTI_KEY" => Ok(account_signature::Type::MultiKey), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for AnyPublicKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if !self.public_key.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.AnyPublicKey", len)?; + if self.r#type != 0 { + let v = any_public_key::Type::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if !self.public_key.is_empty() { + struct_ser.serialize_field("publicKey", pbjson::private::base64::encode(&self.public_key).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AnyPublicKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "public_key", + "publicKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + PublicKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "publicKey" | "public_key" => Ok(GeneratedField::PublicKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AnyPublicKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.AnyPublicKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut public_key__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::PublicKey => { + if public_key__.is_some() { + return Err(serde::de::Error::duplicate_field("publicKey")); + } + public_key__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(AnyPublicKey { + r#type: r#type__.unwrap_or_default(), + public_key: public_key__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.AnyPublicKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for any_public_key::Type { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TYPE_UNSPECIFIED", + Self::Ed25519 => "TYPE_ED25519", + Self::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for any_public_key::Type { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TYPE_UNSPECIFIED", + "TYPE_ED25519", + "TYPE_SECP256K1_ECDSA", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = any_public_key::Type; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(any_public_key::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(any_public_key::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TYPE_UNSPECIFIED" => Ok(any_public_key::Type::Unspecified), + "TYPE_ED25519" => Ok(any_public_key::Type::Ed25519), + "TYPE_SECP256K1_ECDSA" => Ok(any_public_key::Type::Secp256k1Ecdsa), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for AnySignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if !self.signature.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.AnySignature", len)?; + if self.r#type != 0 { + let v = any_signature::Type::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if !self.signature.is_empty() { + struct_ser.serialize_field("signature", pbjson::private::base64::encode(&self.signature).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AnySignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "signature", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + Signature, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "signature" => Ok(GeneratedField::Signature), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AnySignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.AnySignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::Signature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("signature")); + } + signature__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(AnySignature { + r#type: r#type__.unwrap_or_default(), + signature: signature__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.AnySignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for any_signature::Type { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TYPE_UNSPECIFIED", + Self::Ed25519 => "TYPE_ED25519", + Self::Secp256k1Ecdsa => "TYPE_SECP256K1_ECDSA", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for any_signature::Type { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TYPE_UNSPECIFIED", + "TYPE_ED25519", + "TYPE_SECP256K1_ECDSA", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = any_signature::Type; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(any_signature::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(any_signature::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TYPE_UNSPECIFIED" => Ok(any_signature::Type::Unspecified), + "TYPE_ED25519" => Ok(any_signature::Type::Ed25519), + "TYPE_SECP256K1_ECDSA" => Ok(any_signature::Type::Secp256k1Ecdsa), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for Block { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.timestamp.is_some() { + len += 1; + } + if self.height != 0 { + len += 1; + } + if !self.transactions.is_empty() { + len += 1; + } + if self.chain_id != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.Block", len)?; + if let Some(v) = self.timestamp.as_ref() { + struct_ser.serialize_field("timestamp", v)?; + } + if self.height != 0 { + struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; + } + if !self.transactions.is_empty() { + struct_ser.serialize_field("transactions", &self.transactions)?; + } + if self.chain_id != 0 { + struct_ser.serialize_field("chainId", &self.chain_id)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Block { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "timestamp", + "height", + "transactions", + "chain_id", + "chainId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Timestamp, + Height, + Transactions, + ChainId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "timestamp" => Ok(GeneratedField::Timestamp), + "height" => Ok(GeneratedField::Height), + "transactions" => Ok(GeneratedField::Transactions), + "chainId" | "chain_id" => Ok(GeneratedField::ChainId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Block; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.Block") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut timestamp__ = None; + let mut height__ = None; + let mut transactions__ = None; + let mut chain_id__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Timestamp => { + if timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + timestamp__ = map.next_value()?; + } + GeneratedField::Height => { + if height__.is_some() { + return Err(serde::de::Error::duplicate_field("height")); + } + height__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Transactions => { + if transactions__.is_some() { + return Err(serde::de::Error::duplicate_field("transactions")); + } + transactions__ = Some(map.next_value()?); + } + GeneratedField::ChainId => { + if chain_id__.is_some() { + return Err(serde::de::Error::duplicate_field("chainId")); + } + chain_id__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(Block { + timestamp: timestamp__, + height: height__.unwrap_or_default(), + transactions: transactions__.unwrap_or_default(), + chain_id: chain_id__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.Block", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BlockMetadataTransaction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.id.is_empty() { + len += 1; + } + if self.round != 0 { + len += 1; + } + if !self.events.is_empty() { + len += 1; + } + if !self.previous_block_votes_bitvec.is_empty() { + len += 1; + } + if !self.proposer.is_empty() { + len += 1; + } + if !self.failed_proposer_indices.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.BlockMetadataTransaction", len)?; + if !self.id.is_empty() { + struct_ser.serialize_field("id", &self.id)?; + } + if self.round != 0 { + struct_ser.serialize_field("round", ToString::to_string(&self.round).as_str())?; + } + if !self.events.is_empty() { + struct_ser.serialize_field("events", &self.events)?; + } + if !self.previous_block_votes_bitvec.is_empty() { + struct_ser.serialize_field("previousBlockVotesBitvec", pbjson::private::base64::encode(&self.previous_block_votes_bitvec).as_str())?; + } + if !self.proposer.is_empty() { + struct_ser.serialize_field("proposer", &self.proposer)?; + } + if !self.failed_proposer_indices.is_empty() { + struct_ser.serialize_field("failedProposerIndices", &self.failed_proposer_indices)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BlockMetadataTransaction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "id", + "round", + "events", + "previous_block_votes_bitvec", + "previousBlockVotesBitvec", + "proposer", + "failed_proposer_indices", + "failedProposerIndices", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Id, + Round, + Events, + PreviousBlockVotesBitvec, + Proposer, + FailedProposerIndices, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "id" => Ok(GeneratedField::Id), + "round" => Ok(GeneratedField::Round), + "events" => Ok(GeneratedField::Events), + "previousBlockVotesBitvec" | "previous_block_votes_bitvec" => Ok(GeneratedField::PreviousBlockVotesBitvec), + "proposer" => Ok(GeneratedField::Proposer), + "failedProposerIndices" | "failed_proposer_indices" => Ok(GeneratedField::FailedProposerIndices), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BlockMetadataTransaction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.BlockMetadataTransaction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut id__ = None; + let mut round__ = None; + let mut events__ = None; + let mut previous_block_votes_bitvec__ = None; + let mut proposer__ = None; + let mut failed_proposer_indices__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Id => { + if id__.is_some() { + return Err(serde::de::Error::duplicate_field("id")); + } + id__ = Some(map.next_value()?); + } + GeneratedField::Round => { + if round__.is_some() { + return Err(serde::de::Error::duplicate_field("round")); + } + round__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Events => { + if events__.is_some() { + return Err(serde::de::Error::duplicate_field("events")); + } + events__ = Some(map.next_value()?); + } + GeneratedField::PreviousBlockVotesBitvec => { + if previous_block_votes_bitvec__.is_some() { + return Err(serde::de::Error::duplicate_field("previousBlockVotesBitvec")); + } + previous_block_votes_bitvec__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Proposer => { + if proposer__.is_some() { + return Err(serde::de::Error::duplicate_field("proposer")); + } + proposer__ = Some(map.next_value()?); + } + GeneratedField::FailedProposerIndices => { + if failed_proposer_indices__.is_some() { + return Err(serde::de::Error::duplicate_field("failedProposerIndices")); + } + failed_proposer_indices__ = + Some(map.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + } + } + Ok(BlockMetadataTransaction { + id: id__.unwrap_or_default(), + round: round__.unwrap_or_default(), + events: events__.unwrap_or_default(), + previous_block_votes_bitvec: previous_block_votes_bitvec__.unwrap_or_default(), + proposer: proposer__.unwrap_or_default(), + failed_proposer_indices: failed_proposer_indices__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.BlockMetadataTransaction", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DeleteModule { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.address.is_empty() { + len += 1; + } + if !self.state_key_hash.is_empty() { + len += 1; + } + if self.module.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.DeleteModule", len)?; + if !self.address.is_empty() { + struct_ser.serialize_field("address", &self.address)?; + } + if !self.state_key_hash.is_empty() { + struct_ser.serialize_field("stateKeyHash", pbjson::private::base64::encode(&self.state_key_hash).as_str())?; + } + if let Some(v) = self.module.as_ref() { + struct_ser.serialize_field("module", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DeleteModule { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "state_key_hash", + "stateKeyHash", + "module", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + StateKeyHash, + Module, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "stateKeyHash" | "state_key_hash" => Ok(GeneratedField::StateKeyHash), + "module" => Ok(GeneratedField::Module), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DeleteModule; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.DeleteModule") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut state_key_hash__ = None; + let mut module__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = Some(map.next_value()?); + } + GeneratedField::StateKeyHash => { + if state_key_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateKeyHash")); + } + state_key_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Module => { + if module__.is_some() { + return Err(serde::de::Error::duplicate_field("module")); + } + module__ = map.next_value()?; + } + } + } + Ok(DeleteModule { + address: address__.unwrap_or_default(), + state_key_hash: state_key_hash__.unwrap_or_default(), + module: module__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.DeleteModule", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DeleteResource { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.address.is_empty() { + len += 1; + } + if !self.state_key_hash.is_empty() { + len += 1; + } + if self.r#type.is_some() { + len += 1; + } + if !self.type_str.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.DeleteResource", len)?; + if !self.address.is_empty() { + struct_ser.serialize_field("address", &self.address)?; + } + if !self.state_key_hash.is_empty() { + struct_ser.serialize_field("stateKeyHash", pbjson::private::base64::encode(&self.state_key_hash).as_str())?; + } + if let Some(v) = self.r#type.as_ref() { + struct_ser.serialize_field("type", v)?; + } + if !self.type_str.is_empty() { + struct_ser.serialize_field("typeStr", &self.type_str)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DeleteResource { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "state_key_hash", + "stateKeyHash", + "type", + "type_str", + "typeStr", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + StateKeyHash, + Type, + TypeStr, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "stateKeyHash" | "state_key_hash" => Ok(GeneratedField::StateKeyHash), + "type" => Ok(GeneratedField::Type), + "typeStr" | "type_str" => Ok(GeneratedField::TypeStr), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DeleteResource; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.DeleteResource") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut state_key_hash__ = None; + let mut r#type__ = None; + let mut type_str__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = Some(map.next_value()?); + } + GeneratedField::StateKeyHash => { + if state_key_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateKeyHash")); + } + state_key_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = map.next_value()?; + } + GeneratedField::TypeStr => { + if type_str__.is_some() { + return Err(serde::de::Error::duplicate_field("typeStr")); + } + type_str__ = Some(map.next_value()?); + } + } + } + Ok(DeleteResource { + address: address__.unwrap_or_default(), + state_key_hash: state_key_hash__.unwrap_or_default(), + r#type: r#type__, + type_str: type_str__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.DeleteResource", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DeleteTableData { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.key.is_empty() { + len += 1; + } + if !self.key_type.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.DeleteTableData", len)?; + if !self.key.is_empty() { + struct_ser.serialize_field("key", &self.key)?; + } + if !self.key_type.is_empty() { + struct_ser.serialize_field("keyType", &self.key_type)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DeleteTableData { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "key", + "key_type", + "keyType", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Key, + KeyType, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "key" => Ok(GeneratedField::Key), + "keyType" | "key_type" => Ok(GeneratedField::KeyType), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DeleteTableData; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.DeleteTableData") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut key__ = None; + let mut key_type__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); + } + key__ = Some(map.next_value()?); + } + GeneratedField::KeyType => { + if key_type__.is_some() { + return Err(serde::de::Error::duplicate_field("keyType")); + } + key_type__ = Some(map.next_value()?); + } + } + } + Ok(DeleteTableData { + key: key__.unwrap_or_default(), + key_type: key_type__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.DeleteTableData", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DeleteTableItem { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.state_key_hash.is_empty() { + len += 1; + } + if !self.handle.is_empty() { + len += 1; + } + if !self.key.is_empty() { + len += 1; + } + if self.data.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.DeleteTableItem", len)?; + if !self.state_key_hash.is_empty() { + struct_ser.serialize_field("stateKeyHash", pbjson::private::base64::encode(&self.state_key_hash).as_str())?; + } + if !self.handle.is_empty() { + struct_ser.serialize_field("handle", &self.handle)?; + } + if !self.key.is_empty() { + struct_ser.serialize_field("key", &self.key)?; + } + if let Some(v) = self.data.as_ref() { + struct_ser.serialize_field("data", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DeleteTableItem { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "state_key_hash", + "stateKeyHash", + "handle", + "key", + "data", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + StateKeyHash, + Handle, + Key, + Data, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "stateKeyHash" | "state_key_hash" => Ok(GeneratedField::StateKeyHash), + "handle" => Ok(GeneratedField::Handle), + "key" => Ok(GeneratedField::Key), + "data" => Ok(GeneratedField::Data), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DeleteTableItem; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.DeleteTableItem") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut state_key_hash__ = None; + let mut handle__ = None; + let mut key__ = None; + let mut data__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::StateKeyHash => { + if state_key_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateKeyHash")); + } + state_key_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Handle => { + if handle__.is_some() { + return Err(serde::de::Error::duplicate_field("handle")); + } + handle__ = Some(map.next_value()?); + } + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); + } + key__ = Some(map.next_value()?); + } + GeneratedField::Data => { + if data__.is_some() { + return Err(serde::de::Error::duplicate_field("data")); + } + data__ = map.next_value()?; + } + } + } + Ok(DeleteTableItem { + state_key_hash: state_key_hash__.unwrap_or_default(), + handle: handle__.unwrap_or_default(), + key: key__.unwrap_or_default(), + data: data__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.DeleteTableItem", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DirectWriteSet { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.write_set_change.is_empty() { + len += 1; + } + if !self.events.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.DirectWriteSet", len)?; + if !self.write_set_change.is_empty() { + struct_ser.serialize_field("writeSetChange", &self.write_set_change)?; + } + if !self.events.is_empty() { + struct_ser.serialize_field("events", &self.events)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DirectWriteSet { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "write_set_change", + "writeSetChange", + "events", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WriteSetChange, + Events, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "writeSetChange" | "write_set_change" => Ok(GeneratedField::WriteSetChange), + "events" => Ok(GeneratedField::Events), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DirectWriteSet; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.DirectWriteSet") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut write_set_change__ = None; + let mut events__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::WriteSetChange => { + if write_set_change__.is_some() { + return Err(serde::de::Error::duplicate_field("writeSetChange")); + } + write_set_change__ = Some(map.next_value()?); + } + GeneratedField::Events => { + if events__.is_some() { + return Err(serde::de::Error::duplicate_field("events")); + } + events__ = Some(map.next_value()?); + } + } + } + Ok(DirectWriteSet { + write_set_change: write_set_change__.unwrap_or_default(), + events: events__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.DirectWriteSet", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Ed25519Signature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.public_key.is_empty() { + len += 1; + } + if !self.signature.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.Ed25519Signature", len)?; + if !self.public_key.is_empty() { + struct_ser.serialize_field("publicKey", pbjson::private::base64::encode(&self.public_key).as_str())?; + } + if !self.signature.is_empty() { + struct_ser.serialize_field("signature", pbjson::private::base64::encode(&self.signature).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Ed25519Signature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "public_key", + "publicKey", + "signature", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PublicKey, + Signature, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "publicKey" | "public_key" => Ok(GeneratedField::PublicKey), + "signature" => Ok(GeneratedField::Signature), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Ed25519Signature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.Ed25519Signature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut public_key__ = None; + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::PublicKey => { + if public_key__.is_some() { + return Err(serde::de::Error::duplicate_field("publicKey")); + } + public_key__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Signature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("signature")); + } + signature__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(Ed25519Signature { + public_key: public_key__.unwrap_or_default(), + signature: signature__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.Ed25519Signature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for EntryFunctionId { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.module.is_some() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.EntryFunctionId", len)?; + if let Some(v) = self.module.as_ref() { + struct_ser.serialize_field("module", v)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for EntryFunctionId { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "module", + "name", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Module, + Name, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "module" => Ok(GeneratedField::Module), + "name" => Ok(GeneratedField::Name), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = EntryFunctionId; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.EntryFunctionId") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut module__ = None; + let mut name__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Module => { + if module__.is_some() { + return Err(serde::de::Error::duplicate_field("module")); + } + module__ = map.next_value()?; + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + } + } + Ok(EntryFunctionId { + module: module__, + name: name__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.EntryFunctionId", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for EntryFunctionPayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.function.is_some() { + len += 1; + } + if !self.type_arguments.is_empty() { + len += 1; + } + if !self.arguments.is_empty() { + len += 1; + } + if !self.entry_function_id_str.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.EntryFunctionPayload", len)?; + if let Some(v) = self.function.as_ref() { + struct_ser.serialize_field("function", v)?; + } + if !self.type_arguments.is_empty() { + struct_ser.serialize_field("typeArguments", &self.type_arguments)?; + } + if !self.arguments.is_empty() { + struct_ser.serialize_field("arguments", &self.arguments)?; + } + if !self.entry_function_id_str.is_empty() { + struct_ser.serialize_field("entryFunctionIdStr", &self.entry_function_id_str)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for EntryFunctionPayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "function", + "type_arguments", + "typeArguments", + "arguments", + "entry_function_id_str", + "entryFunctionIdStr", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Function, + TypeArguments, + Arguments, + EntryFunctionIdStr, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "function" => Ok(GeneratedField::Function), + "typeArguments" | "type_arguments" => Ok(GeneratedField::TypeArguments), + "arguments" => Ok(GeneratedField::Arguments), + "entryFunctionIdStr" | "entry_function_id_str" => Ok(GeneratedField::EntryFunctionIdStr), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = EntryFunctionPayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.EntryFunctionPayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut function__ = None; + let mut type_arguments__ = None; + let mut arguments__ = None; + let mut entry_function_id_str__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Function => { + if function__.is_some() { + return Err(serde::de::Error::duplicate_field("function")); + } + function__ = map.next_value()?; + } + GeneratedField::TypeArguments => { + if type_arguments__.is_some() { + return Err(serde::de::Error::duplicate_field("typeArguments")); + } + type_arguments__ = Some(map.next_value()?); + } + GeneratedField::Arguments => { + if arguments__.is_some() { + return Err(serde::de::Error::duplicate_field("arguments")); + } + arguments__ = Some(map.next_value()?); + } + GeneratedField::EntryFunctionIdStr => { + if entry_function_id_str__.is_some() { + return Err(serde::de::Error::duplicate_field("entryFunctionIdStr")); + } + entry_function_id_str__ = Some(map.next_value()?); + } + } + } + Ok(EntryFunctionPayload { + function: function__, + type_arguments: type_arguments__.unwrap_or_default(), + arguments: arguments__.unwrap_or_default(), + entry_function_id_str: entry_function_id_str__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.EntryFunctionPayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Event { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.key.is_some() { + len += 1; + } + if self.sequence_number != 0 { + len += 1; + } + if self.r#type.is_some() { + len += 1; + } + if !self.type_str.is_empty() { + len += 1; + } + if !self.data.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.Event", len)?; + if let Some(v) = self.key.as_ref() { + struct_ser.serialize_field("key", v)?; + } + if self.sequence_number != 0 { + struct_ser.serialize_field("sequenceNumber", ToString::to_string(&self.sequence_number).as_str())?; + } + if let Some(v) = self.r#type.as_ref() { + struct_ser.serialize_field("type", v)?; + } + if !self.type_str.is_empty() { + struct_ser.serialize_field("typeStr", &self.type_str)?; + } + if !self.data.is_empty() { + struct_ser.serialize_field("data", &self.data)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Event { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "key", + "sequence_number", + "sequenceNumber", + "type", + "type_str", + "typeStr", + "data", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Key, + SequenceNumber, + Type, + TypeStr, + Data, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "key" => Ok(GeneratedField::Key), + "sequenceNumber" | "sequence_number" => Ok(GeneratedField::SequenceNumber), + "type" => Ok(GeneratedField::Type), + "typeStr" | "type_str" => Ok(GeneratedField::TypeStr), + "data" => Ok(GeneratedField::Data), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Event; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.Event") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut key__ = None; + let mut sequence_number__ = None; + let mut r#type__ = None; + let mut type_str__ = None; + let mut data__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); + } + key__ = map.next_value()?; + } + GeneratedField::SequenceNumber => { + if sequence_number__.is_some() { + return Err(serde::de::Error::duplicate_field("sequenceNumber")); + } + sequence_number__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = map.next_value()?; + } + GeneratedField::TypeStr => { + if type_str__.is_some() { + return Err(serde::de::Error::duplicate_field("typeStr")); + } + type_str__ = Some(map.next_value()?); + } + GeneratedField::Data => { + if data__.is_some() { + return Err(serde::de::Error::duplicate_field("data")); + } + data__ = Some(map.next_value()?); + } + } + } + Ok(Event { + key: key__, + sequence_number: sequence_number__.unwrap_or_default(), + r#type: r#type__, + type_str: type_str__.unwrap_or_default(), + data: data__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.Event", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for EventKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.creation_number != 0 { + len += 1; + } + if !self.account_address.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.EventKey", len)?; + if self.creation_number != 0 { + struct_ser.serialize_field("creationNumber", ToString::to_string(&self.creation_number).as_str())?; + } + if !self.account_address.is_empty() { + struct_ser.serialize_field("accountAddress", &self.account_address)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for EventKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "creation_number", + "creationNumber", + "account_address", + "accountAddress", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + CreationNumber, + AccountAddress, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "creationNumber" | "creation_number" => Ok(GeneratedField::CreationNumber), + "accountAddress" | "account_address" => Ok(GeneratedField::AccountAddress), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = EventKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.EventKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut creation_number__ = None; + let mut account_address__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::CreationNumber => { + if creation_number__.is_some() { + return Err(serde::de::Error::duplicate_field("creationNumber")); + } + creation_number__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::AccountAddress => { + if account_address__.is_some() { + return Err(serde::de::Error::duplicate_field("accountAddress")); + } + account_address__ = Some(map.next_value()?); + } + } + } + Ok(EventKey { + creation_number: creation_number__.unwrap_or_default(), + account_address: account_address__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.EventKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FeePayerSignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.sender.is_some() { + len += 1; + } + if !self.secondary_signer_addresses.is_empty() { + len += 1; + } + if !self.secondary_signers.is_empty() { + len += 1; + } + if !self.fee_payer_address.is_empty() { + len += 1; + } + if self.fee_payer_signer.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.FeePayerSignature", len)?; + if let Some(v) = self.sender.as_ref() { + struct_ser.serialize_field("sender", v)?; + } + if !self.secondary_signer_addresses.is_empty() { + struct_ser.serialize_field("secondarySignerAddresses", &self.secondary_signer_addresses)?; + } + if !self.secondary_signers.is_empty() { + struct_ser.serialize_field("secondarySigners", &self.secondary_signers)?; + } + if !self.fee_payer_address.is_empty() { + struct_ser.serialize_field("feePayerAddress", &self.fee_payer_address)?; + } + if let Some(v) = self.fee_payer_signer.as_ref() { + struct_ser.serialize_field("feePayerSigner", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FeePayerSignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "sender", + "secondary_signer_addresses", + "secondarySignerAddresses", + "secondary_signers", + "secondarySigners", + "fee_payer_address", + "feePayerAddress", + "fee_payer_signer", + "feePayerSigner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Sender, + SecondarySignerAddresses, + SecondarySigners, + FeePayerAddress, + FeePayerSigner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "sender" => Ok(GeneratedField::Sender), + "secondarySignerAddresses" | "secondary_signer_addresses" => Ok(GeneratedField::SecondarySignerAddresses), + "secondarySigners" | "secondary_signers" => Ok(GeneratedField::SecondarySigners), + "feePayerAddress" | "fee_payer_address" => Ok(GeneratedField::FeePayerAddress), + "feePayerSigner" | "fee_payer_signer" => Ok(GeneratedField::FeePayerSigner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FeePayerSignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.FeePayerSignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut sender__ = None; + let mut secondary_signer_addresses__ = None; + let mut secondary_signers__ = None; + let mut fee_payer_address__ = None; + let mut fee_payer_signer__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Sender => { + if sender__.is_some() { + return Err(serde::de::Error::duplicate_field("sender")); + } + sender__ = map.next_value()?; + } + GeneratedField::SecondarySignerAddresses => { + if secondary_signer_addresses__.is_some() { + return Err(serde::de::Error::duplicate_field("secondarySignerAddresses")); + } + secondary_signer_addresses__ = Some(map.next_value()?); + } + GeneratedField::SecondarySigners => { + if secondary_signers__.is_some() { + return Err(serde::de::Error::duplicate_field("secondarySigners")); + } + secondary_signers__ = Some(map.next_value()?); + } + GeneratedField::FeePayerAddress => { + if fee_payer_address__.is_some() { + return Err(serde::de::Error::duplicate_field("feePayerAddress")); + } + fee_payer_address__ = Some(map.next_value()?); + } + GeneratedField::FeePayerSigner => { + if fee_payer_signer__.is_some() { + return Err(serde::de::Error::duplicate_field("feePayerSigner")); + } + fee_payer_signer__ = map.next_value()?; + } + } + } + Ok(FeePayerSignature { + sender: sender__, + secondary_signer_addresses: secondary_signer_addresses__.unwrap_or_default(), + secondary_signers: secondary_signers__.unwrap_or_default(), + fee_payer_address: fee_payer_address__.unwrap_or_default(), + fee_payer_signer: fee_payer_signer__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.FeePayerSignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GenesisTransaction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.payload.is_some() { + len += 1; + } + if !self.events.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.GenesisTransaction", len)?; + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + if !self.events.is_empty() { + struct_ser.serialize_field("events", &self.events)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GenesisTransaction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "payload", + "events", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Payload, + Events, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "payload" => Ok(GeneratedField::Payload), + "events" => Ok(GeneratedField::Events), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GenesisTransaction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.GenesisTransaction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut payload__ = None; + let mut events__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map.next_value()?; + } + GeneratedField::Events => { + if events__.is_some() { + return Err(serde::de::Error::duplicate_field("events")); + } + events__ = Some(map.next_value()?); + } + } + } + Ok(GenesisTransaction { + payload: payload__, + events: events__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.GenesisTransaction", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for IndexedSignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.index != 0 { + len += 1; + } + if self.signature.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.IndexedSignature", len)?; + if self.index != 0 { + struct_ser.serialize_field("index", &self.index)?; + } + if let Some(v) = self.signature.as_ref() { + struct_ser.serialize_field("signature", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for IndexedSignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "index", + "signature", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Index, + Signature, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "index" => Ok(GeneratedField::Index), + "signature" => Ok(GeneratedField::Signature), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = IndexedSignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.IndexedSignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut index__ = None; + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Index => { + if index__.is_some() { + return Err(serde::de::Error::duplicate_field("index")); + } + index__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Signature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("signature")); + } + signature__ = map.next_value()?; + } + } + } + Ok(IndexedSignature { + index: index__.unwrap_or_default(), + signature: signature__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.IndexedSignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ModuleBundlePayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.modules.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.ModuleBundlePayload", len)?; + if !self.modules.is_empty() { + struct_ser.serialize_field("modules", &self.modules)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ModuleBundlePayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "modules", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Modules, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "modules" => Ok(GeneratedField::Modules), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ModuleBundlePayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.ModuleBundlePayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut modules__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Modules => { + if modules__.is_some() { + return Err(serde::de::Error::duplicate_field("modules")); + } + modules__ = Some(map.next_value()?); + } + } + } + Ok(ModuleBundlePayload { + modules: modules__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.ModuleBundlePayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveAbility { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "MOVE_ABILITY_UNSPECIFIED", + Self::Copy => "MOVE_ABILITY_COPY", + Self::Drop => "MOVE_ABILITY_DROP", + Self::Store => "MOVE_ABILITY_STORE", + Self::Key => "MOVE_ABILITY_KEY", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for MoveAbility { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "MOVE_ABILITY_UNSPECIFIED", + "MOVE_ABILITY_COPY", + "MOVE_ABILITY_DROP", + "MOVE_ABILITY_STORE", + "MOVE_ABILITY_KEY", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveAbility; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(MoveAbility::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(MoveAbility::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "MOVE_ABILITY_UNSPECIFIED" => Ok(MoveAbility::Unspecified), + "MOVE_ABILITY_COPY" => Ok(MoveAbility::Copy), + "MOVE_ABILITY_DROP" => Ok(MoveAbility::Drop), + "MOVE_ABILITY_STORE" => Ok(MoveAbility::Store), + "MOVE_ABILITY_KEY" => Ok(MoveAbility::Key), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for MoveFunction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + if self.visibility != 0 { + len += 1; + } + if self.is_entry { + len += 1; + } + if !self.generic_type_params.is_empty() { + len += 1; + } + if !self.params.is_empty() { + len += 1; + } + if !self.r#return.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveFunction", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if self.visibility != 0 { + let v = move_function::Visibility::from_i32(self.visibility) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.visibility)))?; + struct_ser.serialize_field("visibility", &v)?; + } + if self.is_entry { + struct_ser.serialize_field("isEntry", &self.is_entry)?; + } + if !self.generic_type_params.is_empty() { + struct_ser.serialize_field("genericTypeParams", &self.generic_type_params)?; + } + if !self.params.is_empty() { + struct_ser.serialize_field("params", &self.params)?; + } + if !self.r#return.is_empty() { + struct_ser.serialize_field("return", &self.r#return)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveFunction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + "visibility", + "is_entry", + "isEntry", + "generic_type_params", + "genericTypeParams", + "params", + "return", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + Visibility, + IsEntry, + GenericTypeParams, + Params, + Return, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + "visibility" => Ok(GeneratedField::Visibility), + "isEntry" | "is_entry" => Ok(GeneratedField::IsEntry), + "genericTypeParams" | "generic_type_params" => Ok(GeneratedField::GenericTypeParams), + "params" => Ok(GeneratedField::Params), + "return" => Ok(GeneratedField::Return), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveFunction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveFunction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + let mut visibility__ = None; + let mut is_entry__ = None; + let mut generic_type_params__ = None; + let mut params__ = None; + let mut r#return__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + GeneratedField::Visibility => { + if visibility__.is_some() { + return Err(serde::de::Error::duplicate_field("visibility")); + } + visibility__ = Some(map.next_value::()? as i32); + } + GeneratedField::IsEntry => { + if is_entry__.is_some() { + return Err(serde::de::Error::duplicate_field("isEntry")); + } + is_entry__ = Some(map.next_value()?); + } + GeneratedField::GenericTypeParams => { + if generic_type_params__.is_some() { + return Err(serde::de::Error::duplicate_field("genericTypeParams")); + } + generic_type_params__ = Some(map.next_value()?); + } + GeneratedField::Params => { + if params__.is_some() { + return Err(serde::de::Error::duplicate_field("params")); + } + params__ = Some(map.next_value()?); + } + GeneratedField::Return => { + if r#return__.is_some() { + return Err(serde::de::Error::duplicate_field("return")); + } + r#return__ = Some(map.next_value()?); + } + } + } + Ok(MoveFunction { + name: name__.unwrap_or_default(), + visibility: visibility__.unwrap_or_default(), + is_entry: is_entry__.unwrap_or_default(), + generic_type_params: generic_type_params__.unwrap_or_default(), + params: params__.unwrap_or_default(), + r#return: r#return__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveFunction", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for move_function::Visibility { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "VISIBILITY_UNSPECIFIED", + Self::Private => "VISIBILITY_PRIVATE", + Self::Public => "VISIBILITY_PUBLIC", + Self::Friend => "VISIBILITY_FRIEND", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for move_function::Visibility { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "VISIBILITY_UNSPECIFIED", + "VISIBILITY_PRIVATE", + "VISIBILITY_PUBLIC", + "VISIBILITY_FRIEND", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = move_function::Visibility; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(move_function::Visibility::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(move_function::Visibility::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "VISIBILITY_UNSPECIFIED" => Ok(move_function::Visibility::Unspecified), + "VISIBILITY_PRIVATE" => Ok(move_function::Visibility::Private), + "VISIBILITY_PUBLIC" => Ok(move_function::Visibility::Public), + "VISIBILITY_FRIEND" => Ok(move_function::Visibility::Friend), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for MoveFunctionGenericTypeParam { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.constraints.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveFunctionGenericTypeParam", len)?; + if !self.constraints.is_empty() { + let v = self.constraints.iter().cloned().map(|v| { + MoveAbility::from_i32(v) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", v))) + }).collect::, _>>()?; + struct_ser.serialize_field("constraints", &v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveFunctionGenericTypeParam { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "constraints", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Constraints, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "constraints" => Ok(GeneratedField::Constraints), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveFunctionGenericTypeParam; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveFunctionGenericTypeParam") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut constraints__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Constraints => { + if constraints__.is_some() { + return Err(serde::de::Error::duplicate_field("constraints")); + } + constraints__ = Some(map.next_value::>()?.into_iter().map(|x| x as i32).collect()); + } + } + } + Ok(MoveFunctionGenericTypeParam { + constraints: constraints__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveFunctionGenericTypeParam", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveModule { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.address.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.friends.is_empty() { + len += 1; + } + if !self.exposed_functions.is_empty() { + len += 1; + } + if !self.structs.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveModule", len)?; + if !self.address.is_empty() { + struct_ser.serialize_field("address", &self.address)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.friends.is_empty() { + struct_ser.serialize_field("friends", &self.friends)?; + } + if !self.exposed_functions.is_empty() { + struct_ser.serialize_field("exposedFunctions", &self.exposed_functions)?; + } + if !self.structs.is_empty() { + struct_ser.serialize_field("structs", &self.structs)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveModule { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "name", + "friends", + "exposed_functions", + "exposedFunctions", + "structs", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + Name, + Friends, + ExposedFunctions, + Structs, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "name" => Ok(GeneratedField::Name), + "friends" => Ok(GeneratedField::Friends), + "exposedFunctions" | "exposed_functions" => Ok(GeneratedField::ExposedFunctions), + "structs" => Ok(GeneratedField::Structs), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveModule; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveModule") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut name__ = None; + let mut friends__ = None; + let mut exposed_functions__ = None; + let mut structs__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = Some(map.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + GeneratedField::Friends => { + if friends__.is_some() { + return Err(serde::de::Error::duplicate_field("friends")); + } + friends__ = Some(map.next_value()?); + } + GeneratedField::ExposedFunctions => { + if exposed_functions__.is_some() { + return Err(serde::de::Error::duplicate_field("exposedFunctions")); + } + exposed_functions__ = Some(map.next_value()?); + } + GeneratedField::Structs => { + if structs__.is_some() { + return Err(serde::de::Error::duplicate_field("structs")); + } + structs__ = Some(map.next_value()?); + } + } + } + Ok(MoveModule { + address: address__.unwrap_or_default(), + name: name__.unwrap_or_default(), + friends: friends__.unwrap_or_default(), + exposed_functions: exposed_functions__.unwrap_or_default(), + structs: structs__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveModule", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveModuleBytecode { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.bytecode.is_empty() { + len += 1; + } + if self.abi.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveModuleBytecode", len)?; + if !self.bytecode.is_empty() { + struct_ser.serialize_field("bytecode", pbjson::private::base64::encode(&self.bytecode).as_str())?; + } + if let Some(v) = self.abi.as_ref() { + struct_ser.serialize_field("abi", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveModuleBytecode { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "bytecode", + "abi", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Bytecode, + Abi, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "bytecode" => Ok(GeneratedField::Bytecode), + "abi" => Ok(GeneratedField::Abi), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveModuleBytecode; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveModuleBytecode") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut bytecode__ = None; + let mut abi__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Bytecode => { + if bytecode__.is_some() { + return Err(serde::de::Error::duplicate_field("bytecode")); + } + bytecode__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Abi => { + if abi__.is_some() { + return Err(serde::de::Error::duplicate_field("abi")); + } + abi__ = map.next_value()?; + } + } + } + Ok(MoveModuleBytecode { + bytecode: bytecode__.unwrap_or_default(), + abi: abi__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveModuleBytecode", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveModuleId { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.address.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveModuleId", len)?; + if !self.address.is_empty() { + struct_ser.serialize_field("address", &self.address)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveModuleId { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "name", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + Name, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "name" => Ok(GeneratedField::Name), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveModuleId; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveModuleId") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut name__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = Some(map.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + } + } + Ok(MoveModuleId { + address: address__.unwrap_or_default(), + name: name__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveModuleId", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveScriptBytecode { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.bytecode.is_empty() { + len += 1; + } + if self.abi.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveScriptBytecode", len)?; + if !self.bytecode.is_empty() { + struct_ser.serialize_field("bytecode", pbjson::private::base64::encode(&self.bytecode).as_str())?; + } + if let Some(v) = self.abi.as_ref() { + struct_ser.serialize_field("abi", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveScriptBytecode { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "bytecode", + "abi", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Bytecode, + Abi, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "bytecode" => Ok(GeneratedField::Bytecode), + "abi" => Ok(GeneratedField::Abi), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveScriptBytecode; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveScriptBytecode") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut bytecode__ = None; + let mut abi__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Bytecode => { + if bytecode__.is_some() { + return Err(serde::de::Error::duplicate_field("bytecode")); + } + bytecode__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Abi => { + if abi__.is_some() { + return Err(serde::de::Error::duplicate_field("abi")); + } + abi__ = map.next_value()?; + } + } + } + Ok(MoveScriptBytecode { + bytecode: bytecode__.unwrap_or_default(), + abi: abi__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveScriptBytecode", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveStruct { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + if self.is_native { + len += 1; + } + if !self.abilities.is_empty() { + len += 1; + } + if !self.generic_type_params.is_empty() { + len += 1; + } + if !self.fields.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveStruct", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if self.is_native { + struct_ser.serialize_field("isNative", &self.is_native)?; + } + if !self.abilities.is_empty() { + let v = self.abilities.iter().cloned().map(|v| { + MoveAbility::from_i32(v) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", v))) + }).collect::, _>>()?; + struct_ser.serialize_field("abilities", &v)?; + } + if !self.generic_type_params.is_empty() { + struct_ser.serialize_field("genericTypeParams", &self.generic_type_params)?; + } + if !self.fields.is_empty() { + struct_ser.serialize_field("fields", &self.fields)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveStruct { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + "is_native", + "isNative", + "abilities", + "generic_type_params", + "genericTypeParams", + "fields", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + IsNative, + Abilities, + GenericTypeParams, + Fields, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + "isNative" | "is_native" => Ok(GeneratedField::IsNative), + "abilities" => Ok(GeneratedField::Abilities), + "genericTypeParams" | "generic_type_params" => Ok(GeneratedField::GenericTypeParams), + "fields" => Ok(GeneratedField::Fields), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveStruct; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveStruct") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + let mut is_native__ = None; + let mut abilities__ = None; + let mut generic_type_params__ = None; + let mut fields__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + GeneratedField::IsNative => { + if is_native__.is_some() { + return Err(serde::de::Error::duplicate_field("isNative")); + } + is_native__ = Some(map.next_value()?); + } + GeneratedField::Abilities => { + if abilities__.is_some() { + return Err(serde::de::Error::duplicate_field("abilities")); + } + abilities__ = Some(map.next_value::>()?.into_iter().map(|x| x as i32).collect()); + } + GeneratedField::GenericTypeParams => { + if generic_type_params__.is_some() { + return Err(serde::de::Error::duplicate_field("genericTypeParams")); + } + generic_type_params__ = Some(map.next_value()?); + } + GeneratedField::Fields => { + if fields__.is_some() { + return Err(serde::de::Error::duplicate_field("fields")); + } + fields__ = Some(map.next_value()?); + } + } + } + Ok(MoveStruct { + name: name__.unwrap_or_default(), + is_native: is_native__.unwrap_or_default(), + abilities: abilities__.unwrap_or_default(), + generic_type_params: generic_type_params__.unwrap_or_default(), + fields: fields__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveStruct", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveStructField { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.name.is_empty() { + len += 1; + } + if self.r#type.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveStructField", len)?; + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if let Some(v) = self.r#type.as_ref() { + struct_ser.serialize_field("type", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveStructField { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "name", + "type", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Name, + Type, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "name" => Ok(GeneratedField::Name), + "type" => Ok(GeneratedField::Type), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveStructField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveStructField") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut name__ = None; + let mut r#type__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = map.next_value()?; + } + } + } + Ok(MoveStructField { + name: name__.unwrap_or_default(), + r#type: r#type__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveStructField", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveStructGenericTypeParam { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.constraints.is_empty() { + len += 1; + } + if self.is_phantom { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveStructGenericTypeParam", len)?; + if !self.constraints.is_empty() { + let v = self.constraints.iter().cloned().map(|v| { + MoveAbility::from_i32(v) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", v))) + }).collect::, _>>()?; + struct_ser.serialize_field("constraints", &v)?; + } + if self.is_phantom { + struct_ser.serialize_field("isPhantom", &self.is_phantom)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveStructGenericTypeParam { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "constraints", + "is_phantom", + "isPhantom", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Constraints, + IsPhantom, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "constraints" => Ok(GeneratedField::Constraints), + "isPhantom" | "is_phantom" => Ok(GeneratedField::IsPhantom), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveStructGenericTypeParam; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveStructGenericTypeParam") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut constraints__ = None; + let mut is_phantom__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Constraints => { + if constraints__.is_some() { + return Err(serde::de::Error::duplicate_field("constraints")); + } + constraints__ = Some(map.next_value::>()?.into_iter().map(|x| x as i32).collect()); + } + GeneratedField::IsPhantom => { + if is_phantom__.is_some() { + return Err(serde::de::Error::duplicate_field("isPhantom")); + } + is_phantom__ = Some(map.next_value()?); + } + } + } + Ok(MoveStructGenericTypeParam { + constraints: constraints__.unwrap_or_default(), + is_phantom: is_phantom__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveStructGenericTypeParam", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveStructTag { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.address.is_empty() { + len += 1; + } + if !self.module.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.generic_type_params.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveStructTag", len)?; + if !self.address.is_empty() { + struct_ser.serialize_field("address", &self.address)?; + } + if !self.module.is_empty() { + struct_ser.serialize_field("module", &self.module)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.generic_type_params.is_empty() { + struct_ser.serialize_field("genericTypeParams", &self.generic_type_params)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveStructTag { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "module", + "name", + "generic_type_params", + "genericTypeParams", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + Module, + Name, + GenericTypeParams, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "module" => Ok(GeneratedField::Module), + "name" => Ok(GeneratedField::Name), + "genericTypeParams" | "generic_type_params" => Ok(GeneratedField::GenericTypeParams), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveStructTag; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveStructTag") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut module__ = None; + let mut name__ = None; + let mut generic_type_params__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = Some(map.next_value()?); + } + GeneratedField::Module => { + if module__.is_some() { + return Err(serde::de::Error::duplicate_field("module")); + } + module__ = Some(map.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + GeneratedField::GenericTypeParams => { + if generic_type_params__.is_some() { + return Err(serde::de::Error::duplicate_field("genericTypeParams")); + } + generic_type_params__ = Some(map.next_value()?); + } + } + } + Ok(MoveStructTag { + address: address__.unwrap_or_default(), + module: module__.unwrap_or_default(), + name: name__.unwrap_or_default(), + generic_type_params: generic_type_params__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveStructTag", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if self.content.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveType", len)?; + if self.r#type != 0 { + let v = MoveTypes::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if let Some(v) = self.content.as_ref() { + match v { + move_type::Content::Vector(v) => { + struct_ser.serialize_field("vector", v)?; + } + move_type::Content::Struct(v) => { + struct_ser.serialize_field("struct", v)?; + } + move_type::Content::GenericTypeParamIndex(v) => { + struct_ser.serialize_field("genericTypeParamIndex", v)?; + } + move_type::Content::Reference(v) => { + struct_ser.serialize_field("reference", v)?; + } + move_type::Content::Unparsable(v) => { + struct_ser.serialize_field("unparsable", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MoveType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "vector", + "struct", + "generic_type_param_index", + "genericTypeParamIndex", + "reference", + "unparsable", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + Vector, + Struct, + GenericTypeParamIndex, + Reference, + Unparsable, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "vector" => Ok(GeneratedField::Vector), + "struct" => Ok(GeneratedField::Struct), + "genericTypeParamIndex" | "generic_type_param_index" => Ok(GeneratedField::GenericTypeParamIndex), + "reference" => Ok(GeneratedField::Reference), + "unparsable" => Ok(GeneratedField::Unparsable), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveType") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut content__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::Vector => { + if content__.is_some() { + return Err(serde::de::Error::duplicate_field("vector")); + } + content__ = map.next_value::<::std::option::Option<_>>()?.map(move_type::Content::Vector) +; + } + GeneratedField::Struct => { + if content__.is_some() { + return Err(serde::de::Error::duplicate_field("struct")); + } + content__ = map.next_value::<::std::option::Option<_>>()?.map(move_type::Content::Struct) +; + } + GeneratedField::GenericTypeParamIndex => { + if content__.is_some() { + return Err(serde::de::Error::duplicate_field("genericTypeParamIndex")); + } + content__ = map.next_value::<::std::option::Option<::pbjson::private::NumberDeserialize<_>>>()?.map(|x| move_type::Content::GenericTypeParamIndex(x.0)); + } + GeneratedField::Reference => { + if content__.is_some() { + return Err(serde::de::Error::duplicate_field("reference")); + } + content__ = map.next_value::<::std::option::Option<_>>()?.map(move_type::Content::Reference) +; + } + GeneratedField::Unparsable => { + if content__.is_some() { + return Err(serde::de::Error::duplicate_field("unparsable")); + } + content__ = map.next_value::<::std::option::Option<_>>()?.map(move_type::Content::Unparsable); + } + } + } + Ok(MoveType { + r#type: r#type__.unwrap_or_default(), + content: content__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveType", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for move_type::ReferenceType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.mutable { + len += 1; + } + if self.to.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MoveType.ReferenceType", len)?; + if self.mutable { + struct_ser.serialize_field("mutable", &self.mutable)?; + } + if let Some(v) = self.to.as_ref() { + struct_ser.serialize_field("to", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for move_type::ReferenceType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "mutable", + "to", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Mutable, + To, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "mutable" => Ok(GeneratedField::Mutable), + "to" => Ok(GeneratedField::To), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = move_type::ReferenceType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MoveType.ReferenceType") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut mutable__ = None; + let mut to__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Mutable => { + if mutable__.is_some() { + return Err(serde::de::Error::duplicate_field("mutable")); + } + mutable__ = Some(map.next_value()?); + } + GeneratedField::To => { + if to__.is_some() { + return Err(serde::de::Error::duplicate_field("to")); + } + to__ = map.next_value()?; + } + } + } + Ok(move_type::ReferenceType { + mutable: mutable__.unwrap_or_default(), + to: to__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MoveType.ReferenceType", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MoveTypes { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "MOVE_TYPES_UNSPECIFIED", + Self::Bool => "MOVE_TYPES_BOOL", + Self::U8 => "MOVE_TYPES_U8", + Self::U16 => "MOVE_TYPES_U16", + Self::U32 => "MOVE_TYPES_U32", + Self::U64 => "MOVE_TYPES_U64", + Self::U128 => "MOVE_TYPES_U128", + Self::U256 => "MOVE_TYPES_U256", + Self::Address => "MOVE_TYPES_ADDRESS", + Self::Signer => "MOVE_TYPES_SIGNER", + Self::Vector => "MOVE_TYPES_VECTOR", + Self::Struct => "MOVE_TYPES_STRUCT", + Self::GenericTypeParam => "MOVE_TYPES_GENERIC_TYPE_PARAM", + Self::Reference => "MOVE_TYPES_REFERENCE", + Self::Unparsable => "MOVE_TYPES_UNPARSABLE", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for MoveTypes { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "MOVE_TYPES_UNSPECIFIED", + "MOVE_TYPES_BOOL", + "MOVE_TYPES_U8", + "MOVE_TYPES_U16", + "MOVE_TYPES_U32", + "MOVE_TYPES_U64", + "MOVE_TYPES_U128", + "MOVE_TYPES_U256", + "MOVE_TYPES_ADDRESS", + "MOVE_TYPES_SIGNER", + "MOVE_TYPES_VECTOR", + "MOVE_TYPES_STRUCT", + "MOVE_TYPES_GENERIC_TYPE_PARAM", + "MOVE_TYPES_REFERENCE", + "MOVE_TYPES_UNPARSABLE", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MoveTypes; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(MoveTypes::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(MoveTypes::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "MOVE_TYPES_UNSPECIFIED" => Ok(MoveTypes::Unspecified), + "MOVE_TYPES_BOOL" => Ok(MoveTypes::Bool), + "MOVE_TYPES_U8" => Ok(MoveTypes::U8), + "MOVE_TYPES_U16" => Ok(MoveTypes::U16), + "MOVE_TYPES_U32" => Ok(MoveTypes::U32), + "MOVE_TYPES_U64" => Ok(MoveTypes::U64), + "MOVE_TYPES_U128" => Ok(MoveTypes::U128), + "MOVE_TYPES_U256" => Ok(MoveTypes::U256), + "MOVE_TYPES_ADDRESS" => Ok(MoveTypes::Address), + "MOVE_TYPES_SIGNER" => Ok(MoveTypes::Signer), + "MOVE_TYPES_VECTOR" => Ok(MoveTypes::Vector), + "MOVE_TYPES_STRUCT" => Ok(MoveTypes::Struct), + "MOVE_TYPES_GENERIC_TYPE_PARAM" => Ok(MoveTypes::GenericTypeParam), + "MOVE_TYPES_REFERENCE" => Ok(MoveTypes::Reference), + "MOVE_TYPES_UNPARSABLE" => Ok(MoveTypes::Unparsable), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for MultiAgentSignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.sender.is_some() { + len += 1; + } + if !self.secondary_signer_addresses.is_empty() { + len += 1; + } + if !self.secondary_signers.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MultiAgentSignature", len)?; + if let Some(v) = self.sender.as_ref() { + struct_ser.serialize_field("sender", v)?; + } + if !self.secondary_signer_addresses.is_empty() { + struct_ser.serialize_field("secondarySignerAddresses", &self.secondary_signer_addresses)?; + } + if !self.secondary_signers.is_empty() { + struct_ser.serialize_field("secondarySigners", &self.secondary_signers)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MultiAgentSignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "sender", + "secondary_signer_addresses", + "secondarySignerAddresses", + "secondary_signers", + "secondarySigners", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Sender, + SecondarySignerAddresses, + SecondarySigners, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "sender" => Ok(GeneratedField::Sender), + "secondarySignerAddresses" | "secondary_signer_addresses" => Ok(GeneratedField::SecondarySignerAddresses), + "secondarySigners" | "secondary_signers" => Ok(GeneratedField::SecondarySigners), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MultiAgentSignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MultiAgentSignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut sender__ = None; + let mut secondary_signer_addresses__ = None; + let mut secondary_signers__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Sender => { + if sender__.is_some() { + return Err(serde::de::Error::duplicate_field("sender")); + } + sender__ = map.next_value()?; + } + GeneratedField::SecondarySignerAddresses => { + if secondary_signer_addresses__.is_some() { + return Err(serde::de::Error::duplicate_field("secondarySignerAddresses")); + } + secondary_signer_addresses__ = Some(map.next_value()?); + } + GeneratedField::SecondarySigners => { + if secondary_signers__.is_some() { + return Err(serde::de::Error::duplicate_field("secondarySigners")); + } + secondary_signers__ = Some(map.next_value()?); + } + } + } + Ok(MultiAgentSignature { + sender: sender__, + secondary_signer_addresses: secondary_signer_addresses__.unwrap_or_default(), + secondary_signers: secondary_signers__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MultiAgentSignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MultiEd25519Signature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.public_keys.is_empty() { + len += 1; + } + if !self.signatures.is_empty() { + len += 1; + } + if self.threshold != 0 { + len += 1; + } + if !self.public_key_indices.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MultiEd25519Signature", len)?; + if !self.public_keys.is_empty() { + struct_ser.serialize_field("publicKeys", &self.public_keys.iter().map(pbjson::private::base64::encode).collect::>())?; + } + if !self.signatures.is_empty() { + struct_ser.serialize_field("signatures", &self.signatures.iter().map(pbjson::private::base64::encode).collect::>())?; + } + if self.threshold != 0 { + struct_ser.serialize_field("threshold", &self.threshold)?; + } + if !self.public_key_indices.is_empty() { + struct_ser.serialize_field("publicKeyIndices", &self.public_key_indices)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MultiEd25519Signature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "public_keys", + "publicKeys", + "signatures", + "threshold", + "public_key_indices", + "publicKeyIndices", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PublicKeys, + Signatures, + Threshold, + PublicKeyIndices, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "publicKeys" | "public_keys" => Ok(GeneratedField::PublicKeys), + "signatures" => Ok(GeneratedField::Signatures), + "threshold" => Ok(GeneratedField::Threshold), + "publicKeyIndices" | "public_key_indices" => Ok(GeneratedField::PublicKeyIndices), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MultiEd25519Signature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MultiEd25519Signature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut public_keys__ = None; + let mut signatures__ = None; + let mut threshold__ = None; + let mut public_key_indices__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::PublicKeys => { + if public_keys__.is_some() { + return Err(serde::de::Error::duplicate_field("publicKeys")); + } + public_keys__ = + Some(map.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Signatures => { + if signatures__.is_some() { + return Err(serde::de::Error::duplicate_field("signatures")); + } + signatures__ = + Some(map.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + GeneratedField::Threshold => { + if threshold__.is_some() { + return Err(serde::de::Error::duplicate_field("threshold")); + } + threshold__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::PublicKeyIndices => { + if public_key_indices__.is_some() { + return Err(serde::de::Error::duplicate_field("publicKeyIndices")); + } + public_key_indices__ = + Some(map.next_value::>>()? + .into_iter().map(|x| x.0).collect()) + ; + } + } + } + Ok(MultiEd25519Signature { + public_keys: public_keys__.unwrap_or_default(), + signatures: signatures__.unwrap_or_default(), + threshold: threshold__.unwrap_or_default(), + public_key_indices: public_key_indices__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MultiEd25519Signature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MultiKeySignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.public_keys.is_empty() { + len += 1; + } + if !self.signatures.is_empty() { + len += 1; + } + if self.signatures_required != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MultiKeySignature", len)?; + if !self.public_keys.is_empty() { + struct_ser.serialize_field("publicKeys", &self.public_keys)?; + } + if !self.signatures.is_empty() { + struct_ser.serialize_field("signatures", &self.signatures)?; + } + if self.signatures_required != 0 { + struct_ser.serialize_field("signaturesRequired", &self.signatures_required)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MultiKeySignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "public_keys", + "publicKeys", + "signatures", + "signatures_required", + "signaturesRequired", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PublicKeys, + Signatures, + SignaturesRequired, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "publicKeys" | "public_keys" => Ok(GeneratedField::PublicKeys), + "signatures" => Ok(GeneratedField::Signatures), + "signaturesRequired" | "signatures_required" => Ok(GeneratedField::SignaturesRequired), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MultiKeySignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MultiKeySignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut public_keys__ = None; + let mut signatures__ = None; + let mut signatures_required__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::PublicKeys => { + if public_keys__.is_some() { + return Err(serde::de::Error::duplicate_field("publicKeys")); + } + public_keys__ = Some(map.next_value()?); + } + GeneratedField::Signatures => { + if signatures__.is_some() { + return Err(serde::de::Error::duplicate_field("signatures")); + } + signatures__ = Some(map.next_value()?); + } + GeneratedField::SignaturesRequired => { + if signatures_required__.is_some() { + return Err(serde::de::Error::duplicate_field("signaturesRequired")); + } + signatures_required__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(MultiKeySignature { + public_keys: public_keys__.unwrap_or_default(), + signatures: signatures__.unwrap_or_default(), + signatures_required: signatures_required__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MultiKeySignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MultisigPayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.multisig_address.is_empty() { + len += 1; + } + if self.transaction_payload.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MultisigPayload", len)?; + if !self.multisig_address.is_empty() { + struct_ser.serialize_field("multisigAddress", &self.multisig_address)?; + } + if let Some(v) = self.transaction_payload.as_ref() { + struct_ser.serialize_field("transactionPayload", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MultisigPayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "multisig_address", + "multisigAddress", + "transaction_payload", + "transactionPayload", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + MultisigAddress, + TransactionPayload, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "multisigAddress" | "multisig_address" => Ok(GeneratedField::MultisigAddress), + "transactionPayload" | "transaction_payload" => Ok(GeneratedField::TransactionPayload), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MultisigPayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MultisigPayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut multisig_address__ = None; + let mut transaction_payload__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::MultisigAddress => { + if multisig_address__.is_some() { + return Err(serde::de::Error::duplicate_field("multisigAddress")); + } + multisig_address__ = Some(map.next_value()?); + } + GeneratedField::TransactionPayload => { + if transaction_payload__.is_some() { + return Err(serde::de::Error::duplicate_field("transactionPayload")); + } + transaction_payload__ = map.next_value()?; + } + } + } + Ok(MultisigPayload { + multisig_address: multisig_address__.unwrap_or_default(), + transaction_payload: transaction_payload__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MultisigPayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MultisigTransactionPayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if self.payload.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.MultisigTransactionPayload", len)?; + if self.r#type != 0 { + let v = multisig_transaction_payload::Type::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if let Some(v) = self.payload.as_ref() { + match v { + multisig_transaction_payload::Payload::EntryFunctionPayload(v) => { + struct_ser.serialize_field("entryFunctionPayload", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MultisigTransactionPayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "entry_function_payload", + "entryFunctionPayload", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + EntryFunctionPayload, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "entryFunctionPayload" | "entry_function_payload" => Ok(GeneratedField::EntryFunctionPayload), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MultisigTransactionPayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.MultisigTransactionPayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut payload__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::EntryFunctionPayload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("entryFunctionPayload")); + } + payload__ = map.next_value::<::std::option::Option<_>>()?.map(multisig_transaction_payload::Payload::EntryFunctionPayload) +; + } + } + } + Ok(MultisigTransactionPayload { + r#type: r#type__.unwrap_or_default(), + payload: payload__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.MultisigTransactionPayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for multisig_transaction_payload::Type { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TYPE_UNSPECIFIED", + Self::EntryFunctionPayload => "TYPE_ENTRY_FUNCTION_PAYLOAD", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for multisig_transaction_payload::Type { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TYPE_UNSPECIFIED", + "TYPE_ENTRY_FUNCTION_PAYLOAD", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = multisig_transaction_payload::Type; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(multisig_transaction_payload::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(multisig_transaction_payload::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TYPE_UNSPECIFIED" => Ok(multisig_transaction_payload::Type::Unspecified), + "TYPE_ENTRY_FUNCTION_PAYLOAD" => Ok(multisig_transaction_payload::Type::EntryFunctionPayload), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for ScriptPayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.code.is_some() { + len += 1; + } + if !self.type_arguments.is_empty() { + len += 1; + } + if !self.arguments.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.ScriptPayload", len)?; + if let Some(v) = self.code.as_ref() { + struct_ser.serialize_field("code", v)?; + } + if !self.type_arguments.is_empty() { + struct_ser.serialize_field("typeArguments", &self.type_arguments)?; + } + if !self.arguments.is_empty() { + struct_ser.serialize_field("arguments", &self.arguments)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ScriptPayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "code", + "type_arguments", + "typeArguments", + "arguments", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Code, + TypeArguments, + Arguments, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "code" => Ok(GeneratedField::Code), + "typeArguments" | "type_arguments" => Ok(GeneratedField::TypeArguments), + "arguments" => Ok(GeneratedField::Arguments), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ScriptPayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.ScriptPayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut code__ = None; + let mut type_arguments__ = None; + let mut arguments__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Code => { + if code__.is_some() { + return Err(serde::de::Error::duplicate_field("code")); + } + code__ = map.next_value()?; + } + GeneratedField::TypeArguments => { + if type_arguments__.is_some() { + return Err(serde::de::Error::duplicate_field("typeArguments")); + } + type_arguments__ = Some(map.next_value()?); + } + GeneratedField::Arguments => { + if arguments__.is_some() { + return Err(serde::de::Error::duplicate_field("arguments")); + } + arguments__ = Some(map.next_value()?); + } + } + } + Ok(ScriptPayload { + code: code__, + type_arguments: type_arguments__.unwrap_or_default(), + arguments: arguments__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.ScriptPayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ScriptWriteSet { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.execute_as.is_empty() { + len += 1; + } + if self.script.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.ScriptWriteSet", len)?; + if !self.execute_as.is_empty() { + struct_ser.serialize_field("executeAs", &self.execute_as)?; + } + if let Some(v) = self.script.as_ref() { + struct_ser.serialize_field("script", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ScriptWriteSet { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "execute_as", + "executeAs", + "script", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + ExecuteAs, + Script, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "executeAs" | "execute_as" => Ok(GeneratedField::ExecuteAs), + "script" => Ok(GeneratedField::Script), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ScriptWriteSet; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.ScriptWriteSet") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut execute_as__ = None; + let mut script__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::ExecuteAs => { + if execute_as__.is_some() { + return Err(serde::de::Error::duplicate_field("executeAs")); + } + execute_as__ = Some(map.next_value()?); + } + GeneratedField::Script => { + if script__.is_some() { + return Err(serde::de::Error::duplicate_field("script")); + } + script__ = map.next_value()?; + } + } + } + Ok(ScriptWriteSet { + execute_as: execute_as__.unwrap_or_default(), + script: script__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.ScriptWriteSet", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Signature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if self.signature.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.Signature", len)?; + if self.r#type != 0 { + let v = signature::Type::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if let Some(v) = self.signature.as_ref() { + match v { + signature::Signature::Ed25519(v) => { + struct_ser.serialize_field("ed25519", v)?; + } + signature::Signature::MultiEd25519(v) => { + struct_ser.serialize_field("multiEd25519", v)?; + } + signature::Signature::MultiAgent(v) => { + struct_ser.serialize_field("multiAgent", v)?; + } + signature::Signature::FeePayer(v) => { + struct_ser.serialize_field("feePayer", v)?; + } + signature::Signature::SingleSender(v) => { + struct_ser.serialize_field("singleSender", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Signature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "ed25519", + "multi_ed25519", + "multiEd25519", + "multi_agent", + "multiAgent", + "fee_payer", + "feePayer", + "single_sender", + "singleSender", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + Ed25519, + MultiEd25519, + MultiAgent, + FeePayer, + SingleSender, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "ed25519" => Ok(GeneratedField::Ed25519), + "multiEd25519" | "multi_ed25519" => Ok(GeneratedField::MultiEd25519), + "multiAgent" | "multi_agent" => Ok(GeneratedField::MultiAgent), + "feePayer" | "fee_payer" => Ok(GeneratedField::FeePayer), + "singleSender" | "single_sender" => Ok(GeneratedField::SingleSender), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Signature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.Signature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::Ed25519 => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("ed25519")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(signature::Signature::Ed25519) +; + } + GeneratedField::MultiEd25519 => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("multiEd25519")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(signature::Signature::MultiEd25519) +; + } + GeneratedField::MultiAgent => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("multiAgent")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(signature::Signature::MultiAgent) +; + } + GeneratedField::FeePayer => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("feePayer")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(signature::Signature::FeePayer) +; + } + GeneratedField::SingleSender => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("singleSender")); + } + signature__ = map.next_value::<::std::option::Option<_>>()?.map(signature::Signature::SingleSender) +; + } + } + } + Ok(Signature { + r#type: r#type__.unwrap_or_default(), + signature: signature__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.Signature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for signature::Type { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TYPE_UNSPECIFIED", + Self::Ed25519 => "TYPE_ED25519", + Self::MultiEd25519 => "TYPE_MULTI_ED25519", + Self::MultiAgent => "TYPE_MULTI_AGENT", + Self::FeePayer => "TYPE_FEE_PAYER", + Self::SingleSender => "TYPE_SINGLE_SENDER", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for signature::Type { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TYPE_UNSPECIFIED", + "TYPE_ED25519", + "TYPE_MULTI_ED25519", + "TYPE_MULTI_AGENT", + "TYPE_FEE_PAYER", + "TYPE_SINGLE_SENDER", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = signature::Type; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(signature::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(signature::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TYPE_UNSPECIFIED" => Ok(signature::Type::Unspecified), + "TYPE_ED25519" => Ok(signature::Type::Ed25519), + "TYPE_MULTI_ED25519" => Ok(signature::Type::MultiEd25519), + "TYPE_MULTI_AGENT" => Ok(signature::Type::MultiAgent), + "TYPE_FEE_PAYER" => Ok(signature::Type::FeePayer), + "TYPE_SINGLE_SENDER" => Ok(signature::Type::SingleSender), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for SingleKeySignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.public_key.is_some() { + len += 1; + } + if self.signature.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.SingleKeySignature", len)?; + if let Some(v) = self.public_key.as_ref() { + struct_ser.serialize_field("publicKey", v)?; + } + if let Some(v) = self.signature.as_ref() { + struct_ser.serialize_field("signature", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SingleKeySignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "public_key", + "publicKey", + "signature", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + PublicKey, + Signature, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "publicKey" | "public_key" => Ok(GeneratedField::PublicKey), + "signature" => Ok(GeneratedField::Signature), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SingleKeySignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.SingleKeySignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut public_key__ = None; + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::PublicKey => { + if public_key__.is_some() { + return Err(serde::de::Error::duplicate_field("publicKey")); + } + public_key__ = map.next_value()?; + } + GeneratedField::Signature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("signature")); + } + signature__ = map.next_value()?; + } + } + } + Ok(SingleKeySignature { + public_key: public_key__, + signature: signature__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.SingleKeySignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SingleSender { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.sender.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.SingleSender", len)?; + if let Some(v) = self.sender.as_ref() { + struct_ser.serialize_field("sender", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SingleSender { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "sender", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Sender, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "sender" => Ok(GeneratedField::Sender), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SingleSender; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.SingleSender") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut sender__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Sender => { + if sender__.is_some() { + return Err(serde::de::Error::duplicate_field("sender")); + } + sender__ = map.next_value()?; + } + } + } + Ok(SingleSender { + sender: sender__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.SingleSender", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for StateCheckpointTransaction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let len = 0; + let struct_ser = serializer.serialize_struct("aptos.transaction.v1.StateCheckpointTransaction", len)?; + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for StateCheckpointTransaction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + Err(serde::de::Error::unknown_field(value, FIELDS)) + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = StateCheckpointTransaction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.StateCheckpointTransaction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + while map.next_key::()?.is_some() { + let _ = map.next_value::()?; + } + Ok(StateCheckpointTransaction { + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.StateCheckpointTransaction", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Transaction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.timestamp.is_some() { + len += 1; + } + if self.version != 0 { + len += 1; + } + if self.info.is_some() { + len += 1; + } + if self.epoch != 0 { + len += 1; + } + if self.block_height != 0 { + len += 1; + } + if self.r#type != 0 { + len += 1; + } + if self.txn_data.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.Transaction", len)?; + if let Some(v) = self.timestamp.as_ref() { + struct_ser.serialize_field("timestamp", v)?; + } + if self.version != 0 { + struct_ser.serialize_field("version", ToString::to_string(&self.version).as_str())?; + } + if let Some(v) = self.info.as_ref() { + struct_ser.serialize_field("info", v)?; + } + if self.epoch != 0 { + struct_ser.serialize_field("epoch", ToString::to_string(&self.epoch).as_str())?; + } + if self.block_height != 0 { + struct_ser.serialize_field("blockHeight", ToString::to_string(&self.block_height).as_str())?; + } + if self.r#type != 0 { + let v = transaction::TransactionType::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if let Some(v) = self.txn_data.as_ref() { + match v { + transaction::TxnData::BlockMetadata(v) => { + struct_ser.serialize_field("blockMetadata", v)?; + } + transaction::TxnData::Genesis(v) => { + struct_ser.serialize_field("genesis", v)?; + } + transaction::TxnData::StateCheckpoint(v) => { + struct_ser.serialize_field("stateCheckpoint", v)?; + } + transaction::TxnData::User(v) => { + struct_ser.serialize_field("user", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Transaction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "timestamp", + "version", + "info", + "epoch", + "block_height", + "blockHeight", + "type", + "block_metadata", + "blockMetadata", + "genesis", + "state_checkpoint", + "stateCheckpoint", + "user", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Timestamp, + Version, + Info, + Epoch, + BlockHeight, + Type, + BlockMetadata, + Genesis, + StateCheckpoint, + User, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "timestamp" => Ok(GeneratedField::Timestamp), + "version" => Ok(GeneratedField::Version), + "info" => Ok(GeneratedField::Info), + "epoch" => Ok(GeneratedField::Epoch), + "blockHeight" | "block_height" => Ok(GeneratedField::BlockHeight), + "type" => Ok(GeneratedField::Type), + "blockMetadata" | "block_metadata" => Ok(GeneratedField::BlockMetadata), + "genesis" => Ok(GeneratedField::Genesis), + "stateCheckpoint" | "state_checkpoint" => Ok(GeneratedField::StateCheckpoint), + "user" => Ok(GeneratedField::User), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Transaction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.Transaction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut timestamp__ = None; + let mut version__ = None; + let mut info__ = None; + let mut epoch__ = None; + let mut block_height__ = None; + let mut r#type__ = None; + let mut txn_data__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Timestamp => { + if timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); + } + timestamp__ = map.next_value()?; + } + GeneratedField::Version => { + if version__.is_some() { + return Err(serde::de::Error::duplicate_field("version")); + } + version__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Info => { + if info__.is_some() { + return Err(serde::de::Error::duplicate_field("info")); + } + info__ = map.next_value()?; + } + GeneratedField::Epoch => { + if epoch__.is_some() { + return Err(serde::de::Error::duplicate_field("epoch")); + } + epoch__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::BlockHeight => { + if block_height__.is_some() { + return Err(serde::de::Error::duplicate_field("blockHeight")); + } + block_height__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::BlockMetadata => { + if txn_data__.is_some() { + return Err(serde::de::Error::duplicate_field("blockMetadata")); + } + txn_data__ = map.next_value::<::std::option::Option<_>>()?.map(transaction::TxnData::BlockMetadata) +; + } + GeneratedField::Genesis => { + if txn_data__.is_some() { + return Err(serde::de::Error::duplicate_field("genesis")); + } + txn_data__ = map.next_value::<::std::option::Option<_>>()?.map(transaction::TxnData::Genesis) +; + } + GeneratedField::StateCheckpoint => { + if txn_data__.is_some() { + return Err(serde::de::Error::duplicate_field("stateCheckpoint")); + } + txn_data__ = map.next_value::<::std::option::Option<_>>()?.map(transaction::TxnData::StateCheckpoint) +; + } + GeneratedField::User => { + if txn_data__.is_some() { + return Err(serde::de::Error::duplicate_field("user")); + } + txn_data__ = map.next_value::<::std::option::Option<_>>()?.map(transaction::TxnData::User) +; + } + } + } + Ok(Transaction { + timestamp: timestamp__, + version: version__.unwrap_or_default(), + info: info__, + epoch: epoch__.unwrap_or_default(), + block_height: block_height__.unwrap_or_default(), + r#type: r#type__.unwrap_or_default(), + txn_data: txn_data__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.Transaction", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for transaction::TransactionType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TRANSACTION_TYPE_UNSPECIFIED", + Self::Genesis => "TRANSACTION_TYPE_GENESIS", + Self::BlockMetadata => "TRANSACTION_TYPE_BLOCK_METADATA", + Self::StateCheckpoint => "TRANSACTION_TYPE_STATE_CHECKPOINT", + Self::User => "TRANSACTION_TYPE_USER", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for transaction::TransactionType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TRANSACTION_TYPE_UNSPECIFIED", + "TRANSACTION_TYPE_GENESIS", + "TRANSACTION_TYPE_BLOCK_METADATA", + "TRANSACTION_TYPE_STATE_CHECKPOINT", + "TRANSACTION_TYPE_USER", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = transaction::TransactionType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(transaction::TransactionType::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(transaction::TransactionType::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TRANSACTION_TYPE_UNSPECIFIED" => Ok(transaction::TransactionType::Unspecified), + "TRANSACTION_TYPE_GENESIS" => Ok(transaction::TransactionType::Genesis), + "TRANSACTION_TYPE_BLOCK_METADATA" => Ok(transaction::TransactionType::BlockMetadata), + "TRANSACTION_TYPE_STATE_CHECKPOINT" => Ok(transaction::TransactionType::StateCheckpoint), + "TRANSACTION_TYPE_USER" => Ok(transaction::TransactionType::User), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for TransactionInfo { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.hash.is_empty() { + len += 1; + } + if !self.state_change_hash.is_empty() { + len += 1; + } + if !self.event_root_hash.is_empty() { + len += 1; + } + if self.state_checkpoint_hash.is_some() { + len += 1; + } + if self.gas_used != 0 { + len += 1; + } + if self.success { + len += 1; + } + if !self.vm_status.is_empty() { + len += 1; + } + if !self.accumulator_root_hash.is_empty() { + len += 1; + } + if !self.changes.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.TransactionInfo", len)?; + if !self.hash.is_empty() { + struct_ser.serialize_field("hash", pbjson::private::base64::encode(&self.hash).as_str())?; + } + if !self.state_change_hash.is_empty() { + struct_ser.serialize_field("stateChangeHash", pbjson::private::base64::encode(&self.state_change_hash).as_str())?; + } + if !self.event_root_hash.is_empty() { + struct_ser.serialize_field("eventRootHash", pbjson::private::base64::encode(&self.event_root_hash).as_str())?; + } + if let Some(v) = self.state_checkpoint_hash.as_ref() { + struct_ser.serialize_field("stateCheckpointHash", pbjson::private::base64::encode(&v).as_str())?; + } + if self.gas_used != 0 { + struct_ser.serialize_field("gasUsed", ToString::to_string(&self.gas_used).as_str())?; + } + if self.success { + struct_ser.serialize_field("success", &self.success)?; + } + if !self.vm_status.is_empty() { + struct_ser.serialize_field("vmStatus", &self.vm_status)?; + } + if !self.accumulator_root_hash.is_empty() { + struct_ser.serialize_field("accumulatorRootHash", pbjson::private::base64::encode(&self.accumulator_root_hash).as_str())?; + } + if !self.changes.is_empty() { + struct_ser.serialize_field("changes", &self.changes)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TransactionInfo { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "hash", + "state_change_hash", + "stateChangeHash", + "event_root_hash", + "eventRootHash", + "state_checkpoint_hash", + "stateCheckpointHash", + "gas_used", + "gasUsed", + "success", + "vm_status", + "vmStatus", + "accumulator_root_hash", + "accumulatorRootHash", + "changes", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Hash, + StateChangeHash, + EventRootHash, + StateCheckpointHash, + GasUsed, + Success, + VmStatus, + AccumulatorRootHash, + Changes, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "hash" => Ok(GeneratedField::Hash), + "stateChangeHash" | "state_change_hash" => Ok(GeneratedField::StateChangeHash), + "eventRootHash" | "event_root_hash" => Ok(GeneratedField::EventRootHash), + "stateCheckpointHash" | "state_checkpoint_hash" => Ok(GeneratedField::StateCheckpointHash), + "gasUsed" | "gas_used" => Ok(GeneratedField::GasUsed), + "success" => Ok(GeneratedField::Success), + "vmStatus" | "vm_status" => Ok(GeneratedField::VmStatus), + "accumulatorRootHash" | "accumulator_root_hash" => Ok(GeneratedField::AccumulatorRootHash), + "changes" => Ok(GeneratedField::Changes), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TransactionInfo; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.TransactionInfo") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut hash__ = None; + let mut state_change_hash__ = None; + let mut event_root_hash__ = None; + let mut state_checkpoint_hash__ = None; + let mut gas_used__ = None; + let mut success__ = None; + let mut vm_status__ = None; + let mut accumulator_root_hash__ = None; + let mut changes__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Hash => { + if hash__.is_some() { + return Err(serde::de::Error::duplicate_field("hash")); + } + hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::StateChangeHash => { + if state_change_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateChangeHash")); + } + state_change_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::EventRootHash => { + if event_root_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("eventRootHash")); + } + event_root_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::StateCheckpointHash => { + if state_checkpoint_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateCheckpointHash")); + } + state_checkpoint_hash__ = + map.next_value::<::std::option::Option<::pbjson::private::BytesDeserialize<_>>>()?.map(|x| x.0) + ; + } + GeneratedField::GasUsed => { + if gas_used__.is_some() { + return Err(serde::de::Error::duplicate_field("gasUsed")); + } + gas_used__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Success => { + if success__.is_some() { + return Err(serde::de::Error::duplicate_field("success")); + } + success__ = Some(map.next_value()?); + } + GeneratedField::VmStatus => { + if vm_status__.is_some() { + return Err(serde::de::Error::duplicate_field("vmStatus")); + } + vm_status__ = Some(map.next_value()?); + } + GeneratedField::AccumulatorRootHash => { + if accumulator_root_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("accumulatorRootHash")); + } + accumulator_root_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Changes => { + if changes__.is_some() { + return Err(serde::de::Error::duplicate_field("changes")); + } + changes__ = Some(map.next_value()?); + } + } + } + Ok(TransactionInfo { + hash: hash__.unwrap_or_default(), + state_change_hash: state_change_hash__.unwrap_or_default(), + event_root_hash: event_root_hash__.unwrap_or_default(), + state_checkpoint_hash: state_checkpoint_hash__, + gas_used: gas_used__.unwrap_or_default(), + success: success__.unwrap_or_default(), + vm_status: vm_status__.unwrap_or_default(), + accumulator_root_hash: accumulator_root_hash__.unwrap_or_default(), + changes: changes__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.TransactionInfo", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for TransactionPayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if self.payload.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.TransactionPayload", len)?; + if self.r#type != 0 { + let v = transaction_payload::Type::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if let Some(v) = self.payload.as_ref() { + match v { + transaction_payload::Payload::EntryFunctionPayload(v) => { + struct_ser.serialize_field("entryFunctionPayload", v)?; + } + transaction_payload::Payload::ScriptPayload(v) => { + struct_ser.serialize_field("scriptPayload", v)?; + } + transaction_payload::Payload::ModuleBundlePayload(v) => { + struct_ser.serialize_field("moduleBundlePayload", v)?; + } + transaction_payload::Payload::WriteSetPayload(v) => { + struct_ser.serialize_field("writeSetPayload", v)?; + } + transaction_payload::Payload::MultisigPayload(v) => { + struct_ser.serialize_field("multisigPayload", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for TransactionPayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "entry_function_payload", + "entryFunctionPayload", + "script_payload", + "scriptPayload", + "module_bundle_payload", + "moduleBundlePayload", + "write_set_payload", + "writeSetPayload", + "multisig_payload", + "multisigPayload", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + EntryFunctionPayload, + ScriptPayload, + ModuleBundlePayload, + WriteSetPayload, + MultisigPayload, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "entryFunctionPayload" | "entry_function_payload" => Ok(GeneratedField::EntryFunctionPayload), + "scriptPayload" | "script_payload" => Ok(GeneratedField::ScriptPayload), + "moduleBundlePayload" | "module_bundle_payload" => Ok(GeneratedField::ModuleBundlePayload), + "writeSetPayload" | "write_set_payload" => Ok(GeneratedField::WriteSetPayload), + "multisigPayload" | "multisig_payload" => Ok(GeneratedField::MultisigPayload), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = TransactionPayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.TransactionPayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut payload__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::EntryFunctionPayload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("entryFunctionPayload")); + } + payload__ = map.next_value::<::std::option::Option<_>>()?.map(transaction_payload::Payload::EntryFunctionPayload) +; + } + GeneratedField::ScriptPayload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("scriptPayload")); + } + payload__ = map.next_value::<::std::option::Option<_>>()?.map(transaction_payload::Payload::ScriptPayload) +; + } + GeneratedField::ModuleBundlePayload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("moduleBundlePayload")); + } + payload__ = map.next_value::<::std::option::Option<_>>()?.map(transaction_payload::Payload::ModuleBundlePayload) +; + } + GeneratedField::WriteSetPayload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("writeSetPayload")); + } + payload__ = map.next_value::<::std::option::Option<_>>()?.map(transaction_payload::Payload::WriteSetPayload) +; + } + GeneratedField::MultisigPayload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("multisigPayload")); + } + payload__ = map.next_value::<::std::option::Option<_>>()?.map(transaction_payload::Payload::MultisigPayload) +; + } + } + } + Ok(TransactionPayload { + r#type: r#type__.unwrap_or_default(), + payload: payload__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.TransactionPayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for transaction_payload::Type { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TYPE_UNSPECIFIED", + Self::EntryFunctionPayload => "TYPE_ENTRY_FUNCTION_PAYLOAD", + Self::ScriptPayload => "TYPE_SCRIPT_PAYLOAD", + Self::ModuleBundlePayload => "TYPE_MODULE_BUNDLE_PAYLOAD", + Self::WriteSetPayload => "TYPE_WRITE_SET_PAYLOAD", + Self::MultisigPayload => "TYPE_MULTISIG_PAYLOAD", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for transaction_payload::Type { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TYPE_UNSPECIFIED", + "TYPE_ENTRY_FUNCTION_PAYLOAD", + "TYPE_SCRIPT_PAYLOAD", + "TYPE_MODULE_BUNDLE_PAYLOAD", + "TYPE_WRITE_SET_PAYLOAD", + "TYPE_MULTISIG_PAYLOAD", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = transaction_payload::Type; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(transaction_payload::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(transaction_payload::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TYPE_UNSPECIFIED" => Ok(transaction_payload::Type::Unspecified), + "TYPE_ENTRY_FUNCTION_PAYLOAD" => Ok(transaction_payload::Type::EntryFunctionPayload), + "TYPE_SCRIPT_PAYLOAD" => Ok(transaction_payload::Type::ScriptPayload), + "TYPE_MODULE_BUNDLE_PAYLOAD" => Ok(transaction_payload::Type::ModuleBundlePayload), + "TYPE_WRITE_SET_PAYLOAD" => Ok(transaction_payload::Type::WriteSetPayload), + "TYPE_MULTISIG_PAYLOAD" => Ok(transaction_payload::Type::MultisigPayload), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for UserTransaction { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.request.is_some() { + len += 1; + } + if !self.events.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.UserTransaction", len)?; + if let Some(v) = self.request.as_ref() { + struct_ser.serialize_field("request", v)?; + } + if !self.events.is_empty() { + struct_ser.serialize_field("events", &self.events)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UserTransaction { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "request", + "events", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Request, + Events, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "request" => Ok(GeneratedField::Request), + "events" => Ok(GeneratedField::Events), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UserTransaction; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.UserTransaction") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut request__ = None; + let mut events__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Request => { + if request__.is_some() { + return Err(serde::de::Error::duplicate_field("request")); + } + request__ = map.next_value()?; + } + GeneratedField::Events => { + if events__.is_some() { + return Err(serde::de::Error::duplicate_field("events")); + } + events__ = Some(map.next_value()?); + } + } + } + Ok(UserTransaction { + request: request__, + events: events__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.UserTransaction", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for UserTransactionRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.sender.is_empty() { + len += 1; + } + if self.sequence_number != 0 { + len += 1; + } + if self.max_gas_amount != 0 { + len += 1; + } + if self.gas_unit_price != 0 { + len += 1; + } + if self.expiration_timestamp_secs.is_some() { + len += 1; + } + if self.payload.is_some() { + len += 1; + } + if self.signature.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.UserTransactionRequest", len)?; + if !self.sender.is_empty() { + struct_ser.serialize_field("sender", &self.sender)?; + } + if self.sequence_number != 0 { + struct_ser.serialize_field("sequenceNumber", ToString::to_string(&self.sequence_number).as_str())?; + } + if self.max_gas_amount != 0 { + struct_ser.serialize_field("maxGasAmount", ToString::to_string(&self.max_gas_amount).as_str())?; + } + if self.gas_unit_price != 0 { + struct_ser.serialize_field("gasUnitPrice", ToString::to_string(&self.gas_unit_price).as_str())?; + } + if let Some(v) = self.expiration_timestamp_secs.as_ref() { + struct_ser.serialize_field("expirationTimestampSecs", v)?; + } + if let Some(v) = self.payload.as_ref() { + struct_ser.serialize_field("payload", v)?; + } + if let Some(v) = self.signature.as_ref() { + struct_ser.serialize_field("signature", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for UserTransactionRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "sender", + "sequence_number", + "sequenceNumber", + "max_gas_amount", + "maxGasAmount", + "gas_unit_price", + "gasUnitPrice", + "expiration_timestamp_secs", + "expirationTimestampSecs", + "payload", + "signature", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Sender, + SequenceNumber, + MaxGasAmount, + GasUnitPrice, + ExpirationTimestampSecs, + Payload, + Signature, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "sender" => Ok(GeneratedField::Sender), + "sequenceNumber" | "sequence_number" => Ok(GeneratedField::SequenceNumber), + "maxGasAmount" | "max_gas_amount" => Ok(GeneratedField::MaxGasAmount), + "gasUnitPrice" | "gas_unit_price" => Ok(GeneratedField::GasUnitPrice), + "expirationTimestampSecs" | "expiration_timestamp_secs" => Ok(GeneratedField::ExpirationTimestampSecs), + "payload" => Ok(GeneratedField::Payload), + "signature" => Ok(GeneratedField::Signature), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = UserTransactionRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.UserTransactionRequest") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut sender__ = None; + let mut sequence_number__ = None; + let mut max_gas_amount__ = None; + let mut gas_unit_price__ = None; + let mut expiration_timestamp_secs__ = None; + let mut payload__ = None; + let mut signature__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Sender => { + if sender__.is_some() { + return Err(serde::de::Error::duplicate_field("sender")); + } + sender__ = Some(map.next_value()?); + } + GeneratedField::SequenceNumber => { + if sequence_number__.is_some() { + return Err(serde::de::Error::duplicate_field("sequenceNumber")); + } + sequence_number__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::MaxGasAmount => { + if max_gas_amount__.is_some() { + return Err(serde::de::Error::duplicate_field("maxGasAmount")); + } + max_gas_amount__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::GasUnitPrice => { + if gas_unit_price__.is_some() { + return Err(serde::de::Error::duplicate_field("gasUnitPrice")); + } + gas_unit_price__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::ExpirationTimestampSecs => { + if expiration_timestamp_secs__.is_some() { + return Err(serde::de::Error::duplicate_field("expirationTimestampSecs")); + } + expiration_timestamp_secs__ = map.next_value()?; + } + GeneratedField::Payload => { + if payload__.is_some() { + return Err(serde::de::Error::duplicate_field("payload")); + } + payload__ = map.next_value()?; + } + GeneratedField::Signature => { + if signature__.is_some() { + return Err(serde::de::Error::duplicate_field("signature")); + } + signature__ = map.next_value()?; + } + } + } + Ok(UserTransactionRequest { + sender: sender__.unwrap_or_default(), + sequence_number: sequence_number__.unwrap_or_default(), + max_gas_amount: max_gas_amount__.unwrap_or_default(), + gas_unit_price: gas_unit_price__.unwrap_or_default(), + expiration_timestamp_secs: expiration_timestamp_secs__, + payload: payload__, + signature: signature__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.UserTransactionRequest", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WriteModule { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.address.is_empty() { + len += 1; + } + if !self.state_key_hash.is_empty() { + len += 1; + } + if self.data.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.WriteModule", len)?; + if !self.address.is_empty() { + struct_ser.serialize_field("address", &self.address)?; + } + if !self.state_key_hash.is_empty() { + struct_ser.serialize_field("stateKeyHash", pbjson::private::base64::encode(&self.state_key_hash).as_str())?; + } + if let Some(v) = self.data.as_ref() { + struct_ser.serialize_field("data", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WriteModule { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "state_key_hash", + "stateKeyHash", + "data", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + StateKeyHash, + Data, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "stateKeyHash" | "state_key_hash" => Ok(GeneratedField::StateKeyHash), + "data" => Ok(GeneratedField::Data), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WriteModule; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.WriteModule") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut state_key_hash__ = None; + let mut data__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = Some(map.next_value()?); + } + GeneratedField::StateKeyHash => { + if state_key_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateKeyHash")); + } + state_key_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Data => { + if data__.is_some() { + return Err(serde::de::Error::duplicate_field("data")); + } + data__ = map.next_value()?; + } + } + } + Ok(WriteModule { + address: address__.unwrap_or_default(), + state_key_hash: state_key_hash__.unwrap_or_default(), + data: data__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.WriteModule", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WriteResource { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.address.is_empty() { + len += 1; + } + if !self.state_key_hash.is_empty() { + len += 1; + } + if self.r#type.is_some() { + len += 1; + } + if !self.type_str.is_empty() { + len += 1; + } + if !self.data.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.WriteResource", len)?; + if !self.address.is_empty() { + struct_ser.serialize_field("address", &self.address)?; + } + if !self.state_key_hash.is_empty() { + struct_ser.serialize_field("stateKeyHash", pbjson::private::base64::encode(&self.state_key_hash).as_str())?; + } + if let Some(v) = self.r#type.as_ref() { + struct_ser.serialize_field("type", v)?; + } + if !self.type_str.is_empty() { + struct_ser.serialize_field("typeStr", &self.type_str)?; + } + if !self.data.is_empty() { + struct_ser.serialize_field("data", &self.data)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WriteResource { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "state_key_hash", + "stateKeyHash", + "type", + "type_str", + "typeStr", + "data", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + StateKeyHash, + Type, + TypeStr, + Data, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "stateKeyHash" | "state_key_hash" => Ok(GeneratedField::StateKeyHash), + "type" => Ok(GeneratedField::Type), + "typeStr" | "type_str" => Ok(GeneratedField::TypeStr), + "data" => Ok(GeneratedField::Data), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WriteResource; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.WriteResource") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut state_key_hash__ = None; + let mut r#type__ = None; + let mut type_str__ = None; + let mut data__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = Some(map.next_value()?); + } + GeneratedField::StateKeyHash => { + if state_key_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateKeyHash")); + } + state_key_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = map.next_value()?; + } + GeneratedField::TypeStr => { + if type_str__.is_some() { + return Err(serde::de::Error::duplicate_field("typeStr")); + } + type_str__ = Some(map.next_value()?); + } + GeneratedField::Data => { + if data__.is_some() { + return Err(serde::de::Error::duplicate_field("data")); + } + data__ = Some(map.next_value()?); + } + } + } + Ok(WriteResource { + address: address__.unwrap_or_default(), + state_key_hash: state_key_hash__.unwrap_or_default(), + r#type: r#type__, + type_str: type_str__.unwrap_or_default(), + data: data__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.WriteResource", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WriteSet { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.write_set_type != 0 { + len += 1; + } + if self.write_set.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.WriteSet", len)?; + if self.write_set_type != 0 { + let v = write_set::WriteSetType::from_i32(self.write_set_type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.write_set_type)))?; + struct_ser.serialize_field("writeSetType", &v)?; + } + if let Some(v) = self.write_set.as_ref() { + match v { + write_set::WriteSet::ScriptWriteSet(v) => { + struct_ser.serialize_field("scriptWriteSet", v)?; + } + write_set::WriteSet::DirectWriteSet(v) => { + struct_ser.serialize_field("directWriteSet", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WriteSet { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "write_set_type", + "writeSetType", + "script_write_set", + "scriptWriteSet", + "direct_write_set", + "directWriteSet", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WriteSetType, + ScriptWriteSet, + DirectWriteSet, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "writeSetType" | "write_set_type" => Ok(GeneratedField::WriteSetType), + "scriptWriteSet" | "script_write_set" => Ok(GeneratedField::ScriptWriteSet), + "directWriteSet" | "direct_write_set" => Ok(GeneratedField::DirectWriteSet), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WriteSet; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.WriteSet") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut write_set_type__ = None; + let mut write_set__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::WriteSetType => { + if write_set_type__.is_some() { + return Err(serde::de::Error::duplicate_field("writeSetType")); + } + write_set_type__ = Some(map.next_value::()? as i32); + } + GeneratedField::ScriptWriteSet => { + if write_set__.is_some() { + return Err(serde::de::Error::duplicate_field("scriptWriteSet")); + } + write_set__ = map.next_value::<::std::option::Option<_>>()?.map(write_set::WriteSet::ScriptWriteSet) +; + } + GeneratedField::DirectWriteSet => { + if write_set__.is_some() { + return Err(serde::de::Error::duplicate_field("directWriteSet")); + } + write_set__ = map.next_value::<::std::option::Option<_>>()?.map(write_set::WriteSet::DirectWriteSet) +; + } + } + } + Ok(WriteSet { + write_set_type: write_set_type__.unwrap_or_default(), + write_set: write_set__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.WriteSet", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for write_set::WriteSetType { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "WRITE_SET_TYPE_UNSPECIFIED", + Self::ScriptWriteSet => "WRITE_SET_TYPE_SCRIPT_WRITE_SET", + Self::DirectWriteSet => "WRITE_SET_TYPE_DIRECT_WRITE_SET", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for write_set::WriteSetType { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "WRITE_SET_TYPE_UNSPECIFIED", + "WRITE_SET_TYPE_SCRIPT_WRITE_SET", + "WRITE_SET_TYPE_DIRECT_WRITE_SET", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = write_set::WriteSetType; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(write_set::WriteSetType::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(write_set::WriteSetType::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "WRITE_SET_TYPE_UNSPECIFIED" => Ok(write_set::WriteSetType::Unspecified), + "WRITE_SET_TYPE_SCRIPT_WRITE_SET" => Ok(write_set::WriteSetType::ScriptWriteSet), + "WRITE_SET_TYPE_DIRECT_WRITE_SET" => Ok(write_set::WriteSetType::DirectWriteSet), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for WriteSetChange { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.r#type != 0 { + len += 1; + } + if self.change.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.WriteSetChange", len)?; + if self.r#type != 0 { + let v = write_set_change::Type::from_i32(self.r#type) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.r#type)))?; + struct_ser.serialize_field("type", &v)?; + } + if let Some(v) = self.change.as_ref() { + match v { + write_set_change::Change::DeleteModule(v) => { + struct_ser.serialize_field("deleteModule", v)?; + } + write_set_change::Change::DeleteResource(v) => { + struct_ser.serialize_field("deleteResource", v)?; + } + write_set_change::Change::DeleteTableItem(v) => { + struct_ser.serialize_field("deleteTableItem", v)?; + } + write_set_change::Change::WriteModule(v) => { + struct_ser.serialize_field("writeModule", v)?; + } + write_set_change::Change::WriteResource(v) => { + struct_ser.serialize_field("writeResource", v)?; + } + write_set_change::Change::WriteTableItem(v) => { + struct_ser.serialize_field("writeTableItem", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WriteSetChange { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "type", + "delete_module", + "deleteModule", + "delete_resource", + "deleteResource", + "delete_table_item", + "deleteTableItem", + "write_module", + "writeModule", + "write_resource", + "writeResource", + "write_table_item", + "writeTableItem", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Type, + DeleteModule, + DeleteResource, + DeleteTableItem, + WriteModule, + WriteResource, + WriteTableItem, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "type" => Ok(GeneratedField::Type), + "deleteModule" | "delete_module" => Ok(GeneratedField::DeleteModule), + "deleteResource" | "delete_resource" => Ok(GeneratedField::DeleteResource), + "deleteTableItem" | "delete_table_item" => Ok(GeneratedField::DeleteTableItem), + "writeModule" | "write_module" => Ok(GeneratedField::WriteModule), + "writeResource" | "write_resource" => Ok(GeneratedField::WriteResource), + "writeTableItem" | "write_table_item" => Ok(GeneratedField::WriteTableItem), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WriteSetChange; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.WriteSetChange") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut r#type__ = None; + let mut change__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Type => { + if r#type__.is_some() { + return Err(serde::de::Error::duplicate_field("type")); + } + r#type__ = Some(map.next_value::()? as i32); + } + GeneratedField::DeleteModule => { + if change__.is_some() { + return Err(serde::de::Error::duplicate_field("deleteModule")); + } + change__ = map.next_value::<::std::option::Option<_>>()?.map(write_set_change::Change::DeleteModule) +; + } + GeneratedField::DeleteResource => { + if change__.is_some() { + return Err(serde::de::Error::duplicate_field("deleteResource")); + } + change__ = map.next_value::<::std::option::Option<_>>()?.map(write_set_change::Change::DeleteResource) +; + } + GeneratedField::DeleteTableItem => { + if change__.is_some() { + return Err(serde::de::Error::duplicate_field("deleteTableItem")); + } + change__ = map.next_value::<::std::option::Option<_>>()?.map(write_set_change::Change::DeleteTableItem) +; + } + GeneratedField::WriteModule => { + if change__.is_some() { + return Err(serde::de::Error::duplicate_field("writeModule")); + } + change__ = map.next_value::<::std::option::Option<_>>()?.map(write_set_change::Change::WriteModule) +; + } + GeneratedField::WriteResource => { + if change__.is_some() { + return Err(serde::de::Error::duplicate_field("writeResource")); + } + change__ = map.next_value::<::std::option::Option<_>>()?.map(write_set_change::Change::WriteResource) +; + } + GeneratedField::WriteTableItem => { + if change__.is_some() { + return Err(serde::de::Error::duplicate_field("writeTableItem")); + } + change__ = map.next_value::<::std::option::Option<_>>()?.map(write_set_change::Change::WriteTableItem) +; + } + } + } + Ok(WriteSetChange { + r#type: r#type__.unwrap_or_default(), + change: change__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.WriteSetChange", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for write_set_change::Type { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + let variant = match self { + Self::Unspecified => "TYPE_UNSPECIFIED", + Self::DeleteModule => "TYPE_DELETE_MODULE", + Self::DeleteResource => "TYPE_DELETE_RESOURCE", + Self::DeleteTableItem => "TYPE_DELETE_TABLE_ITEM", + Self::WriteModule => "TYPE_WRITE_MODULE", + Self::WriteResource => "TYPE_WRITE_RESOURCE", + Self::WriteTableItem => "TYPE_WRITE_TABLE_ITEM", + }; + serializer.serialize_str(variant) + } +} +impl<'de> serde::Deserialize<'de> for write_set_change::Type { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "TYPE_UNSPECIFIED", + "TYPE_DELETE_MODULE", + "TYPE_DELETE_RESOURCE", + "TYPE_DELETE_TABLE_ITEM", + "TYPE_WRITE_MODULE", + "TYPE_WRITE_RESOURCE", + "TYPE_WRITE_TABLE_ITEM", + ]; + + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = write_set_change::Type; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + fn visit_i64(self, v: i64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(write_set_change::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Signed(v), &self) + }) + } + + fn visit_u64(self, v: u64) -> std::result::Result + where + E: serde::de::Error, + { + use std::convert::TryFrom; + i32::try_from(v) + .ok() + .and_then(write_set_change::Type::from_i32) + .ok_or_else(|| { + serde::de::Error::invalid_value(serde::de::Unexpected::Unsigned(v), &self) + }) + } + + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "TYPE_UNSPECIFIED" => Ok(write_set_change::Type::Unspecified), + "TYPE_DELETE_MODULE" => Ok(write_set_change::Type::DeleteModule), + "TYPE_DELETE_RESOURCE" => Ok(write_set_change::Type::DeleteResource), + "TYPE_DELETE_TABLE_ITEM" => Ok(write_set_change::Type::DeleteTableItem), + "TYPE_WRITE_MODULE" => Ok(write_set_change::Type::WriteModule), + "TYPE_WRITE_RESOURCE" => Ok(write_set_change::Type::WriteResource), + "TYPE_WRITE_TABLE_ITEM" => Ok(write_set_change::Type::WriteTableItem), + _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), + } + } + } + deserializer.deserialize_any(GeneratedVisitor) + } +} +impl serde::Serialize for WriteSetPayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.write_set.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.WriteSetPayload", len)?; + if let Some(v) = self.write_set.as_ref() { + struct_ser.serialize_field("writeSet", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WriteSetPayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "write_set", + "writeSet", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + WriteSet, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "writeSet" | "write_set" => Ok(GeneratedField::WriteSet), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WriteSetPayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.WriteSetPayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut write_set__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::WriteSet => { + if write_set__.is_some() { + return Err(serde::de::Error::duplicate_field("writeSet")); + } + write_set__ = map.next_value()?; + } + } + } + Ok(WriteSetPayload { + write_set: write_set__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.WriteSetPayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WriteTableData { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.key.is_empty() { + len += 1; + } + if !self.key_type.is_empty() { + len += 1; + } + if !self.value.is_empty() { + len += 1; + } + if !self.value_type.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.WriteTableData", len)?; + if !self.key.is_empty() { + struct_ser.serialize_field("key", &self.key)?; + } + if !self.key_type.is_empty() { + struct_ser.serialize_field("keyType", &self.key_type)?; + } + if !self.value.is_empty() { + struct_ser.serialize_field("value", &self.value)?; + } + if !self.value_type.is_empty() { + struct_ser.serialize_field("valueType", &self.value_type)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WriteTableData { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "key", + "key_type", + "keyType", + "value", + "value_type", + "valueType", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Key, + KeyType, + Value, + ValueType, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "key" => Ok(GeneratedField::Key), + "keyType" | "key_type" => Ok(GeneratedField::KeyType), + "value" => Ok(GeneratedField::Value), + "valueType" | "value_type" => Ok(GeneratedField::ValueType), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WriteTableData; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.WriteTableData") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut key__ = None; + let mut key_type__ = None; + let mut value__ = None; + let mut value_type__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); + } + key__ = Some(map.next_value()?); + } + GeneratedField::KeyType => { + if key_type__.is_some() { + return Err(serde::de::Error::duplicate_field("keyType")); + } + key_type__ = Some(map.next_value()?); + } + GeneratedField::Value => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("value")); + } + value__ = Some(map.next_value()?); + } + GeneratedField::ValueType => { + if value_type__.is_some() { + return Err(serde::de::Error::duplicate_field("valueType")); + } + value_type__ = Some(map.next_value()?); + } + } + } + Ok(WriteTableData { + key: key__.unwrap_or_default(), + key_type: key_type__.unwrap_or_default(), + value: value__.unwrap_or_default(), + value_type: value_type__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.WriteTableData", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for WriteTableItem { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.state_key_hash.is_empty() { + len += 1; + } + if !self.handle.is_empty() { + len += 1; + } + if !self.key.is_empty() { + len += 1; + } + if self.data.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.transaction.v1.WriteTableItem", len)?; + if !self.state_key_hash.is_empty() { + struct_ser.serialize_field("stateKeyHash", pbjson::private::base64::encode(&self.state_key_hash).as_str())?; + } + if !self.handle.is_empty() { + struct_ser.serialize_field("handle", &self.handle)?; + } + if !self.key.is_empty() { + struct_ser.serialize_field("key", &self.key)?; + } + if let Some(v) = self.data.as_ref() { + struct_ser.serialize_field("data", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for WriteTableItem { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "state_key_hash", + "stateKeyHash", + "handle", + "key", + "data", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + StateKeyHash, + Handle, + Key, + Data, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "stateKeyHash" | "state_key_hash" => Ok(GeneratedField::StateKeyHash), + "handle" => Ok(GeneratedField::Handle), + "key" => Ok(GeneratedField::Key), + "data" => Ok(GeneratedField::Data), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = WriteTableItem; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.transaction.v1.WriteTableItem") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut state_key_hash__ = None; + let mut handle__ = None; + let mut key__ = None; + let mut data__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::StateKeyHash => { + if state_key_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("stateKeyHash")); + } + state_key_hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Handle => { + if handle__.is_some() { + return Err(serde::de::Error::duplicate_field("handle")); + } + handle__ = Some(map.next_value()?); + } + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); + } + key__ = Some(map.next_value()?); + } + GeneratedField::Data => { + if data__.is_some() { + return Err(serde::de::Error::duplicate_field("data")); + } + data__ = map.next_value()?; + } + } + } + Ok(WriteTableItem { + state_key_hash: state_key_hash__.unwrap_or_default(), + handle: handle__.unwrap_or_default(), + key: key__.unwrap_or_default(), + data: data__, + }) + } + } + deserializer.deserialize_struct("aptos.transaction.v1.WriteTableItem", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/rust/src/pb/aptos.util.timestamp.rs b/protos/rust/src/pb/aptos.util.timestamp.rs new file mode 100644 index 00000000000000..9d142f32b02d80 --- /dev/null +++ b/protos/rust/src/pb/aptos.util.timestamp.rs @@ -0,0 +1,79 @@ +// Copyright © Aptos Foundation + +// @generated +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Timestamp { + /// Represents seconds of UTC time since Unix epoch + /// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + /// 9999-12-31T23:59:59Z inclusive. + #[prost(int64, tag="1")] + pub seconds: i64, + /// Non-negative fractions of a second at nanosecond resolution. Negative + /// second values with fractions must still have non-negative nanos values + /// that count forward in time. Must be from 0 to 999,999,999 + /// inclusive. + #[prost(int32, tag="2")] + pub nanos: i32, +} +/// Encoded file descriptor set for the `aptos.util.timestamp` package +pub const FILE_DESCRIPTOR_SET: &[u8] = &[ + 0x0a, 0xf7, 0x06, 0x0a, 0x24, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2f, 0x75, 0x74, 0x69, 0x6c, 0x2f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x61, 0x70, 0x74, 0x6f, 0x73, + 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, + 0x3b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x9c, 0x01, 0x0a, + 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x75, 0x74, 0x69, 0x6c, 0x2e, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xa2, 0x02, 0x03, 0x41, 0x55, + 0x54, 0xaa, 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x2e, 0x55, 0x74, 0x69, 0x6c, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0xca, 0x02, 0x14, 0x41, 0x70, 0x74, 0x6f, 0x73, + 0x5c, 0x55, 0x74, 0x69, 0x6c, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0xe2, + 0x02, 0x20, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x5c, 0x55, 0x74, 0x69, 0x6c, 0x5c, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x16, 0x41, 0x70, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x55, 0x74, 0x69, 0x6c, + 0x3a, 0x3a, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4a, 0xd4, 0x04, 0x0a, 0x06, + 0x12, 0x04, 0x03, 0x00, 0x12, 0x01, 0x0a, 0x4e, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x03, 0x00, 0x12, + 0x32, 0x44, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0xc2, 0xa9, 0x20, + 0x41, 0x70, 0x74, 0x6f, 0x73, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x0a, 0x20, 0x53, 0x50, 0x44, 0x58, 0x2d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2d, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x3a, 0x20, 0x41, 0x70, 0x61, 0x63, 0x68, + 0x65, 0x2d, 0x32, 0x2e, 0x30, 0x0a, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x05, 0x00, 0x1d, + 0x0a, 0x0a, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x07, 0x00, 0x12, 0x01, 0x0a, 0x0a, 0x0a, 0x03, + 0x04, 0x00, 0x01, 0x12, 0x03, 0x07, 0x08, 0x11, 0x0a, 0x9c, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, + 0x00, 0x12, 0x03, 0x0b, 0x02, 0x14, 0x1a, 0x8e, 0x01, 0x20, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x73, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x66, 0x20, + 0x55, 0x54, 0x43, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x20, 0x55, + 0x6e, 0x69, 0x78, 0x20, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x0a, 0x20, 0x31, 0x39, 0x37, 0x30, 0x2d, + 0x30, 0x31, 0x2d, 0x30, 0x31, 0x54, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x5a, 0x2e, + 0x20, 0x4d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x30, 0x30, + 0x30, 0x31, 0x2d, 0x30, 0x31, 0x2d, 0x30, 0x31, 0x54, 0x30, 0x30, 0x3a, 0x30, 0x30, 0x3a, 0x30, + 0x30, 0x5a, 0x20, 0x74, 0x6f, 0x0a, 0x20, 0x39, 0x39, 0x39, 0x39, 0x2d, 0x31, 0x32, 0x2d, 0x33, + 0x31, 0x54, 0x32, 0x33, 0x3a, 0x35, 0x39, 0x3a, 0x35, 0x39, 0x5a, 0x20, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, + 0x12, 0x03, 0x0b, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, + 0x0b, 0x08, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x0b, 0x12, + 0x13, 0x0a, 0xe4, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x11, 0x02, 0x12, 0x1a, + 0xd6, 0x01, 0x20, 0x4e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, + 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x0a, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x66, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x73, 0x74, 0x69, 0x6c, + 0x6c, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, 0x6e, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x20, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x0a, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x20, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x20, 0x4d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x30, 0x20, 0x74, 0x6f, 0x20, + 0x39, 0x39, 0x39, 0x2c, 0x39, 0x39, 0x39, 0x2c, 0x39, 0x39, 0x39, 0x0a, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, + 0x05, 0x12, 0x03, 0x11, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, + 0x03, 0x11, 0x08, 0x0d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x11, + 0x10, 0x11, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +]; +include!("aptos.util.timestamp.serde.rs"); +// @@protoc_insertion_point(module) diff --git a/protos/rust/src/pb/aptos.util.timestamp.serde.rs b/protos/rust/src/pb/aptos.util.timestamp.serde.rs new file mode 100644 index 00000000000000..7367f9c2870a27 --- /dev/null +++ b/protos/rust/src/pb/aptos.util.timestamp.serde.rs @@ -0,0 +1,115 @@ +// Copyright © Aptos Foundation + +// @generated +impl serde::Serialize for Timestamp { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.seconds != 0 { + len += 1; + } + if self.nanos != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("aptos.util.timestamp.Timestamp", len)?; + if self.seconds != 0 { + struct_ser.serialize_field("seconds", ToString::to_string(&self.seconds).as_str())?; + } + if self.nanos != 0 { + struct_ser.serialize_field("nanos", &self.nanos)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Timestamp { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "seconds", + "nanos", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Seconds, + Nanos, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "seconds" => Ok(GeneratedField::Seconds), + "nanos" => Ok(GeneratedField::Nanos), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Timestamp; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct aptos.util.timestamp.Timestamp") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut seconds__ = None; + let mut nanos__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Seconds => { + if seconds__.is_some() { + return Err(serde::de::Error::duplicate_field("seconds")); + } + seconds__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Nanos => { + if nanos__.is_some() { + return Err(serde::de::Error::duplicate_field("nanos")); + } + nanos__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(Timestamp { + seconds: seconds__.unwrap_or_default(), + nanos: nanos__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("aptos.util.timestamp.Timestamp", FIELDS, GeneratedVisitor) + } +} diff --git a/protos/rust/src/pb/mod.rs b/protos/rust/src/pb/mod.rs new file mode 100644 index 00000000000000..ffeadb8c767c08 --- /dev/null +++ b/protos/rust/src/pb/mod.rs @@ -0,0 +1,51 @@ +// Copyright © Aptos Foundation + +// @generated +pub mod aptos { + pub mod bigquery_schema { + pub mod transaction { + // @@protoc_insertion_point(attribute:aptos.bigquery_schema.transaction.v1) + pub mod v1 { + include!("aptos.bigquery_schema.transaction.v1.rs"); + // @@protoc_insertion_point(aptos.bigquery_schema.transaction.v1) + } + } + } + pub mod indexer { + // @@protoc_insertion_point(attribute:aptos.indexer.v1) + pub mod v1 { + include!("aptos.indexer.v1.rs"); + // @@protoc_insertion_point(aptos.indexer.v1) + } + } + pub mod internal { + pub mod fullnode { + // @@protoc_insertion_point(attribute:aptos.internal.fullnode.v1) + pub mod v1 { + include!("aptos.internal.fullnode.v1.rs"); + // @@protoc_insertion_point(aptos.internal.fullnode.v1) + } + } + } + pub mod remote_executor { + // @@protoc_insertion_point(attribute:aptos.remote_executor.v1) + pub mod v1 { + include!("aptos.remote_executor.v1.rs"); + // @@protoc_insertion_point(aptos.remote_executor.v1) + } + } + pub mod transaction { + // @@protoc_insertion_point(attribute:aptos.transaction.v1) + pub mod v1 { + include!("aptos.transaction.v1.rs"); + // @@protoc_insertion_point(aptos.transaction.v1) + } + } + pub mod util { + // @@protoc_insertion_point(attribute:aptos.util.timestamp) + pub mod timestamp { + include!("aptos.util.timestamp.rs"); + // @@protoc_insertion_point(aptos.util.timestamp) + } + } +} diff --git a/protos/scripts/build_protos.sh b/protos/scripts/build_protos.sh new file mode 100755 index 00000000000000..626f6b34004926 --- /dev/null +++ b/protos/scripts/build_protos.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +# Change to the parent directory. +cd "$(dirname "$0")" +cd .. + +# Generate code for Rust and TS. +for file in *.gen.yaml +do + # For Python we use the Python toolchain. + if [[ $file == *"python"* ]]; then + continue + fi + buf generate --template "$file" +done + +# Generate code for Python. Currently there is no easy way to use buf for Python +# without using a remote registry or compiling github.com/grpc/grpc from source, +# so instead we use the Python toolchain, specifically grpc_tools.protoc. +cd python +poetry install +poetry run poe generate + +# Run the pre-commit steps. +pre-commit run --all-files diff --git a/protos/typescript/.gitignore b/protos/typescript/.gitignore new file mode 100644 index 00000000000000..3f3844e7073edb --- /dev/null +++ b/protos/typescript/.gitignore @@ -0,0 +1,65 @@ +dist +node_modules/ +.node_modules/ +built/* +tests/cases/rwc/* +tests/cases/perf/* +!tests/cases/webharness/compilerToString.js +test-args.txt +~*.docx +\#*\# +.\#* +tests/baselines/local/* +tests/baselines/local.old/* +tests/services/baselines/local/* +tests/baselines/prototyping/local/* +tests/baselines/rwc/* +tests/baselines/reference/projectOutput/* +tests/baselines/local/projectOutput/* +tests/baselines/reference/testresults.tap +tests/services/baselines/prototyping/local/* +tests/services/browser/typescriptServices.js +src/harness/*.js +src/compiler/diagnosticInformationMap.generated.ts +src/compiler/diagnosticMessages.generated.json +src/parser/diagnosticInformationMap.generated.ts +src/parser/diagnosticMessages.generated.json +rwc-report.html +*.swp +build.json +*.actual +tests/webTestServer.js +tests/webTestServer.js.map +tests/webhost/*.d.ts +tests/webhost/webtsc.js +tests/cases/**/*.js +tests/cases/**/*.js.map +*.config +scripts/eslint/built/ +scripts/debug.bat +scripts/run.bat +scripts/**/*.js +scripts/**/*.js.map +coverage/ +**/.DS_Store +.settings +**/.vs +**/.vscode/* +!**/.vscode/tasks.json +!**/.vscode/settings.template.json +!**/.vscode/launch.template.json +!**/.vscode/extensions.json +!tests/cases/projects/projectOption/**/node_modules +!tests/cases/projects/NodeModulesSearch/**/* +!tests/baselines/reference/project/nodeModules*/**/* +.idea +yarn.lock +yarn-error.log +.parallelperf.* +tests/baselines/reference/dt +.failed-tests +TEST-results.xml +package-lock.json +.eslintcache +*v8.log +/lib/ diff --git a/protos/typescript/CHANGELOG.md b/protos/typescript/CHANGELOG.md new file mode 100644 index 00000000000000..9418b622443db6 --- /dev/null +++ b/protos/typescript/CHANGELOG.md @@ -0,0 +1,8 @@ +# Aptos Protos Changelog + +All notable changes to the Aptos Protos will be captured in this file. This changelog is written by hand for now. + +## Unreleased + +## 1.1.2 +- Initial release. diff --git a/protos/typescript/CONTRIBUTING.md b/protos/typescript/CONTRIBUTING.md new file mode 100644 index 00000000000000..1e07f5b31c14b7 --- /dev/null +++ b/protos/typescript/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Aptos Indexer Protos + +## Changelog +To update the changelog do the following: + +1. Bump the version in `package.json` according to [semver](https://semver.org/). +2. Bump the version in `version.ts`. +3. Add the change description in the CHANGELOG under the "Unreleased" section. + +## Release process +To release a new version of the package do the following. + +1. Check that the commit you're deploying from (likely just the latest commit of `main`) is green in CI. +1. Bump the version in `package.json` according to [semver](https://semver.org/). +1. Bump the version in `version.ts`. +1. Add an entry in the CHANGELOG for the version. We adhere to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Generally this means changing the "Unreleased" section to a version and then making a new "Unreleased" section. +1. Once the CI is green land the PR into the main branch. +1. Check out the latest commit on main. +1. Get the auth token from our password manager. Search for "npmjs". It should look like similar to this: `npm_cccaCVg0bWaaR741D5Gdsd12T4JpQre444aaaa`. +1. Run `pnpm publish --dry-run`. From here, make some sanity checks: + a. Look closely at the output of the command. Pay close attention to what is packaged. Make sure we're not including some files that were included accidentally. For example `.aptos`. Add those to .npmignore if needed. + b. Compare the summary with the public npm package summary on npmjs. The number of files and sizes should not vary too much. +1. Run `pnpm build` +1. Run `NODE_AUTH_TOKEN= pnpm publish --non-interactive`. +1. Double check that the release worked by visitng npmjs: https://www.npmjs.com/package/aptos-indexer-protos. diff --git a/protos/typescript/README.md b/protos/typescript/README.md new file mode 100644 index 00000000000000..9e4fdef7b00885 --- /dev/null +++ b/protos/typescript/README.md @@ -0,0 +1,31 @@ +# Aptos Protos + +This repository contains the protobuf definitions for the Aptos tech stack. + +## Usage +Import the generated code like this: +```typescript +import { aptos } from "@aptos-labs/aptos-protos"; +``` + +Then use it like this: +```typescript +function parse(transaction: aptos.transaction.v1.Transaction) { + console.log(transaction) +} +``` + +These configuration options are required for typechecking to work: +```json +// tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + } +} +``` + +This package should work for both CommonJS (`"type": "commonjs"`) and ES (`"type": "module"`) modules. + +## Contributing +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. diff --git a/protos/typescript/package.json b/protos/typescript/package.json new file mode 100644 index 00000000000000..7957e2e34c315d --- /dev/null +++ b/protos/typescript/package.json @@ -0,0 +1,36 @@ +{ + "name": "@aptos-labs/aptos-protos", + "description": "Code generated from protobuf definitions for the Aptos tech stack", + "version": "1.1.2", + "packageManager": "pnpm@8.6.2", + "license": "Apache-2.0", + "engines": { + "node": ">=14.0.0" + }, + "scripts": { + "prepare": "rm -rf dist && pnpm run build", + "build": "./scripts/build.sh" + }, + "dependencies": { + "@grpc/grpc-js": "^1.9.2", + "long": "^5.2.3", + "protobufjs": "^7.2.5" + }, + "devDependencies": { + "typescript": "4.8.4" + }, + "type": "module", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "types": "./dist/esm/index.d.ts", + "export": { + ".": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js", + "types": "./dist/esm/index.d.ts" + } + }, + "files": [ + "dist" + ] +} diff --git a/protos/typescript/pnpm-lock.yaml b/protos/typescript/pnpm-lock.yaml new file mode 100644 index 00000000000000..987ddd6b14ec7c --- /dev/null +++ b/protos/typescript/pnpm-lock.yaml @@ -0,0 +1,232 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@grpc/grpc-js': + specifier: ^1.9.2 + version: 1.9.2 + long: + specifier: ^5.2.3 + version: 5.2.3 + protobufjs: + specifier: ^7.2.5 + version: 7.2.5 + +devDependencies: + typescript: + specifier: 4.8.4 + version: 4.8.4 + +packages: + + /@grpc/grpc-js@1.9.2: + resolution: {integrity: sha512-Lf2pUhNTaviEdEaGgjU+29qw3arX7Qd/45q66F3z1EV5hroE6wM9xSHPvjB8EY+b1RmKZgwnLWXQorC6fZ9g5g==} + engines: {node: ^8.13.0 || >=10.10.0} + dependencies: + '@grpc/proto-loader': 0.7.10 + '@types/node': 20.8.6 + dev: false + + /@grpc/proto-loader@0.7.10: + resolution: {integrity: sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.2.5 + yargs: 17.7.2 + dev: false + + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false + + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false + + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false + + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false + + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false + + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false + + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false + + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false + + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false + + /@types/node@20.8.6: + resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==} + dependencies: + undici-types: 5.25.3 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: false + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false + + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false + + /protobufjs@7.2.5: + resolution: {integrity: sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.8.6 + long: 5.2.3 + dev: false + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /typescript@4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + dev: false + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: false + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: false diff --git a/protos/typescript/scripts/build.sh b/protos/typescript/scripts/build.sh new file mode 100755 index 00000000000000..37e72555247f1a --- /dev/null +++ b/protos/typescript/scripts/build.sh @@ -0,0 +1,9 @@ +# Build the commonjs code. We include a package.json with the type set to commonjs +# so the downstream code knows that it is commonjs and not esm. +tsc --module commonjs --outDir dist/cjs +echo '{"type": "commonjs"}' > dist/cjs/package.json + +# Build the esm code. We include a package.json with the type set to esm +# so the downstream code knows that it is esm and not commonjs. +tsc --module es2022 --outDir dist/esm +echo '{"type": "module"}' > dist/esm/package.json diff --git a/protos/typescript/src/aptos/bigquery_schema/v1/transaction.ts b/protos/typescript/src/aptos/bigquery_schema/v1/transaction.ts new file mode 100644 index 00000000000000..0ecc8c533f8985 --- /dev/null +++ b/protos/typescript/src/aptos/bigquery_schema/v1/transaction.ts @@ -0,0 +1,410 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +/** + * Proto2 is required. + * Current BigQuery runs over proto2, thus optional(nullable) + * field with default value will be ignored. For example, + * `int64 value = null` will be translated to 0 under column `value`. + * To avoid any analytics hassle, proto2 is required here. + */ + +/** + * Transaction is a simplified representation for the transaction + * happened on the chain. Mainly built for streaming into BigQuery. + * It matches with the structure defined for the transaction in Indexer. + */ +export interface Transaction { + version?: bigint | undefined; + blockHeight?: bigint | undefined; + hash?: string | undefined; + type?: string | undefined; + payload?: string | undefined; + stateChangeHash?: string | undefined; + eventRootHash?: string | undefined; + stateCheckpointHash?: string | undefined; + gasUsed?: bigint | undefined; + success?: boolean | undefined; + vmStatus?: string | undefined; + accumulatorRootHash?: string | undefined; + numEvents?: bigint | undefined; + numWriteSetChanges?: bigint | undefined; + epoch?: bigint | undefined; + insertedAt?: bigint | undefined; +} + +function createBaseTransaction(): Transaction { + return { + version: BigInt("0"), + blockHeight: BigInt("0"), + hash: "", + type: "", + payload: "", + stateChangeHash: "", + eventRootHash: "", + stateCheckpointHash: "", + gasUsed: BigInt("0"), + success: false, + vmStatus: "", + accumulatorRootHash: "", + numEvents: BigInt("0"), + numWriteSetChanges: BigInt("0"), + epoch: BigInt("0"), + insertedAt: BigInt("0"), + }; +} + +export const Transaction = { + encode(message: Transaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.version !== undefined && message.version !== BigInt("0")) { + if (BigInt.asIntN(64, message.version) !== message.version) { + throw new Error("value provided for field message.version of type int64 too large"); + } + writer.uint32(8).int64(message.version.toString()); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + if (BigInt.asIntN(64, message.blockHeight) !== message.blockHeight) { + throw new Error("value provided for field message.blockHeight of type int64 too large"); + } + writer.uint32(16).int64(message.blockHeight.toString()); + } + if (message.hash !== undefined && message.hash !== "") { + writer.uint32(26).string(message.hash); + } + if (message.type !== undefined && message.type !== "") { + writer.uint32(34).string(message.type); + } + if (message.payload !== undefined && message.payload !== "") { + writer.uint32(42).string(message.payload); + } + if (message.stateChangeHash !== undefined && message.stateChangeHash !== "") { + writer.uint32(50).string(message.stateChangeHash); + } + if (message.eventRootHash !== undefined && message.eventRootHash !== "") { + writer.uint32(58).string(message.eventRootHash); + } + if (message.stateCheckpointHash !== undefined && message.stateCheckpointHash !== "") { + writer.uint32(66).string(message.stateCheckpointHash); + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) { + throw new Error("value provided for field message.gasUsed of type uint64 too large"); + } + writer.uint32(72).uint64(message.gasUsed.toString()); + } + if (message.success === true) { + writer.uint32(80).bool(message.success); + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + writer.uint32(90).string(message.vmStatus); + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash !== "") { + writer.uint32(98).string(message.accumulatorRootHash); + } + if (message.numEvents !== undefined && message.numEvents !== BigInt("0")) { + if (BigInt.asIntN(64, message.numEvents) !== message.numEvents) { + throw new Error("value provided for field message.numEvents of type int64 too large"); + } + writer.uint32(104).int64(message.numEvents.toString()); + } + if (message.numWriteSetChanges !== undefined && message.numWriteSetChanges !== BigInt("0")) { + if (BigInt.asIntN(64, message.numWriteSetChanges) !== message.numWriteSetChanges) { + throw new Error("value provided for field message.numWriteSetChanges of type int64 too large"); + } + writer.uint32(112).int64(message.numWriteSetChanges.toString()); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + if (BigInt.asIntN(64, message.epoch) !== message.epoch) { + throw new Error("value provided for field message.epoch of type int64 too large"); + } + writer.uint32(120).int64(message.epoch.toString()); + } + if (message.insertedAt !== undefined && message.insertedAt !== BigInt("0")) { + if (BigInt.asIntN(64, message.insertedAt) !== message.insertedAt) { + throw new Error("value provided for field message.insertedAt of type int64 too large"); + } + writer.uint32(128).int64(message.insertedAt.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Transaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.version = longToBigint(reader.int64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.blockHeight = longToBigint(reader.int64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.hash = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.type = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.payload = reader.string(); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.stateChangeHash = reader.string(); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.eventRootHash = reader.string(); + continue; + case 8: + if (tag !== 66) { + break; + } + + message.stateCheckpointHash = reader.string(); + continue; + case 9: + if (tag !== 72) { + break; + } + + message.gasUsed = longToBigint(reader.uint64() as Long); + continue; + case 10: + if (tag !== 80) { + break; + } + + message.success = reader.bool(); + continue; + case 11: + if (tag !== 90) { + break; + } + + message.vmStatus = reader.string(); + continue; + case 12: + if (tag !== 98) { + break; + } + + message.accumulatorRootHash = reader.string(); + continue; + case 13: + if (tag !== 104) { + break; + } + + message.numEvents = longToBigint(reader.int64() as Long); + continue; + case 14: + if (tag !== 112) { + break; + } + + message.numWriteSetChanges = longToBigint(reader.int64() as Long); + continue; + case 15: + if (tag !== 120) { + break; + } + + message.epoch = longToBigint(reader.int64() as Long); + continue; + case 16: + if (tag !== 128) { + break; + } + + message.insertedAt = longToBigint(reader.int64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.encode(p).finish()]; + } + } else { + yield* [Transaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.decode(p)]; + } + } else { + yield* [Transaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Transaction { + return { + version: isSet(object.version) ? BigInt(object.version) : BigInt("0"), + blockHeight: isSet(object.blockHeight) ? BigInt(object.blockHeight) : BigInt("0"), + hash: isSet(object.hash) ? globalThis.String(object.hash) : "", + type: isSet(object.type) ? globalThis.String(object.type) : "", + payload: isSet(object.payload) ? globalThis.String(object.payload) : "", + stateChangeHash: isSet(object.stateChangeHash) ? globalThis.String(object.stateChangeHash) : "", + eventRootHash: isSet(object.eventRootHash) ? globalThis.String(object.eventRootHash) : "", + stateCheckpointHash: isSet(object.stateCheckpointHash) ? globalThis.String(object.stateCheckpointHash) : "", + gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt("0"), + success: isSet(object.success) ? globalThis.Boolean(object.success) : false, + vmStatus: isSet(object.vmStatus) ? globalThis.String(object.vmStatus) : "", + accumulatorRootHash: isSet(object.accumulatorRootHash) ? globalThis.String(object.accumulatorRootHash) : "", + numEvents: isSet(object.numEvents) ? BigInt(object.numEvents) : BigInt("0"), + numWriteSetChanges: isSet(object.numWriteSetChanges) ? BigInt(object.numWriteSetChanges) : BigInt("0"), + epoch: isSet(object.epoch) ? BigInt(object.epoch) : BigInt("0"), + insertedAt: isSet(object.insertedAt) ? BigInt(object.insertedAt) : BigInt("0"), + }; + }, + + toJSON(message: Transaction): unknown { + const obj: any = {}; + if (message.version !== undefined && message.version !== BigInt("0")) { + obj.version = message.version.toString(); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + obj.blockHeight = message.blockHeight.toString(); + } + if (message.hash !== undefined && message.hash !== "") { + obj.hash = message.hash; + } + if (message.type !== undefined && message.type !== "") { + obj.type = message.type; + } + if (message.payload !== undefined && message.payload !== "") { + obj.payload = message.payload; + } + if (message.stateChangeHash !== undefined && message.stateChangeHash !== "") { + obj.stateChangeHash = message.stateChangeHash; + } + if (message.eventRootHash !== undefined && message.eventRootHash !== "") { + obj.eventRootHash = message.eventRootHash; + } + if (message.stateCheckpointHash !== undefined && message.stateCheckpointHash !== "") { + obj.stateCheckpointHash = message.stateCheckpointHash; + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + obj.gasUsed = message.gasUsed.toString(); + } + if (message.success === true) { + obj.success = message.success; + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + obj.vmStatus = message.vmStatus; + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash !== "") { + obj.accumulatorRootHash = message.accumulatorRootHash; + } + if (message.numEvents !== undefined && message.numEvents !== BigInt("0")) { + obj.numEvents = message.numEvents.toString(); + } + if (message.numWriteSetChanges !== undefined && message.numWriteSetChanges !== BigInt("0")) { + obj.numWriteSetChanges = message.numWriteSetChanges.toString(); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + obj.epoch = message.epoch.toString(); + } + if (message.insertedAt !== undefined && message.insertedAt !== BigInt("0")) { + obj.insertedAt = message.insertedAt.toString(); + } + return obj; + }, + + create(base?: DeepPartial): Transaction { + return Transaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Transaction { + const message = createBaseTransaction(); + message.version = object.version ?? BigInt("0"); + message.blockHeight = object.blockHeight ?? BigInt("0"); + message.hash = object.hash ?? ""; + message.type = object.type ?? ""; + message.payload = object.payload ?? ""; + message.stateChangeHash = object.stateChangeHash ?? ""; + message.eventRootHash = object.eventRootHash ?? ""; + message.stateCheckpointHash = object.stateCheckpointHash ?? ""; + message.gasUsed = object.gasUsed ?? BigInt("0"); + message.success = object.success ?? false; + message.vmStatus = object.vmStatus ?? ""; + message.accumulatorRootHash = object.accumulatorRootHash ?? ""; + message.numEvents = object.numEvents ?? BigInt("0"); + message.numWriteSetChanges = object.numWriteSetChanges ?? BigInt("0"); + message.epoch = object.epoch ?? BigInt("0"); + message.insertedAt = object.insertedAt ?? BigInt("0"); + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/indexer/v1/raw_data.ts b/protos/typescript/src/aptos/indexer/v1/raw_data.ts new file mode 100644 index 00000000000000..71a00c29d61add --- /dev/null +++ b/protos/typescript/src/aptos/indexer/v1/raw_data.ts @@ -0,0 +1,347 @@ +/* eslint-disable */ +import { + ChannelCredentials, + Client, + ClientReadableStream, + handleServerStreamingCall, + makeGenericClientConstructor, + Metadata, +} from "@grpc/grpc-js"; +import type { CallOptions, ClientOptions, UntypedServiceImplementation } from "@grpc/grpc-js"; +import Long from "long"; +import _m0 from "protobufjs/minimal"; +import { Transaction } from "../../transaction/v1/transaction"; + +export interface GetTransactionsRequest { + /** Required; start version of current stream. */ + startingVersion?: + | bigint + | undefined; + /** + * Optional; number of transactions to return in current stream. + * If not present, return an infinite stream of transactions. + */ + transactionsCount?: + | bigint + | undefined; + /** + * Optional; number of transactions in each `TransactionsResponse` for current stream. + * If not present, default to 1000. If larger than 1000, request will be rejected. + */ + batchSize?: bigint | undefined; +} + +/** TransactionsResponse is a batch of transactions. */ +export interface TransactionsResponse { + /** Required; transactions data. */ + transactions?: + | Transaction[] + | undefined; + /** Required; chain id. */ + chainId?: bigint | undefined; +} + +function createBaseGetTransactionsRequest(): GetTransactionsRequest { + return { startingVersion: undefined, transactionsCount: undefined, batchSize: undefined }; +} + +export const GetTransactionsRequest = { + encode(message: GetTransactionsRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.startingVersion !== undefined) { + if (BigInt.asUintN(64, message.startingVersion) !== message.startingVersion) { + throw new Error("value provided for field message.startingVersion of type uint64 too large"); + } + writer.uint32(8).uint64(message.startingVersion.toString()); + } + if (message.transactionsCount !== undefined) { + if (BigInt.asUintN(64, message.transactionsCount) !== message.transactionsCount) { + throw new Error("value provided for field message.transactionsCount of type uint64 too large"); + } + writer.uint32(16).uint64(message.transactionsCount.toString()); + } + if (message.batchSize !== undefined) { + if (BigInt.asUintN(64, message.batchSize) !== message.batchSize) { + throw new Error("value provided for field message.batchSize of type uint64 too large"); + } + writer.uint32(24).uint64(message.batchSize.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetTransactionsRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetTransactionsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.startingVersion = longToBigint(reader.uint64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.transactionsCount = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.batchSize = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsRequest.encode(p).finish()]; + } + } else { + yield* [GetTransactionsRequest.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsRequest.decode(p)]; + } + } else { + yield* [GetTransactionsRequest.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): GetTransactionsRequest { + return { + startingVersion: isSet(object.startingVersion) ? BigInt(object.startingVersion) : undefined, + transactionsCount: isSet(object.transactionsCount) ? BigInt(object.transactionsCount) : undefined, + batchSize: isSet(object.batchSize) ? BigInt(object.batchSize) : undefined, + }; + }, + + toJSON(message: GetTransactionsRequest): unknown { + const obj: any = {}; + if (message.startingVersion !== undefined) { + obj.startingVersion = message.startingVersion.toString(); + } + if (message.transactionsCount !== undefined) { + obj.transactionsCount = message.transactionsCount.toString(); + } + if (message.batchSize !== undefined) { + obj.batchSize = message.batchSize.toString(); + } + return obj; + }, + + create(base?: DeepPartial): GetTransactionsRequest { + return GetTransactionsRequest.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): GetTransactionsRequest { + const message = createBaseGetTransactionsRequest(); + message.startingVersion = object.startingVersion ?? undefined; + message.transactionsCount = object.transactionsCount ?? undefined; + message.batchSize = object.batchSize ?? undefined; + return message; + }, +}; + +function createBaseTransactionsResponse(): TransactionsResponse { + return { transactions: [], chainId: undefined }; +} + +export const TransactionsResponse = { + encode(message: TransactionsResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.transactions !== undefined && message.transactions.length !== 0) { + for (const v of message.transactions) { + Transaction.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + if (message.chainId !== undefined) { + if (BigInt.asUintN(64, message.chainId) !== message.chainId) { + throw new Error("value provided for field message.chainId of type uint64 too large"); + } + writer.uint32(16).uint64(message.chainId.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionsResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.transactions!.push(Transaction.decode(reader, reader.uint32())); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.chainId = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsResponse.encode(p).finish()]; + } + } else { + yield* [TransactionsResponse.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsResponse.decode(p)]; + } + } else { + yield* [TransactionsResponse.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionsResponse { + return { + transactions: globalThis.Array.isArray(object?.transactions) + ? object.transactions.map((e: any) => Transaction.fromJSON(e)) + : [], + chainId: isSet(object.chainId) ? BigInt(object.chainId) : undefined, + }; + }, + + toJSON(message: TransactionsResponse): unknown { + const obj: any = {}; + if (message.transactions?.length) { + obj.transactions = message.transactions.map((e) => Transaction.toJSON(e)); + } + if (message.chainId !== undefined) { + obj.chainId = message.chainId.toString(); + } + return obj; + }, + + create(base?: DeepPartial): TransactionsResponse { + return TransactionsResponse.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionsResponse { + const message = createBaseTransactionsResponse(); + message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || []; + message.chainId = object.chainId ?? undefined; + return message; + }, +}; + +export type RawDataService = typeof RawDataService; +export const RawDataService = { + /** Get transactions batch without any filtering from starting version and end if transaction count is present. */ + getTransactions: { + path: "/aptos.indexer.v1.RawData/GetTransactions", + requestStream: false, + responseStream: true, + requestSerialize: (value: GetTransactionsRequest) => Buffer.from(GetTransactionsRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetTransactionsRequest.decode(value), + responseSerialize: (value: TransactionsResponse) => Buffer.from(TransactionsResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => TransactionsResponse.decode(value), + }, +} as const; + +export interface RawDataServer extends UntypedServiceImplementation { + /** Get transactions batch without any filtering from starting version and end if transaction count is present. */ + getTransactions: handleServerStreamingCall; +} + +export interface RawDataClient extends Client { + /** Get transactions batch without any filtering from starting version and end if transaction count is present. */ + getTransactions( + request: GetTransactionsRequest, + options?: Partial, + ): ClientReadableStream; + getTransactions( + request: GetTransactionsRequest, + metadata?: Metadata, + options?: Partial, + ): ClientReadableStream; +} + +export const RawDataClient = makeGenericClientConstructor(RawDataService, "aptos.indexer.v1.RawData") as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): RawDataClient; + service: typeof RawDataService; +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/internal/fullnode/v1/fullnode_data.ts b/protos/typescript/src/aptos/internal/fullnode/v1/fullnode_data.ts new file mode 100644 index 00000000000000..e2baae01e284fc --- /dev/null +++ b/protos/typescript/src/aptos/internal/fullnode/v1/fullnode_data.ts @@ -0,0 +1,619 @@ +/* eslint-disable */ +import { + ChannelCredentials, + Client, + ClientReadableStream, + handleServerStreamingCall, + makeGenericClientConstructor, + Metadata, +} from "@grpc/grpc-js"; +import type { CallOptions, ClientOptions, UntypedServiceImplementation } from "@grpc/grpc-js"; +import Long from "long"; +import _m0 from "protobufjs/minimal"; +import { Transaction } from "../../../transaction/v1/transaction"; + +export interface TransactionsOutput { + transactions?: Transaction[] | undefined; +} + +export interface StreamStatus { + type?: + | StreamStatus_StatusType + | undefined; + /** Required. Start version of current batch/stream, inclusive. */ + startVersion?: + | bigint + | undefined; + /** End version of current *batch*, inclusive. */ + endVersion?: bigint | undefined; +} + +export enum StreamStatus_StatusType { + STATUS_TYPE_UNSPECIFIED = 0, + /** STATUS_TYPE_INIT - Signal for the start of the stream. */ + STATUS_TYPE_INIT = 1, + /** STATUS_TYPE_BATCH_END - Signal for the end of the batch. */ + STATUS_TYPE_BATCH_END = 2, + UNRECOGNIZED = -1, +} + +export function streamStatus_StatusTypeFromJSON(object: any): StreamStatus_StatusType { + switch (object) { + case 0: + case "STATUS_TYPE_UNSPECIFIED": + return StreamStatus_StatusType.STATUS_TYPE_UNSPECIFIED; + case 1: + case "STATUS_TYPE_INIT": + return StreamStatus_StatusType.STATUS_TYPE_INIT; + case 2: + case "STATUS_TYPE_BATCH_END": + return StreamStatus_StatusType.STATUS_TYPE_BATCH_END; + case -1: + case "UNRECOGNIZED": + default: + return StreamStatus_StatusType.UNRECOGNIZED; + } +} + +export function streamStatus_StatusTypeToJSON(object: StreamStatus_StatusType): string { + switch (object) { + case StreamStatus_StatusType.STATUS_TYPE_UNSPECIFIED: + return "STATUS_TYPE_UNSPECIFIED"; + case StreamStatus_StatusType.STATUS_TYPE_INIT: + return "STATUS_TYPE_INIT"; + case StreamStatus_StatusType.STATUS_TYPE_BATCH_END: + return "STATUS_TYPE_BATCH_END"; + case StreamStatus_StatusType.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface GetTransactionsFromNodeRequest { + /** + * Required; start version of current stream. + * If not set will panic somewhere + */ + startingVersion?: + | bigint + | undefined; + /** + * Optional; number of transactions to return in current stream. + * If not set, response streams infinitely. + */ + transactionsCount?: bigint | undefined; +} + +export interface TransactionsFromNodeResponse { + status?: StreamStatus | undefined; + data?: + | TransactionsOutput + | undefined; + /** Making sure that all the responses include a chain id */ + chainId?: number | undefined; +} + +function createBaseTransactionsOutput(): TransactionsOutput { + return { transactions: [] }; +} + +export const TransactionsOutput = { + encode(message: TransactionsOutput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.transactions !== undefined && message.transactions.length !== 0) { + for (const v of message.transactions) { + Transaction.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionsOutput { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionsOutput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.transactions!.push(Transaction.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsOutput.encode(p).finish()]; + } + } else { + yield* [TransactionsOutput.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsOutput.decode(p)]; + } + } else { + yield* [TransactionsOutput.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionsOutput { + return { + transactions: globalThis.Array.isArray(object?.transactions) + ? object.transactions.map((e: any) => Transaction.fromJSON(e)) + : [], + }; + }, + + toJSON(message: TransactionsOutput): unknown { + const obj: any = {}; + if (message.transactions?.length) { + obj.transactions = message.transactions.map((e) => Transaction.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): TransactionsOutput { + return TransactionsOutput.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionsOutput { + const message = createBaseTransactionsOutput(); + message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseStreamStatus(): StreamStatus { + return { type: 0, startVersion: BigInt("0"), endVersion: undefined }; +} + +export const StreamStatus = { + encode(message: StreamStatus, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.startVersion !== undefined && message.startVersion !== BigInt("0")) { + if (BigInt.asUintN(64, message.startVersion) !== message.startVersion) { + throw new Error("value provided for field message.startVersion of type uint64 too large"); + } + writer.uint32(16).uint64(message.startVersion.toString()); + } + if (message.endVersion !== undefined) { + if (BigInt.asUintN(64, message.endVersion) !== message.endVersion) { + throw new Error("value provided for field message.endVersion of type uint64 too large"); + } + writer.uint32(24).uint64(message.endVersion.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): StreamStatus { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseStreamStatus(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 16) { + break; + } + + message.startVersion = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.endVersion = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StreamStatus.encode(p).finish()]; + } + } else { + yield* [StreamStatus.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StreamStatus.decode(p)]; + } + } else { + yield* [StreamStatus.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): StreamStatus { + return { + type: isSet(object.type) ? streamStatus_StatusTypeFromJSON(object.type) : 0, + startVersion: isSet(object.startVersion) ? BigInt(object.startVersion) : BigInt("0"), + endVersion: isSet(object.endVersion) ? BigInt(object.endVersion) : undefined, + }; + }, + + toJSON(message: StreamStatus): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = streamStatus_StatusTypeToJSON(message.type); + } + if (message.startVersion !== undefined && message.startVersion !== BigInt("0")) { + obj.startVersion = message.startVersion.toString(); + } + if (message.endVersion !== undefined) { + obj.endVersion = message.endVersion.toString(); + } + return obj; + }, + + create(base?: DeepPartial): StreamStatus { + return StreamStatus.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): StreamStatus { + const message = createBaseStreamStatus(); + message.type = object.type ?? 0; + message.startVersion = object.startVersion ?? BigInt("0"); + message.endVersion = object.endVersion ?? undefined; + return message; + }, +}; + +function createBaseGetTransactionsFromNodeRequest(): GetTransactionsFromNodeRequest { + return { startingVersion: undefined, transactionsCount: undefined }; +} + +export const GetTransactionsFromNodeRequest = { + encode(message: GetTransactionsFromNodeRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.startingVersion !== undefined) { + if (BigInt.asUintN(64, message.startingVersion) !== message.startingVersion) { + throw new Error("value provided for field message.startingVersion of type uint64 too large"); + } + writer.uint32(8).uint64(message.startingVersion.toString()); + } + if (message.transactionsCount !== undefined) { + if (BigInt.asUintN(64, message.transactionsCount) !== message.transactionsCount) { + throw new Error("value provided for field message.transactionsCount of type uint64 too large"); + } + writer.uint32(16).uint64(message.transactionsCount.toString()); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GetTransactionsFromNodeRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGetTransactionsFromNodeRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.startingVersion = longToBigint(reader.uint64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.transactionsCount = longToBigint(reader.uint64() as Long); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsFromNodeRequest.encode(p).finish()]; + } + } else { + yield* [GetTransactionsFromNodeRequest.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GetTransactionsFromNodeRequest.decode(p)]; + } + } else { + yield* [GetTransactionsFromNodeRequest.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): GetTransactionsFromNodeRequest { + return { + startingVersion: isSet(object.startingVersion) ? BigInt(object.startingVersion) : undefined, + transactionsCount: isSet(object.transactionsCount) ? BigInt(object.transactionsCount) : undefined, + }; + }, + + toJSON(message: GetTransactionsFromNodeRequest): unknown { + const obj: any = {}; + if (message.startingVersion !== undefined) { + obj.startingVersion = message.startingVersion.toString(); + } + if (message.transactionsCount !== undefined) { + obj.transactionsCount = message.transactionsCount.toString(); + } + return obj; + }, + + create(base?: DeepPartial): GetTransactionsFromNodeRequest { + return GetTransactionsFromNodeRequest.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): GetTransactionsFromNodeRequest { + const message = createBaseGetTransactionsFromNodeRequest(); + message.startingVersion = object.startingVersion ?? undefined; + message.transactionsCount = object.transactionsCount ?? undefined; + return message; + }, +}; + +function createBaseTransactionsFromNodeResponse(): TransactionsFromNodeResponse { + return { status: undefined, data: undefined, chainId: 0 }; +} + +export const TransactionsFromNodeResponse = { + encode(message: TransactionsFromNodeResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.status !== undefined) { + StreamStatus.encode(message.status, writer.uint32(10).fork()).ldelim(); + } + if (message.data !== undefined) { + TransactionsOutput.encode(message.data, writer.uint32(18).fork()).ldelim(); + } + if (message.chainId !== undefined && message.chainId !== 0) { + writer.uint32(24).uint32(message.chainId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionsFromNodeResponse { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionsFromNodeResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.status = StreamStatus.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.data = TransactionsOutput.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.chainId = reader.uint32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsFromNodeResponse.encode(p).finish()]; + } + } else { + yield* [TransactionsFromNodeResponse.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionsFromNodeResponse.decode(p)]; + } + } else { + yield* [TransactionsFromNodeResponse.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionsFromNodeResponse { + return { + status: isSet(object.status) ? StreamStatus.fromJSON(object.status) : undefined, + data: isSet(object.data) ? TransactionsOutput.fromJSON(object.data) : undefined, + chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0, + }; + }, + + toJSON(message: TransactionsFromNodeResponse): unknown { + const obj: any = {}; + if (message.status !== undefined) { + obj.status = StreamStatus.toJSON(message.status); + } + if (message.data !== undefined) { + obj.data = TransactionsOutput.toJSON(message.data); + } + if (message.chainId !== undefined && message.chainId !== 0) { + obj.chainId = Math.round(message.chainId); + } + return obj; + }, + + create(base?: DeepPartial): TransactionsFromNodeResponse { + return TransactionsFromNodeResponse.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionsFromNodeResponse { + const message = createBaseTransactionsFromNodeResponse(); + message.status = (object.status !== undefined && object.status !== null) + ? StreamStatus.fromPartial(object.status) + : undefined; + message.data = (object.data !== undefined && object.data !== null) + ? TransactionsOutput.fromPartial(object.data) + : undefined; + message.chainId = object.chainId ?? 0; + return message; + }, +}; + +export type FullnodeDataService = typeof FullnodeDataService; +export const FullnodeDataService = { + getTransactionsFromNode: { + path: "/aptos.internal.fullnode.v1.FullnodeData/GetTransactionsFromNode", + requestStream: false, + responseStream: true, + requestSerialize: (value: GetTransactionsFromNodeRequest) => + Buffer.from(GetTransactionsFromNodeRequest.encode(value).finish()), + requestDeserialize: (value: Buffer) => GetTransactionsFromNodeRequest.decode(value), + responseSerialize: (value: TransactionsFromNodeResponse) => + Buffer.from(TransactionsFromNodeResponse.encode(value).finish()), + responseDeserialize: (value: Buffer) => TransactionsFromNodeResponse.decode(value), + }, +} as const; + +export interface FullnodeDataServer extends UntypedServiceImplementation { + getTransactionsFromNode: handleServerStreamingCall; +} + +export interface FullnodeDataClient extends Client { + getTransactionsFromNode( + request: GetTransactionsFromNodeRequest, + options?: Partial, + ): ClientReadableStream; + getTransactionsFromNode( + request: GetTransactionsFromNodeRequest, + metadata?: Metadata, + options?: Partial, + ): ClientReadableStream; +} + +export const FullnodeDataClient = makeGenericClientConstructor( + FullnodeDataService, + "aptos.internal.fullnode.v1.FullnodeData", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): FullnodeDataClient; + service: typeof FullnodeDataService; +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/remote_executor/v1/network_msg.ts b/protos/typescript/src/aptos/remote_executor/v1/network_msg.ts new file mode 100644 index 00000000000000..3bb838d05bfcef --- /dev/null +++ b/protos/typescript/src/aptos/remote_executor/v1/network_msg.ts @@ -0,0 +1,280 @@ +/* eslint-disable */ +import { ChannelCredentials, Client, makeGenericClientConstructor, Metadata } from "@grpc/grpc-js"; +import type { + CallOptions, + ClientOptions, + ClientUnaryCall, + handleUnaryCall, + ServiceError, + UntypedServiceImplementation, +} from "@grpc/grpc-js"; +import _m0 from "protobufjs/minimal"; + +export interface NetworkMessage { + message?: Uint8Array | undefined; + messageType?: string | undefined; +} + +export interface Empty { +} + +function createBaseNetworkMessage(): NetworkMessage { + return { message: new Uint8Array(0), messageType: "" }; +} + +export const NetworkMessage = { + encode(message: NetworkMessage, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.message !== undefined && message.message.length !== 0) { + writer.uint32(10).bytes(message.message); + } + if (message.messageType !== undefined && message.messageType !== "") { + writer.uint32(18).string(message.messageType); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): NetworkMessage { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseNetworkMessage(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.message = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.messageType = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [NetworkMessage.encode(p).finish()]; + } + } else { + yield* [NetworkMessage.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [NetworkMessage.decode(p)]; + } + } else { + yield* [NetworkMessage.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): NetworkMessage { + return { + message: isSet(object.message) ? bytesFromBase64(object.message) : new Uint8Array(0), + messageType: isSet(object.messageType) ? globalThis.String(object.messageType) : "", + }; + }, + + toJSON(message: NetworkMessage): unknown { + const obj: any = {}; + if (message.message !== undefined && message.message.length !== 0) { + obj.message = base64FromBytes(message.message); + } + if (message.messageType !== undefined && message.messageType !== "") { + obj.messageType = message.messageType; + } + return obj; + }, + + create(base?: DeepPartial): NetworkMessage { + return NetworkMessage.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): NetworkMessage { + const message = createBaseNetworkMessage(); + message.message = object.message ?? new Uint8Array(0); + message.messageType = object.messageType ?? ""; + return message; + }, +}; + +function createBaseEmpty(): Empty { + return {}; +} + +export const Empty = { + encode(_: Empty, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Empty { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEmpty(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Empty.encode(p).finish()]; + } + } else { + yield* [Empty.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Empty.decode(p)]; + } + } else { + yield* [Empty.decode(pkt as any)]; + } + } + }, + + fromJSON(_: any): Empty { + return {}; + }, + + toJSON(_: Empty): unknown { + const obj: any = {}; + return obj; + }, + + create(base?: DeepPartial): Empty { + return Empty.fromPartial(base ?? {}); + }, + fromPartial(_: DeepPartial): Empty { + const message = createBaseEmpty(); + return message; + }, +}; + +export type NetworkMessageServiceService = typeof NetworkMessageServiceService; +export const NetworkMessageServiceService = { + simpleMsgExchange: { + path: "/aptos.remote_executor.v1.NetworkMessageService/SimpleMsgExchange", + requestStream: false, + responseStream: false, + requestSerialize: (value: NetworkMessage) => Buffer.from(NetworkMessage.encode(value).finish()), + requestDeserialize: (value: Buffer) => NetworkMessage.decode(value), + responseSerialize: (value: Empty) => Buffer.from(Empty.encode(value).finish()), + responseDeserialize: (value: Buffer) => Empty.decode(value), + }, +} as const; + +export interface NetworkMessageServiceServer extends UntypedServiceImplementation { + simpleMsgExchange: handleUnaryCall; +} + +export interface NetworkMessageServiceClient extends Client { + simpleMsgExchange( + request: NetworkMessage, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + simpleMsgExchange( + request: NetworkMessage, + metadata: Metadata, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; + simpleMsgExchange( + request: NetworkMessage, + metadata: Metadata, + options: Partial, + callback: (error: ServiceError | null, response: Empty) => void, + ): ClientUnaryCall; +} + +export const NetworkMessageServiceClient = makeGenericClientConstructor( + NetworkMessageServiceService, + "aptos.remote_executor.v1.NetworkMessageService", +) as unknown as { + new (address: string, credentials: ChannelCredentials, options?: Partial): NetworkMessageServiceClient; + service: typeof NetworkMessageServiceService; +}; + +function bytesFromBase64(b64: string): Uint8Array { + if (globalThis.Buffer) { + return Uint8Array.from(globalThis.Buffer.from(b64, "base64")); + } else { + const bin = globalThis.atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; + } +} + +function base64FromBytes(arr: Uint8Array): string { + if (globalThis.Buffer) { + return globalThis.Buffer.from(arr).toString("base64"); + } else { + const bin: string[] = []; + arr.forEach((byte) => { + bin.push(globalThis.String.fromCharCode(byte)); + }); + return globalThis.btoa(bin.join("")); + } +} + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/transaction/v1/transaction.ts b/protos/typescript/src/aptos/transaction/v1/transaction.ts new file mode 100644 index 00000000000000..06d44732e30ddd --- /dev/null +++ b/protos/typescript/src/aptos/transaction/v1/transaction.ts @@ -0,0 +1,8439 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; +import { Timestamp } from "../../util/timestamp/timestamp"; + +export enum MoveTypes { + MOVE_TYPES_UNSPECIFIED = 0, + MOVE_TYPES_BOOL = 1, + MOVE_TYPES_U8 = 2, + MOVE_TYPES_U16 = 12, + MOVE_TYPES_U32 = 13, + MOVE_TYPES_U64 = 3, + MOVE_TYPES_U128 = 4, + MOVE_TYPES_U256 = 14, + MOVE_TYPES_ADDRESS = 5, + MOVE_TYPES_SIGNER = 6, + /** MOVE_TYPES_VECTOR - `{ items: Box }`, */ + MOVE_TYPES_VECTOR = 7, + /** MOVE_TYPES_STRUCT - `(MoveStructTag)`, */ + MOVE_TYPES_STRUCT = 8, + /** MOVE_TYPES_GENERIC_TYPE_PARAM - `{ index: u16 }``, */ + MOVE_TYPES_GENERIC_TYPE_PARAM = 9, + /** MOVE_TYPES_REFERENCE - `{ mutable: bool, to: Box }`, */ + MOVE_TYPES_REFERENCE = 10, + /** MOVE_TYPES_UNPARSABLE - `(String)`, */ + MOVE_TYPES_UNPARSABLE = 11, + UNRECOGNIZED = -1, +} + +export function moveTypesFromJSON(object: any): MoveTypes { + switch (object) { + case 0: + case "MOVE_TYPES_UNSPECIFIED": + return MoveTypes.MOVE_TYPES_UNSPECIFIED; + case 1: + case "MOVE_TYPES_BOOL": + return MoveTypes.MOVE_TYPES_BOOL; + case 2: + case "MOVE_TYPES_U8": + return MoveTypes.MOVE_TYPES_U8; + case 12: + case "MOVE_TYPES_U16": + return MoveTypes.MOVE_TYPES_U16; + case 13: + case "MOVE_TYPES_U32": + return MoveTypes.MOVE_TYPES_U32; + case 3: + case "MOVE_TYPES_U64": + return MoveTypes.MOVE_TYPES_U64; + case 4: + case "MOVE_TYPES_U128": + return MoveTypes.MOVE_TYPES_U128; + case 14: + case "MOVE_TYPES_U256": + return MoveTypes.MOVE_TYPES_U256; + case 5: + case "MOVE_TYPES_ADDRESS": + return MoveTypes.MOVE_TYPES_ADDRESS; + case 6: + case "MOVE_TYPES_SIGNER": + return MoveTypes.MOVE_TYPES_SIGNER; + case 7: + case "MOVE_TYPES_VECTOR": + return MoveTypes.MOVE_TYPES_VECTOR; + case 8: + case "MOVE_TYPES_STRUCT": + return MoveTypes.MOVE_TYPES_STRUCT; + case 9: + case "MOVE_TYPES_GENERIC_TYPE_PARAM": + return MoveTypes.MOVE_TYPES_GENERIC_TYPE_PARAM; + case 10: + case "MOVE_TYPES_REFERENCE": + return MoveTypes.MOVE_TYPES_REFERENCE; + case 11: + case "MOVE_TYPES_UNPARSABLE": + return MoveTypes.MOVE_TYPES_UNPARSABLE; + case -1: + case "UNRECOGNIZED": + default: + return MoveTypes.UNRECOGNIZED; + } +} + +export function moveTypesToJSON(object: MoveTypes): string { + switch (object) { + case MoveTypes.MOVE_TYPES_UNSPECIFIED: + return "MOVE_TYPES_UNSPECIFIED"; + case MoveTypes.MOVE_TYPES_BOOL: + return "MOVE_TYPES_BOOL"; + case MoveTypes.MOVE_TYPES_U8: + return "MOVE_TYPES_U8"; + case MoveTypes.MOVE_TYPES_U16: + return "MOVE_TYPES_U16"; + case MoveTypes.MOVE_TYPES_U32: + return "MOVE_TYPES_U32"; + case MoveTypes.MOVE_TYPES_U64: + return "MOVE_TYPES_U64"; + case MoveTypes.MOVE_TYPES_U128: + return "MOVE_TYPES_U128"; + case MoveTypes.MOVE_TYPES_U256: + return "MOVE_TYPES_U256"; + case MoveTypes.MOVE_TYPES_ADDRESS: + return "MOVE_TYPES_ADDRESS"; + case MoveTypes.MOVE_TYPES_SIGNER: + return "MOVE_TYPES_SIGNER"; + case MoveTypes.MOVE_TYPES_VECTOR: + return "MOVE_TYPES_VECTOR"; + case MoveTypes.MOVE_TYPES_STRUCT: + return "MOVE_TYPES_STRUCT"; + case MoveTypes.MOVE_TYPES_GENERIC_TYPE_PARAM: + return "MOVE_TYPES_GENERIC_TYPE_PARAM"; + case MoveTypes.MOVE_TYPES_REFERENCE: + return "MOVE_TYPES_REFERENCE"; + case MoveTypes.MOVE_TYPES_UNPARSABLE: + return "MOVE_TYPES_UNPARSABLE"; + case MoveTypes.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export enum MoveAbility { + MOVE_ABILITY_UNSPECIFIED = 0, + MOVE_ABILITY_COPY = 1, + MOVE_ABILITY_DROP = 2, + MOVE_ABILITY_STORE = 3, + MOVE_ABILITY_KEY = 4, + UNRECOGNIZED = -1, +} + +export function moveAbilityFromJSON(object: any): MoveAbility { + switch (object) { + case 0: + case "MOVE_ABILITY_UNSPECIFIED": + return MoveAbility.MOVE_ABILITY_UNSPECIFIED; + case 1: + case "MOVE_ABILITY_COPY": + return MoveAbility.MOVE_ABILITY_COPY; + case 2: + case "MOVE_ABILITY_DROP": + return MoveAbility.MOVE_ABILITY_DROP; + case 3: + case "MOVE_ABILITY_STORE": + return MoveAbility.MOVE_ABILITY_STORE; + case 4: + case "MOVE_ABILITY_KEY": + return MoveAbility.MOVE_ABILITY_KEY; + case -1: + case "UNRECOGNIZED": + default: + return MoveAbility.UNRECOGNIZED; + } +} + +export function moveAbilityToJSON(object: MoveAbility): string { + switch (object) { + case MoveAbility.MOVE_ABILITY_UNSPECIFIED: + return "MOVE_ABILITY_UNSPECIFIED"; + case MoveAbility.MOVE_ABILITY_COPY: + return "MOVE_ABILITY_COPY"; + case MoveAbility.MOVE_ABILITY_DROP: + return "MOVE_ABILITY_DROP"; + case MoveAbility.MOVE_ABILITY_STORE: + return "MOVE_ABILITY_STORE"; + case MoveAbility.MOVE_ABILITY_KEY: + return "MOVE_ABILITY_KEY"; + case MoveAbility.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +/** + * A block on Aptos holds transactions in chronological order (ordered by a transactions monotonically increasing `version` field) + * All blocks start with a `BlockMetadataTransaction`, and are followed by zero or more transactions. + * The next `BlockMetadataTransaction` denotes the end of the current block, and the start of the next one. + * + * The Block `height` is a strictly monotonically increasing count of the number of blocks, + * and there will never be a gap in the numbers. It is also a unique identifier: there will never be two blocks with + * the same `height`. + * + * The Genesis Transaction (version 0) is contained within the first block, which has a height of `0` + */ +export interface Block { + /** + * Timestamp represents the timestamp of the `BlockMetadataTransaction` (or `GenesisTransaction` for the genesis block) + * and every transaction in the `transactions` will have the same `timestamp` as the block. + */ + timestamp?: + | Timestamp + | undefined; + /** Height represents the block number and ultimately, is the count of `BlockMetadataTransaction` that happened on the chain. */ + height?: + | bigint + | undefined; + /** + * Transactions holds all transactions that happened in the Block, which is transactions that happened starting with (and including) + * a `BlockMetadataTransaction`, and every other transaction up to (but excluding) the next `BlockMetadataTransaction`. + */ + transactions?: + | Transaction[] + | undefined; + /** Chain ID informs us which chain we're trying to index, this is important to ensure that we're not mixing chains within a single pipeline. */ + chainId?: number | undefined; +} + +/** + * Transaction as it happened on the chain, there are 4 types of transactions: + * - User Transaction: a user initiated transaction to interact with the chain + * - Block Metadata Transaction: transactions generated by the chain to group together transactions forming a "block" + * - State Checkpoint Transaction: transactions generated by the chain so when validator agreed on a particular global state + * - Genesis Transaction: the first transaction of the chain, with all core contract and validator information baked in + */ +export interface Transaction { + timestamp?: Timestamp | undefined; + version?: bigint | undefined; + info?: TransactionInfo | undefined; + epoch?: bigint | undefined; + blockHeight?: bigint | undefined; + type?: Transaction_TransactionType | undefined; + blockMetadata?: BlockMetadataTransaction | undefined; + genesis?: GenesisTransaction | undefined; + stateCheckpoint?: StateCheckpointTransaction | undefined; + user?: UserTransaction | undefined; +} + +export enum Transaction_TransactionType { + TRANSACTION_TYPE_UNSPECIFIED = 0, + TRANSACTION_TYPE_GENESIS = 1, + TRANSACTION_TYPE_BLOCK_METADATA = 2, + TRANSACTION_TYPE_STATE_CHECKPOINT = 3, + TRANSACTION_TYPE_USER = 4, + UNRECOGNIZED = -1, +} + +export function transaction_TransactionTypeFromJSON(object: any): Transaction_TransactionType { + switch (object) { + case 0: + case "TRANSACTION_TYPE_UNSPECIFIED": + return Transaction_TransactionType.TRANSACTION_TYPE_UNSPECIFIED; + case 1: + case "TRANSACTION_TYPE_GENESIS": + return Transaction_TransactionType.TRANSACTION_TYPE_GENESIS; + case 2: + case "TRANSACTION_TYPE_BLOCK_METADATA": + return Transaction_TransactionType.TRANSACTION_TYPE_BLOCK_METADATA; + case 3: + case "TRANSACTION_TYPE_STATE_CHECKPOINT": + return Transaction_TransactionType.TRANSACTION_TYPE_STATE_CHECKPOINT; + case 4: + case "TRANSACTION_TYPE_USER": + return Transaction_TransactionType.TRANSACTION_TYPE_USER; + case -1: + case "UNRECOGNIZED": + default: + return Transaction_TransactionType.UNRECOGNIZED; + } +} + +export function transaction_TransactionTypeToJSON(object: Transaction_TransactionType): string { + switch (object) { + case Transaction_TransactionType.TRANSACTION_TYPE_UNSPECIFIED: + return "TRANSACTION_TYPE_UNSPECIFIED"; + case Transaction_TransactionType.TRANSACTION_TYPE_GENESIS: + return "TRANSACTION_TYPE_GENESIS"; + case Transaction_TransactionType.TRANSACTION_TYPE_BLOCK_METADATA: + return "TRANSACTION_TYPE_BLOCK_METADATA"; + case Transaction_TransactionType.TRANSACTION_TYPE_STATE_CHECKPOINT: + return "TRANSACTION_TYPE_STATE_CHECKPOINT"; + case Transaction_TransactionType.TRANSACTION_TYPE_USER: + return "TRANSACTION_TYPE_USER"; + case Transaction_TransactionType.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface BlockMetadataTransaction { + id?: string | undefined; + round?: bigint | undefined; + events?: Event[] | undefined; + previousBlockVotesBitvec?: Uint8Array | undefined; + proposer?: string | undefined; + failedProposerIndices?: number[] | undefined; +} + +export interface GenesisTransaction { + payload?: WriteSet | undefined; + events?: Event[] | undefined; +} + +export interface StateCheckpointTransaction { +} + +export interface UserTransaction { + request?: UserTransactionRequest | undefined; + events?: Event[] | undefined; +} + +export interface Event { + key?: EventKey | undefined; + sequenceNumber?: bigint | undefined; + type?: MoveType | undefined; + typeStr?: string | undefined; + data?: string | undefined; +} + +export interface TransactionInfo { + hash?: Uint8Array | undefined; + stateChangeHash?: Uint8Array | undefined; + eventRootHash?: Uint8Array | undefined; + stateCheckpointHash?: Uint8Array | undefined; + gasUsed?: bigint | undefined; + success?: boolean | undefined; + vmStatus?: string | undefined; + accumulatorRootHash?: Uint8Array | undefined; + changes?: WriteSetChange[] | undefined; +} + +export interface EventKey { + creationNumber?: bigint | undefined; + accountAddress?: string | undefined; +} + +export interface UserTransactionRequest { + sender?: string | undefined; + sequenceNumber?: bigint | undefined; + maxGasAmount?: bigint | undefined; + gasUnitPrice?: bigint | undefined; + expirationTimestampSecs?: Timestamp | undefined; + payload?: TransactionPayload | undefined; + signature?: Signature | undefined; +} + +export interface WriteSet { + writeSetType?: WriteSet_WriteSetType | undefined; + scriptWriteSet?: ScriptWriteSet | undefined; + directWriteSet?: DirectWriteSet | undefined; +} + +export enum WriteSet_WriteSetType { + WRITE_SET_TYPE_UNSPECIFIED = 0, + WRITE_SET_TYPE_SCRIPT_WRITE_SET = 1, + WRITE_SET_TYPE_DIRECT_WRITE_SET = 2, + UNRECOGNIZED = -1, +} + +export function writeSet_WriteSetTypeFromJSON(object: any): WriteSet_WriteSetType { + switch (object) { + case 0: + case "WRITE_SET_TYPE_UNSPECIFIED": + return WriteSet_WriteSetType.WRITE_SET_TYPE_UNSPECIFIED; + case 1: + case "WRITE_SET_TYPE_SCRIPT_WRITE_SET": + return WriteSet_WriteSetType.WRITE_SET_TYPE_SCRIPT_WRITE_SET; + case 2: + case "WRITE_SET_TYPE_DIRECT_WRITE_SET": + return WriteSet_WriteSetType.WRITE_SET_TYPE_DIRECT_WRITE_SET; + case -1: + case "UNRECOGNIZED": + default: + return WriteSet_WriteSetType.UNRECOGNIZED; + } +} + +export function writeSet_WriteSetTypeToJSON(object: WriteSet_WriteSetType): string { + switch (object) { + case WriteSet_WriteSetType.WRITE_SET_TYPE_UNSPECIFIED: + return "WRITE_SET_TYPE_UNSPECIFIED"; + case WriteSet_WriteSetType.WRITE_SET_TYPE_SCRIPT_WRITE_SET: + return "WRITE_SET_TYPE_SCRIPT_WRITE_SET"; + case WriteSet_WriteSetType.WRITE_SET_TYPE_DIRECT_WRITE_SET: + return "WRITE_SET_TYPE_DIRECT_WRITE_SET"; + case WriteSet_WriteSetType.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface ScriptWriteSet { + executeAs?: string | undefined; + script?: ScriptPayload | undefined; +} + +export interface DirectWriteSet { + writeSetChange?: WriteSetChange[] | undefined; + events?: Event[] | undefined; +} + +export interface WriteSetChange { + type?: WriteSetChange_Type | undefined; + deleteModule?: DeleteModule | undefined; + deleteResource?: DeleteResource | undefined; + deleteTableItem?: DeleteTableItem | undefined; + writeModule?: WriteModule | undefined; + writeResource?: WriteResource | undefined; + writeTableItem?: WriteTableItem | undefined; +} + +export enum WriteSetChange_Type { + TYPE_UNSPECIFIED = 0, + TYPE_DELETE_MODULE = 1, + TYPE_DELETE_RESOURCE = 2, + TYPE_DELETE_TABLE_ITEM = 3, + TYPE_WRITE_MODULE = 4, + TYPE_WRITE_RESOURCE = 5, + TYPE_WRITE_TABLE_ITEM = 6, + UNRECOGNIZED = -1, +} + +export function writeSetChange_TypeFromJSON(object: any): WriteSetChange_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return WriteSetChange_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_DELETE_MODULE": + return WriteSetChange_Type.TYPE_DELETE_MODULE; + case 2: + case "TYPE_DELETE_RESOURCE": + return WriteSetChange_Type.TYPE_DELETE_RESOURCE; + case 3: + case "TYPE_DELETE_TABLE_ITEM": + return WriteSetChange_Type.TYPE_DELETE_TABLE_ITEM; + case 4: + case "TYPE_WRITE_MODULE": + return WriteSetChange_Type.TYPE_WRITE_MODULE; + case 5: + case "TYPE_WRITE_RESOURCE": + return WriteSetChange_Type.TYPE_WRITE_RESOURCE; + case 6: + case "TYPE_WRITE_TABLE_ITEM": + return WriteSetChange_Type.TYPE_WRITE_TABLE_ITEM; + case -1: + case "UNRECOGNIZED": + default: + return WriteSetChange_Type.UNRECOGNIZED; + } +} + +export function writeSetChange_TypeToJSON(object: WriteSetChange_Type): string { + switch (object) { + case WriteSetChange_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case WriteSetChange_Type.TYPE_DELETE_MODULE: + return "TYPE_DELETE_MODULE"; + case WriteSetChange_Type.TYPE_DELETE_RESOURCE: + return "TYPE_DELETE_RESOURCE"; + case WriteSetChange_Type.TYPE_DELETE_TABLE_ITEM: + return "TYPE_DELETE_TABLE_ITEM"; + case WriteSetChange_Type.TYPE_WRITE_MODULE: + return "TYPE_WRITE_MODULE"; + case WriteSetChange_Type.TYPE_WRITE_RESOURCE: + return "TYPE_WRITE_RESOURCE"; + case WriteSetChange_Type.TYPE_WRITE_TABLE_ITEM: + return "TYPE_WRITE_TABLE_ITEM"; + case WriteSetChange_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface DeleteModule { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + module?: MoveModuleId | undefined; +} + +export interface DeleteResource { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + type?: MoveStructTag | undefined; + typeStr?: string | undefined; +} + +export interface DeleteTableItem { + stateKeyHash?: Uint8Array | undefined; + handle?: string | undefined; + key?: string | undefined; + data?: DeleteTableData | undefined; +} + +export interface DeleteTableData { + key?: string | undefined; + keyType?: string | undefined; +} + +export interface WriteModule { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + data?: MoveModuleBytecode | undefined; +} + +export interface WriteResource { + address?: string | undefined; + stateKeyHash?: Uint8Array | undefined; + type?: MoveStructTag | undefined; + typeStr?: string | undefined; + data?: string | undefined; +} + +export interface WriteTableData { + key?: string | undefined; + keyType?: string | undefined; + value?: string | undefined; + valueType?: string | undefined; +} + +export interface WriteTableItem { + stateKeyHash?: Uint8Array | undefined; + handle?: string | undefined; + key?: string | undefined; + data?: WriteTableData | undefined; +} + +export interface TransactionPayload { + type?: TransactionPayload_Type | undefined; + entryFunctionPayload?: EntryFunctionPayload | undefined; + scriptPayload?: ScriptPayload | undefined; + moduleBundlePayload?: ModuleBundlePayload | undefined; + writeSetPayload?: WriteSetPayload | undefined; + multisigPayload?: MultisigPayload | undefined; +} + +export enum TransactionPayload_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ENTRY_FUNCTION_PAYLOAD = 1, + TYPE_SCRIPT_PAYLOAD = 2, + TYPE_MODULE_BUNDLE_PAYLOAD = 3, + TYPE_WRITE_SET_PAYLOAD = 4, + TYPE_MULTISIG_PAYLOAD = 5, + UNRECOGNIZED = -1, +} + +export function transactionPayload_TypeFromJSON(object: any): TransactionPayload_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return TransactionPayload_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ENTRY_FUNCTION_PAYLOAD": + return TransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD; + case 2: + case "TYPE_SCRIPT_PAYLOAD": + return TransactionPayload_Type.TYPE_SCRIPT_PAYLOAD; + case 3: + case "TYPE_MODULE_BUNDLE_PAYLOAD": + return TransactionPayload_Type.TYPE_MODULE_BUNDLE_PAYLOAD; + case 4: + case "TYPE_WRITE_SET_PAYLOAD": + return TransactionPayload_Type.TYPE_WRITE_SET_PAYLOAD; + case 5: + case "TYPE_MULTISIG_PAYLOAD": + return TransactionPayload_Type.TYPE_MULTISIG_PAYLOAD; + case -1: + case "UNRECOGNIZED": + default: + return TransactionPayload_Type.UNRECOGNIZED; + } +} + +export function transactionPayload_TypeToJSON(object: TransactionPayload_Type): string { + switch (object) { + case TransactionPayload_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case TransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD: + return "TYPE_ENTRY_FUNCTION_PAYLOAD"; + case TransactionPayload_Type.TYPE_SCRIPT_PAYLOAD: + return "TYPE_SCRIPT_PAYLOAD"; + case TransactionPayload_Type.TYPE_MODULE_BUNDLE_PAYLOAD: + return "TYPE_MODULE_BUNDLE_PAYLOAD"; + case TransactionPayload_Type.TYPE_WRITE_SET_PAYLOAD: + return "TYPE_WRITE_SET_PAYLOAD"; + case TransactionPayload_Type.TYPE_MULTISIG_PAYLOAD: + return "TYPE_MULTISIG_PAYLOAD"; + case TransactionPayload_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface EntryFunctionPayload { + function?: EntryFunctionId | undefined; + typeArguments?: MoveType[] | undefined; + arguments?: string[] | undefined; + entryFunctionIdStr?: string | undefined; +} + +export interface MoveScriptBytecode { + bytecode?: Uint8Array | undefined; + abi?: MoveFunction | undefined; +} + +export interface ScriptPayload { + code?: MoveScriptBytecode | undefined; + typeArguments?: MoveType[] | undefined; + arguments?: string[] | undefined; +} + +export interface MultisigPayload { + multisigAddress?: string | undefined; + transactionPayload?: MultisigTransactionPayload | undefined; +} + +export interface MultisigTransactionPayload { + type?: MultisigTransactionPayload_Type | undefined; + entryFunctionPayload?: EntryFunctionPayload | undefined; +} + +export enum MultisigTransactionPayload_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ENTRY_FUNCTION_PAYLOAD = 1, + UNRECOGNIZED = -1, +} + +export function multisigTransactionPayload_TypeFromJSON(object: any): MultisigTransactionPayload_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return MultisigTransactionPayload_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ENTRY_FUNCTION_PAYLOAD": + return MultisigTransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD; + case -1: + case "UNRECOGNIZED": + default: + return MultisigTransactionPayload_Type.UNRECOGNIZED; + } +} + +export function multisigTransactionPayload_TypeToJSON(object: MultisigTransactionPayload_Type): string { + switch (object) { + case MultisigTransactionPayload_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case MultisigTransactionPayload_Type.TYPE_ENTRY_FUNCTION_PAYLOAD: + return "TYPE_ENTRY_FUNCTION_PAYLOAD"; + case MultisigTransactionPayload_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface ModuleBundlePayload { + modules?: MoveModuleBytecode[] | undefined; +} + +export interface MoveModuleBytecode { + bytecode?: Uint8Array | undefined; + abi?: MoveModule | undefined; +} + +export interface MoveModule { + address?: string | undefined; + name?: string | undefined; + friends?: MoveModuleId[] | undefined; + exposedFunctions?: MoveFunction[] | undefined; + structs?: MoveStruct[] | undefined; +} + +export interface MoveFunction { + name?: string | undefined; + visibility?: MoveFunction_Visibility | undefined; + isEntry?: boolean | undefined; + genericTypeParams?: MoveFunctionGenericTypeParam[] | undefined; + params?: MoveType[] | undefined; + return?: MoveType[] | undefined; +} + +export enum MoveFunction_Visibility { + VISIBILITY_UNSPECIFIED = 0, + VISIBILITY_PRIVATE = 1, + VISIBILITY_PUBLIC = 2, + VISIBILITY_FRIEND = 3, + UNRECOGNIZED = -1, +} + +export function moveFunction_VisibilityFromJSON(object: any): MoveFunction_Visibility { + switch (object) { + case 0: + case "VISIBILITY_UNSPECIFIED": + return MoveFunction_Visibility.VISIBILITY_UNSPECIFIED; + case 1: + case "VISIBILITY_PRIVATE": + return MoveFunction_Visibility.VISIBILITY_PRIVATE; + case 2: + case "VISIBILITY_PUBLIC": + return MoveFunction_Visibility.VISIBILITY_PUBLIC; + case 3: + case "VISIBILITY_FRIEND": + return MoveFunction_Visibility.VISIBILITY_FRIEND; + case -1: + case "UNRECOGNIZED": + default: + return MoveFunction_Visibility.UNRECOGNIZED; + } +} + +export function moveFunction_VisibilityToJSON(object: MoveFunction_Visibility): string { + switch (object) { + case MoveFunction_Visibility.VISIBILITY_UNSPECIFIED: + return "VISIBILITY_UNSPECIFIED"; + case MoveFunction_Visibility.VISIBILITY_PRIVATE: + return "VISIBILITY_PRIVATE"; + case MoveFunction_Visibility.VISIBILITY_PUBLIC: + return "VISIBILITY_PUBLIC"; + case MoveFunction_Visibility.VISIBILITY_FRIEND: + return "VISIBILITY_FRIEND"; + case MoveFunction_Visibility.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface MoveStruct { + name?: string | undefined; + isNative?: boolean | undefined; + abilities?: MoveAbility[] | undefined; + genericTypeParams?: MoveStructGenericTypeParam[] | undefined; + fields?: MoveStructField[] | undefined; +} + +export interface MoveStructGenericTypeParam { + constraints?: MoveAbility[] | undefined; + isPhantom?: boolean | undefined; +} + +export interface MoveStructField { + name?: string | undefined; + type?: MoveType | undefined; +} + +export interface MoveFunctionGenericTypeParam { + constraints?: MoveAbility[] | undefined; +} + +export interface MoveType { + type?: MoveTypes | undefined; + vector?: MoveType | undefined; + struct?: MoveStructTag | undefined; + genericTypeParamIndex?: number | undefined; + reference?: MoveType_ReferenceType | undefined; + unparsable?: string | undefined; +} + +export interface MoveType_ReferenceType { + mutable?: boolean | undefined; + to?: MoveType | undefined; +} + +export interface WriteSetPayload { + writeSet?: WriteSet | undefined; +} + +export interface EntryFunctionId { + module?: MoveModuleId | undefined; + name?: string | undefined; +} + +export interface MoveModuleId { + address?: string | undefined; + name?: string | undefined; +} + +export interface MoveStructTag { + address?: string | undefined; + module?: string | undefined; + name?: string | undefined; + genericTypeParams?: MoveType[] | undefined; +} + +export interface Signature { + type?: Signature_Type | undefined; + ed25519?: Ed25519Signature | undefined; + multiEd25519?: MultiEd25519Signature | undefined; + multiAgent?: MultiAgentSignature | undefined; + feePayer?: FeePayerSignature | undefined; + singleSender?: SingleSender | undefined; +} + +export enum Signature_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_MULTI_ED25519 = 2, + TYPE_MULTI_AGENT = 3, + TYPE_FEE_PAYER = 4, + TYPE_SINGLE_SENDER = 6, + UNRECOGNIZED = -1, +} + +export function signature_TypeFromJSON(object: any): Signature_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return Signature_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return Signature_Type.TYPE_ED25519; + case 2: + case "TYPE_MULTI_ED25519": + return Signature_Type.TYPE_MULTI_ED25519; + case 3: + case "TYPE_MULTI_AGENT": + return Signature_Type.TYPE_MULTI_AGENT; + case 4: + case "TYPE_FEE_PAYER": + return Signature_Type.TYPE_FEE_PAYER; + case 6: + case "TYPE_SINGLE_SENDER": + return Signature_Type.TYPE_SINGLE_SENDER; + case -1: + case "UNRECOGNIZED": + default: + return Signature_Type.UNRECOGNIZED; + } +} + +export function signature_TypeToJSON(object: Signature_Type): string { + switch (object) { + case Signature_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case Signature_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case Signature_Type.TYPE_MULTI_ED25519: + return "TYPE_MULTI_ED25519"; + case Signature_Type.TYPE_MULTI_AGENT: + return "TYPE_MULTI_AGENT"; + case Signature_Type.TYPE_FEE_PAYER: + return "TYPE_FEE_PAYER"; + case Signature_Type.TYPE_SINGLE_SENDER: + return "TYPE_SINGLE_SENDER"; + case Signature_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface Ed25519Signature { + publicKey?: Uint8Array | undefined; + signature?: Uint8Array | undefined; +} + +export interface MultiEd25519Signature { + publicKeys?: Uint8Array[] | undefined; + signatures?: Uint8Array[] | undefined; + threshold?: number | undefined; + publicKeyIndices?: number[] | undefined; +} + +export interface MultiAgentSignature { + sender?: AccountSignature | undefined; + secondarySignerAddresses?: string[] | undefined; + secondarySigners?: AccountSignature[] | undefined; +} + +export interface FeePayerSignature { + sender?: AccountSignature | undefined; + secondarySignerAddresses?: string[] | undefined; + secondarySigners?: AccountSignature[] | undefined; + feePayerAddress?: string | undefined; + feePayerSigner?: AccountSignature | undefined; +} + +export interface AnyPublicKey { + type?: AnyPublicKey_Type | undefined; + publicKey?: Uint8Array | undefined; +} + +export enum AnyPublicKey_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_SECP256K1_ECDSA = 2, + UNRECOGNIZED = -1, +} + +export function anyPublicKey_TypeFromJSON(object: any): AnyPublicKey_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return AnyPublicKey_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return AnyPublicKey_Type.TYPE_ED25519; + case 2: + case "TYPE_SECP256K1_ECDSA": + return AnyPublicKey_Type.TYPE_SECP256K1_ECDSA; + case -1: + case "UNRECOGNIZED": + default: + return AnyPublicKey_Type.UNRECOGNIZED; + } +} + +export function anyPublicKey_TypeToJSON(object: AnyPublicKey_Type): string { + switch (object) { + case AnyPublicKey_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case AnyPublicKey_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case AnyPublicKey_Type.TYPE_SECP256K1_ECDSA: + return "TYPE_SECP256K1_ECDSA"; + case AnyPublicKey_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface AnySignature { + type?: AnySignature_Type | undefined; + signature?: Uint8Array | undefined; +} + +export enum AnySignature_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_SECP256K1_ECDSA = 2, + UNRECOGNIZED = -1, +} + +export function anySignature_TypeFromJSON(object: any): AnySignature_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return AnySignature_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return AnySignature_Type.TYPE_ED25519; + case 2: + case "TYPE_SECP256K1_ECDSA": + return AnySignature_Type.TYPE_SECP256K1_ECDSA; + case -1: + case "UNRECOGNIZED": + default: + return AnySignature_Type.UNRECOGNIZED; + } +} + +export function anySignature_TypeToJSON(object: AnySignature_Type): string { + switch (object) { + case AnySignature_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case AnySignature_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case AnySignature_Type.TYPE_SECP256K1_ECDSA: + return "TYPE_SECP256K1_ECDSA"; + case AnySignature_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +export interface SingleKeySignature { + publicKey?: AnyPublicKey | undefined; + signature?: AnySignature | undefined; +} + +export interface IndexedSignature { + index?: number | undefined; + signature?: AnySignature | undefined; +} + +export interface MultiKeySignature { + publicKeys?: AnyPublicKey[] | undefined; + signatures?: IndexedSignature[] | undefined; + signaturesRequired?: number | undefined; +} + +export interface SingleSender { + sender?: AccountSignature | undefined; +} + +export interface AccountSignature { + type?: AccountSignature_Type | undefined; + ed25519?: Ed25519Signature | undefined; + multiEd25519?: MultiEd25519Signature | undefined; + singleKeySignature?: SingleKeySignature | undefined; + multiKeySignature?: MultiKeySignature | undefined; +} + +export enum AccountSignature_Type { + TYPE_UNSPECIFIED = 0, + TYPE_ED25519 = 1, + TYPE_MULTI_ED25519 = 2, + TYPE_SINGLE_KEY = 4, + TYPE_MULTI_KEY = 5, + UNRECOGNIZED = -1, +} + +export function accountSignature_TypeFromJSON(object: any): AccountSignature_Type { + switch (object) { + case 0: + case "TYPE_UNSPECIFIED": + return AccountSignature_Type.TYPE_UNSPECIFIED; + case 1: + case "TYPE_ED25519": + return AccountSignature_Type.TYPE_ED25519; + case 2: + case "TYPE_MULTI_ED25519": + return AccountSignature_Type.TYPE_MULTI_ED25519; + case 4: + case "TYPE_SINGLE_KEY": + return AccountSignature_Type.TYPE_SINGLE_KEY; + case 5: + case "TYPE_MULTI_KEY": + return AccountSignature_Type.TYPE_MULTI_KEY; + case -1: + case "UNRECOGNIZED": + default: + return AccountSignature_Type.UNRECOGNIZED; + } +} + +export function accountSignature_TypeToJSON(object: AccountSignature_Type): string { + switch (object) { + case AccountSignature_Type.TYPE_UNSPECIFIED: + return "TYPE_UNSPECIFIED"; + case AccountSignature_Type.TYPE_ED25519: + return "TYPE_ED25519"; + case AccountSignature_Type.TYPE_MULTI_ED25519: + return "TYPE_MULTI_ED25519"; + case AccountSignature_Type.TYPE_SINGLE_KEY: + return "TYPE_SINGLE_KEY"; + case AccountSignature_Type.TYPE_MULTI_KEY: + return "TYPE_MULTI_KEY"; + case AccountSignature_Type.UNRECOGNIZED: + default: + return "UNRECOGNIZED"; + } +} + +function createBaseBlock(): Block { + return { timestamp: undefined, height: BigInt("0"), transactions: [], chainId: 0 }; +} + +export const Block = { + encode(message: Block, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.timestamp !== undefined) { + Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim(); + } + if (message.height !== undefined && message.height !== BigInt("0")) { + if (BigInt.asUintN(64, message.height) !== message.height) { + throw new Error("value provided for field message.height of type uint64 too large"); + } + writer.uint32(16).uint64(message.height.toString()); + } + if (message.transactions !== undefined && message.transactions.length !== 0) { + for (const v of message.transactions) { + Transaction.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.chainId !== undefined && message.chainId !== 0) { + writer.uint32(32).uint32(message.chainId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Block { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlock(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.timestamp = Timestamp.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.height = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.transactions!.push(Transaction.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.chainId = reader.uint32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Block.encode(p).finish()]; + } + } else { + yield* [Block.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Block.decode(p)]; + } + } else { + yield* [Block.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Block { + return { + timestamp: isSet(object.timestamp) ? Timestamp.fromJSON(object.timestamp) : undefined, + height: isSet(object.height) ? BigInt(object.height) : BigInt("0"), + transactions: globalThis.Array.isArray(object?.transactions) + ? object.transactions.map((e: any) => Transaction.fromJSON(e)) + : [], + chainId: isSet(object.chainId) ? globalThis.Number(object.chainId) : 0, + }; + }, + + toJSON(message: Block): unknown { + const obj: any = {}; + if (message.timestamp !== undefined) { + obj.timestamp = Timestamp.toJSON(message.timestamp); + } + if (message.height !== undefined && message.height !== BigInt("0")) { + obj.height = message.height.toString(); + } + if (message.transactions?.length) { + obj.transactions = message.transactions.map((e) => Transaction.toJSON(e)); + } + if (message.chainId !== undefined && message.chainId !== 0) { + obj.chainId = Math.round(message.chainId); + } + return obj; + }, + + create(base?: DeepPartial): Block { + return Block.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Block { + const message = createBaseBlock(); + message.timestamp = (object.timestamp !== undefined && object.timestamp !== null) + ? Timestamp.fromPartial(object.timestamp) + : undefined; + message.height = object.height ?? BigInt("0"); + message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || []; + message.chainId = object.chainId ?? 0; + return message; + }, +}; + +function createBaseTransaction(): Transaction { + return { + timestamp: undefined, + version: BigInt("0"), + info: undefined, + epoch: BigInt("0"), + blockHeight: BigInt("0"), + type: 0, + blockMetadata: undefined, + genesis: undefined, + stateCheckpoint: undefined, + user: undefined, + }; +} + +export const Transaction = { + encode(message: Transaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.timestamp !== undefined) { + Timestamp.encode(message.timestamp, writer.uint32(10).fork()).ldelim(); + } + if (message.version !== undefined && message.version !== BigInt("0")) { + if (BigInt.asUintN(64, message.version) !== message.version) { + throw new Error("value provided for field message.version of type uint64 too large"); + } + writer.uint32(16).uint64(message.version.toString()); + } + if (message.info !== undefined) { + TransactionInfo.encode(message.info, writer.uint32(26).fork()).ldelim(); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + if (BigInt.asUintN(64, message.epoch) !== message.epoch) { + throw new Error("value provided for field message.epoch of type uint64 too large"); + } + writer.uint32(32).uint64(message.epoch.toString()); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + if (BigInt.asUintN(64, message.blockHeight) !== message.blockHeight) { + throw new Error("value provided for field message.blockHeight of type uint64 too large"); + } + writer.uint32(40).uint64(message.blockHeight.toString()); + } + if (message.type !== undefined && message.type !== 0) { + writer.uint32(48).int32(message.type); + } + if (message.blockMetadata !== undefined) { + BlockMetadataTransaction.encode(message.blockMetadata, writer.uint32(58).fork()).ldelim(); + } + if (message.genesis !== undefined) { + GenesisTransaction.encode(message.genesis, writer.uint32(66).fork()).ldelim(); + } + if (message.stateCheckpoint !== undefined) { + StateCheckpointTransaction.encode(message.stateCheckpoint, writer.uint32(74).fork()).ldelim(); + } + if (message.user !== undefined) { + UserTransaction.encode(message.user, writer.uint32(82).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Transaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.timestamp = Timestamp.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.version = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.info = TransactionInfo.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.epoch = longToBigint(reader.uint64() as Long); + continue; + case 5: + if (tag !== 40) { + break; + } + + message.blockHeight = longToBigint(reader.uint64() as Long); + continue; + case 6: + if (tag !== 48) { + break; + } + + message.type = reader.int32() as any; + continue; + case 7: + if (tag !== 58) { + break; + } + + message.blockMetadata = BlockMetadataTransaction.decode(reader, reader.uint32()); + continue; + case 8: + if (tag !== 66) { + break; + } + + message.genesis = GenesisTransaction.decode(reader, reader.uint32()); + continue; + case 9: + if (tag !== 74) { + break; + } + + message.stateCheckpoint = StateCheckpointTransaction.decode(reader, reader.uint32()); + continue; + case 10: + if (tag !== 82) { + break; + } + + message.user = UserTransaction.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.encode(p).finish()]; + } + } else { + yield* [Transaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Transaction.decode(p)]; + } + } else { + yield* [Transaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Transaction { + return { + timestamp: isSet(object.timestamp) ? Timestamp.fromJSON(object.timestamp) : undefined, + version: isSet(object.version) ? BigInt(object.version) : BigInt("0"), + info: isSet(object.info) ? TransactionInfo.fromJSON(object.info) : undefined, + epoch: isSet(object.epoch) ? BigInt(object.epoch) : BigInt("0"), + blockHeight: isSet(object.blockHeight) ? BigInt(object.blockHeight) : BigInt("0"), + type: isSet(object.type) ? transaction_TransactionTypeFromJSON(object.type) : 0, + blockMetadata: isSet(object.blockMetadata) ? BlockMetadataTransaction.fromJSON(object.blockMetadata) : undefined, + genesis: isSet(object.genesis) ? GenesisTransaction.fromJSON(object.genesis) : undefined, + stateCheckpoint: isSet(object.stateCheckpoint) + ? StateCheckpointTransaction.fromJSON(object.stateCheckpoint) + : undefined, + user: isSet(object.user) ? UserTransaction.fromJSON(object.user) : undefined, + }; + }, + + toJSON(message: Transaction): unknown { + const obj: any = {}; + if (message.timestamp !== undefined) { + obj.timestamp = Timestamp.toJSON(message.timestamp); + } + if (message.version !== undefined && message.version !== BigInt("0")) { + obj.version = message.version.toString(); + } + if (message.info !== undefined) { + obj.info = TransactionInfo.toJSON(message.info); + } + if (message.epoch !== undefined && message.epoch !== BigInt("0")) { + obj.epoch = message.epoch.toString(); + } + if (message.blockHeight !== undefined && message.blockHeight !== BigInt("0")) { + obj.blockHeight = message.blockHeight.toString(); + } + if (message.type !== undefined && message.type !== 0) { + obj.type = transaction_TransactionTypeToJSON(message.type); + } + if (message.blockMetadata !== undefined) { + obj.blockMetadata = BlockMetadataTransaction.toJSON(message.blockMetadata); + } + if (message.genesis !== undefined) { + obj.genesis = GenesisTransaction.toJSON(message.genesis); + } + if (message.stateCheckpoint !== undefined) { + obj.stateCheckpoint = StateCheckpointTransaction.toJSON(message.stateCheckpoint); + } + if (message.user !== undefined) { + obj.user = UserTransaction.toJSON(message.user); + } + return obj; + }, + + create(base?: DeepPartial): Transaction { + return Transaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Transaction { + const message = createBaseTransaction(); + message.timestamp = (object.timestamp !== undefined && object.timestamp !== null) + ? Timestamp.fromPartial(object.timestamp) + : undefined; + message.version = object.version ?? BigInt("0"); + message.info = (object.info !== undefined && object.info !== null) + ? TransactionInfo.fromPartial(object.info) + : undefined; + message.epoch = object.epoch ?? BigInt("0"); + message.blockHeight = object.blockHeight ?? BigInt("0"); + message.type = object.type ?? 0; + message.blockMetadata = (object.blockMetadata !== undefined && object.blockMetadata !== null) + ? BlockMetadataTransaction.fromPartial(object.blockMetadata) + : undefined; + message.genesis = (object.genesis !== undefined && object.genesis !== null) + ? GenesisTransaction.fromPartial(object.genesis) + : undefined; + message.stateCheckpoint = (object.stateCheckpoint !== undefined && object.stateCheckpoint !== null) + ? StateCheckpointTransaction.fromPartial(object.stateCheckpoint) + : undefined; + message.user = (object.user !== undefined && object.user !== null) + ? UserTransaction.fromPartial(object.user) + : undefined; + return message; + }, +}; + +function createBaseBlockMetadataTransaction(): BlockMetadataTransaction { + return { + id: "", + round: BigInt("0"), + events: [], + previousBlockVotesBitvec: new Uint8Array(0), + proposer: "", + failedProposerIndices: [], + }; +} + +export const BlockMetadataTransaction = { + encode(message: BlockMetadataTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.id !== undefined && message.id !== "") { + writer.uint32(10).string(message.id); + } + if (message.round !== undefined && message.round !== BigInt("0")) { + if (BigInt.asUintN(64, message.round) !== message.round) { + throw new Error("value provided for field message.round of type uint64 too large"); + } + writer.uint32(16).uint64(message.round.toString()); + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.previousBlockVotesBitvec !== undefined && message.previousBlockVotesBitvec.length !== 0) { + writer.uint32(34).bytes(message.previousBlockVotesBitvec); + } + if (message.proposer !== undefined && message.proposer !== "") { + writer.uint32(42).string(message.proposer); + } + if (message.failedProposerIndices !== undefined && message.failedProposerIndices.length !== 0) { + writer.uint32(50).fork(); + for (const v of message.failedProposerIndices) { + writer.uint32(v); + } + writer.ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BlockMetadataTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlockMetadataTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.id = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.round = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.previousBlockVotesBitvec = reader.bytes(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.proposer = reader.string(); + continue; + case 6: + if (tag === 48) { + message.failedProposerIndices!.push(reader.uint32()); + + continue; + } + + if (tag === 50) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.failedProposerIndices!.push(reader.uint32()); + } + + continue; + } + + break; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [BlockMetadataTransaction.encode(p).finish()]; + } + } else { + yield* [BlockMetadataTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [BlockMetadataTransaction.decode(p)]; + } + } else { + yield* [BlockMetadataTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): BlockMetadataTransaction { + return { + id: isSet(object.id) ? globalThis.String(object.id) : "", + round: isSet(object.round) ? BigInt(object.round) : BigInt("0"), + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + previousBlockVotesBitvec: isSet(object.previousBlockVotesBitvec) + ? bytesFromBase64(object.previousBlockVotesBitvec) + : new Uint8Array(0), + proposer: isSet(object.proposer) ? globalThis.String(object.proposer) : "", + failedProposerIndices: globalThis.Array.isArray(object?.failedProposerIndices) + ? object.failedProposerIndices.map((e: any) => globalThis.Number(e)) + : [], + }; + }, + + toJSON(message: BlockMetadataTransaction): unknown { + const obj: any = {}; + if (message.id !== undefined && message.id !== "") { + obj.id = message.id; + } + if (message.round !== undefined && message.round !== BigInt("0")) { + obj.round = message.round.toString(); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + if (message.previousBlockVotesBitvec !== undefined && message.previousBlockVotesBitvec.length !== 0) { + obj.previousBlockVotesBitvec = base64FromBytes(message.previousBlockVotesBitvec); + } + if (message.proposer !== undefined && message.proposer !== "") { + obj.proposer = message.proposer; + } + if (message.failedProposerIndices?.length) { + obj.failedProposerIndices = message.failedProposerIndices.map((e) => Math.round(e)); + } + return obj; + }, + + create(base?: DeepPartial): BlockMetadataTransaction { + return BlockMetadataTransaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): BlockMetadataTransaction { + const message = createBaseBlockMetadataTransaction(); + message.id = object.id ?? ""; + message.round = object.round ?? BigInt("0"); + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + message.previousBlockVotesBitvec = object.previousBlockVotesBitvec ?? new Uint8Array(0); + message.proposer = object.proposer ?? ""; + message.failedProposerIndices = object.failedProposerIndices?.map((e) => e) || []; + return message; + }, +}; + +function createBaseGenesisTransaction(): GenesisTransaction { + return { payload: undefined, events: [] }; +} + +export const GenesisTransaction = { + encode(message: GenesisTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.payload !== undefined) { + WriteSet.encode(message.payload, writer.uint32(10).fork()).ldelim(); + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GenesisTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGenesisTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.payload = WriteSet.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GenesisTransaction.encode(p).finish()]; + } + } else { + yield* [GenesisTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [GenesisTransaction.decode(p)]; + } + } else { + yield* [GenesisTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): GenesisTransaction { + return { + payload: isSet(object.payload) ? WriteSet.fromJSON(object.payload) : undefined, + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + }; + }, + + toJSON(message: GenesisTransaction): unknown { + const obj: any = {}; + if (message.payload !== undefined) { + obj.payload = WriteSet.toJSON(message.payload); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): GenesisTransaction { + return GenesisTransaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): GenesisTransaction { + const message = createBaseGenesisTransaction(); + message.payload = (object.payload !== undefined && object.payload !== null) + ? WriteSet.fromPartial(object.payload) + : undefined; + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseStateCheckpointTransaction(): StateCheckpointTransaction { + return {}; +} + +export const StateCheckpointTransaction = { + encode(_: StateCheckpointTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): StateCheckpointTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseStateCheckpointTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StateCheckpointTransaction.encode(p).finish()]; + } + } else { + yield* [StateCheckpointTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [StateCheckpointTransaction.decode(p)]; + } + } else { + yield* [StateCheckpointTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(_: any): StateCheckpointTransaction { + return {}; + }, + + toJSON(_: StateCheckpointTransaction): unknown { + const obj: any = {}; + return obj; + }, + + create(base?: DeepPartial): StateCheckpointTransaction { + return StateCheckpointTransaction.fromPartial(base ?? {}); + }, + fromPartial(_: DeepPartial): StateCheckpointTransaction { + const message = createBaseStateCheckpointTransaction(); + return message; + }, +}; + +function createBaseUserTransaction(): UserTransaction { + return { request: undefined, events: [] }; +} + +export const UserTransaction = { + encode(message: UserTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.request !== undefined) { + UserTransactionRequest.encode(message.request, writer.uint32(10).fork()).ldelim(); + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UserTransaction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUserTransaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.request = UserTransactionRequest.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransaction.encode(p).finish()]; + } + } else { + yield* [UserTransaction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransaction.decode(p)]; + } + } else { + yield* [UserTransaction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): UserTransaction { + return { + request: isSet(object.request) ? UserTransactionRequest.fromJSON(object.request) : undefined, + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + }; + }, + + toJSON(message: UserTransaction): unknown { + const obj: any = {}; + if (message.request !== undefined) { + obj.request = UserTransactionRequest.toJSON(message.request); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): UserTransaction { + return UserTransaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): UserTransaction { + const message = createBaseUserTransaction(); + message.request = (object.request !== undefined && object.request !== null) + ? UserTransactionRequest.fromPartial(object.request) + : undefined; + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseEvent(): Event { + return { key: undefined, sequenceNumber: BigInt("0"), type: undefined, typeStr: "", data: "" }; +} + +export const Event = { + encode(message: Event, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== undefined) { + EventKey.encode(message.key, writer.uint32(10).fork()).ldelim(); + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + if (BigInt.asUintN(64, message.sequenceNumber) !== message.sequenceNumber) { + throw new Error("value provided for field message.sequenceNumber of type uint64 too large"); + } + writer.uint32(16).uint64(message.sequenceNumber.toString()); + } + if (message.type !== undefined) { + MoveType.encode(message.type, writer.uint32(26).fork()).ldelim(); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + writer.uint32(42).string(message.typeStr); + } + if (message.data !== undefined && message.data !== "") { + writer.uint32(34).string(message.data); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Event { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEvent(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.key = EventKey.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.sequenceNumber = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.type = MoveType.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.typeStr = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.data = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Event.encode(p).finish()]; + } + } else { + yield* [Event.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Event.decode(p)]; + } + } else { + yield* [Event.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Event { + return { + key: isSet(object.key) ? EventKey.fromJSON(object.key) : undefined, + sequenceNumber: isSet(object.sequenceNumber) ? BigInt(object.sequenceNumber) : BigInt("0"), + type: isSet(object.type) ? MoveType.fromJSON(object.type) : undefined, + typeStr: isSet(object.typeStr) ? globalThis.String(object.typeStr) : "", + data: isSet(object.data) ? globalThis.String(object.data) : "", + }; + }, + + toJSON(message: Event): unknown { + const obj: any = {}; + if (message.key !== undefined) { + obj.key = EventKey.toJSON(message.key); + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + obj.sequenceNumber = message.sequenceNumber.toString(); + } + if (message.type !== undefined) { + obj.type = MoveType.toJSON(message.type); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + obj.typeStr = message.typeStr; + } + if (message.data !== undefined && message.data !== "") { + obj.data = message.data; + } + return obj; + }, + + create(base?: DeepPartial): Event { + return Event.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Event { + const message = createBaseEvent(); + message.key = (object.key !== undefined && object.key !== null) ? EventKey.fromPartial(object.key) : undefined; + message.sequenceNumber = object.sequenceNumber ?? BigInt("0"); + message.type = (object.type !== undefined && object.type !== null) ? MoveType.fromPartial(object.type) : undefined; + message.typeStr = object.typeStr ?? ""; + message.data = object.data ?? ""; + return message; + }, +}; + +function createBaseTransactionInfo(): TransactionInfo { + return { + hash: new Uint8Array(0), + stateChangeHash: new Uint8Array(0), + eventRootHash: new Uint8Array(0), + stateCheckpointHash: undefined, + gasUsed: BigInt("0"), + success: false, + vmStatus: "", + accumulatorRootHash: new Uint8Array(0), + changes: [], + }; +} + +export const TransactionInfo = { + encode(message: TransactionInfo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.hash !== undefined && message.hash.length !== 0) { + writer.uint32(10).bytes(message.hash); + } + if (message.stateChangeHash !== undefined && message.stateChangeHash.length !== 0) { + writer.uint32(18).bytes(message.stateChangeHash); + } + if (message.eventRootHash !== undefined && message.eventRootHash.length !== 0) { + writer.uint32(26).bytes(message.eventRootHash); + } + if (message.stateCheckpointHash !== undefined) { + writer.uint32(34).bytes(message.stateCheckpointHash); + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) { + throw new Error("value provided for field message.gasUsed of type uint64 too large"); + } + writer.uint32(40).uint64(message.gasUsed.toString()); + } + if (message.success === true) { + writer.uint32(48).bool(message.success); + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + writer.uint32(58).string(message.vmStatus); + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash.length !== 0) { + writer.uint32(66).bytes(message.accumulatorRootHash); + } + if (message.changes !== undefined && message.changes.length !== 0) { + for (const v of message.changes) { + WriteSetChange.encode(v!, writer.uint32(74).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionInfo { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.hash = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateChangeHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.eventRootHash = reader.bytes(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.stateCheckpointHash = reader.bytes(); + continue; + case 5: + if (tag !== 40) { + break; + } + + message.gasUsed = longToBigint(reader.uint64() as Long); + continue; + case 6: + if (tag !== 48) { + break; + } + + message.success = reader.bool(); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.vmStatus = reader.string(); + continue; + case 8: + if (tag !== 66) { + break; + } + + message.accumulatorRootHash = reader.bytes(); + continue; + case 9: + if (tag !== 74) { + break; + } + + message.changes!.push(WriteSetChange.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionInfo.encode(p).finish()]; + } + } else { + yield* [TransactionInfo.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionInfo.decode(p)]; + } + } else { + yield* [TransactionInfo.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionInfo { + return { + hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(0), + stateChangeHash: isSet(object.stateChangeHash) ? bytesFromBase64(object.stateChangeHash) : new Uint8Array(0), + eventRootHash: isSet(object.eventRootHash) ? bytesFromBase64(object.eventRootHash) : new Uint8Array(0), + stateCheckpointHash: isSet(object.stateCheckpointHash) ? bytesFromBase64(object.stateCheckpointHash) : undefined, + gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt("0"), + success: isSet(object.success) ? globalThis.Boolean(object.success) : false, + vmStatus: isSet(object.vmStatus) ? globalThis.String(object.vmStatus) : "", + accumulatorRootHash: isSet(object.accumulatorRootHash) + ? bytesFromBase64(object.accumulatorRootHash) + : new Uint8Array(0), + changes: globalThis.Array.isArray(object?.changes) + ? object.changes.map((e: any) => WriteSetChange.fromJSON(e)) + : [], + }; + }, + + toJSON(message: TransactionInfo): unknown { + const obj: any = {}; + if (message.hash !== undefined && message.hash.length !== 0) { + obj.hash = base64FromBytes(message.hash); + } + if (message.stateChangeHash !== undefined && message.stateChangeHash.length !== 0) { + obj.stateChangeHash = base64FromBytes(message.stateChangeHash); + } + if (message.eventRootHash !== undefined && message.eventRootHash.length !== 0) { + obj.eventRootHash = base64FromBytes(message.eventRootHash); + } + if (message.stateCheckpointHash !== undefined) { + obj.stateCheckpointHash = base64FromBytes(message.stateCheckpointHash); + } + if (message.gasUsed !== undefined && message.gasUsed !== BigInt("0")) { + obj.gasUsed = message.gasUsed.toString(); + } + if (message.success === true) { + obj.success = message.success; + } + if (message.vmStatus !== undefined && message.vmStatus !== "") { + obj.vmStatus = message.vmStatus; + } + if (message.accumulatorRootHash !== undefined && message.accumulatorRootHash.length !== 0) { + obj.accumulatorRootHash = base64FromBytes(message.accumulatorRootHash); + } + if (message.changes?.length) { + obj.changes = message.changes.map((e) => WriteSetChange.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): TransactionInfo { + return TransactionInfo.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionInfo { + const message = createBaseTransactionInfo(); + message.hash = object.hash ?? new Uint8Array(0); + message.stateChangeHash = object.stateChangeHash ?? new Uint8Array(0); + message.eventRootHash = object.eventRootHash ?? new Uint8Array(0); + message.stateCheckpointHash = object.stateCheckpointHash ?? undefined; + message.gasUsed = object.gasUsed ?? BigInt("0"); + message.success = object.success ?? false; + message.vmStatus = object.vmStatus ?? ""; + message.accumulatorRootHash = object.accumulatorRootHash ?? new Uint8Array(0); + message.changes = object.changes?.map((e) => WriteSetChange.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseEventKey(): EventKey { + return { creationNumber: BigInt("0"), accountAddress: "" }; +} + +export const EventKey = { + encode(message: EventKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.creationNumber !== undefined && message.creationNumber !== BigInt("0")) { + if (BigInt.asUintN(64, message.creationNumber) !== message.creationNumber) { + throw new Error("value provided for field message.creationNumber of type uint64 too large"); + } + writer.uint32(8).uint64(message.creationNumber.toString()); + } + if (message.accountAddress !== undefined && message.accountAddress !== "") { + writer.uint32(18).string(message.accountAddress); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EventKey { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEventKey(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.creationNumber = longToBigint(reader.uint64() as Long); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.accountAddress = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EventKey.encode(p).finish()]; + } + } else { + yield* [EventKey.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EventKey.decode(p)]; + } + } else { + yield* [EventKey.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): EventKey { + return { + creationNumber: isSet(object.creationNumber) ? BigInt(object.creationNumber) : BigInt("0"), + accountAddress: isSet(object.accountAddress) ? globalThis.String(object.accountAddress) : "", + }; + }, + + toJSON(message: EventKey): unknown { + const obj: any = {}; + if (message.creationNumber !== undefined && message.creationNumber !== BigInt("0")) { + obj.creationNumber = message.creationNumber.toString(); + } + if (message.accountAddress !== undefined && message.accountAddress !== "") { + obj.accountAddress = message.accountAddress; + } + return obj; + }, + + create(base?: DeepPartial): EventKey { + return EventKey.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): EventKey { + const message = createBaseEventKey(); + message.creationNumber = object.creationNumber ?? BigInt("0"); + message.accountAddress = object.accountAddress ?? ""; + return message; + }, +}; + +function createBaseUserTransactionRequest(): UserTransactionRequest { + return { + sender: "", + sequenceNumber: BigInt("0"), + maxGasAmount: BigInt("0"), + gasUnitPrice: BigInt("0"), + expirationTimestampSecs: undefined, + payload: undefined, + signature: undefined, + }; +} + +export const UserTransactionRequest = { + encode(message: UserTransactionRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined && message.sender !== "") { + writer.uint32(10).string(message.sender); + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + if (BigInt.asUintN(64, message.sequenceNumber) !== message.sequenceNumber) { + throw new Error("value provided for field message.sequenceNumber of type uint64 too large"); + } + writer.uint32(16).uint64(message.sequenceNumber.toString()); + } + if (message.maxGasAmount !== undefined && message.maxGasAmount !== BigInt("0")) { + if (BigInt.asUintN(64, message.maxGasAmount) !== message.maxGasAmount) { + throw new Error("value provided for field message.maxGasAmount of type uint64 too large"); + } + writer.uint32(24).uint64(message.maxGasAmount.toString()); + } + if (message.gasUnitPrice !== undefined && message.gasUnitPrice !== BigInt("0")) { + if (BigInt.asUintN(64, message.gasUnitPrice) !== message.gasUnitPrice) { + throw new Error("value provided for field message.gasUnitPrice of type uint64 too large"); + } + writer.uint32(32).uint64(message.gasUnitPrice.toString()); + } + if (message.expirationTimestampSecs !== undefined) { + Timestamp.encode(message.expirationTimestampSecs, writer.uint32(42).fork()).ldelim(); + } + if (message.payload !== undefined) { + TransactionPayload.encode(message.payload, writer.uint32(50).fork()).ldelim(); + } + if (message.signature !== undefined) { + Signature.encode(message.signature, writer.uint32(58).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UserTransactionRequest { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUserTransactionRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.sequenceNumber = longToBigint(reader.uint64() as Long); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.maxGasAmount = longToBigint(reader.uint64() as Long); + continue; + case 4: + if (tag !== 32) { + break; + } + + message.gasUnitPrice = longToBigint(reader.uint64() as Long); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.expirationTimestampSecs = Timestamp.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.payload = TransactionPayload.decode(reader, reader.uint32()); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.signature = Signature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransactionRequest.encode(p).finish()]; + } + } else { + yield* [UserTransactionRequest.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [UserTransactionRequest.decode(p)]; + } + } else { + yield* [UserTransactionRequest.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): UserTransactionRequest { + return { + sender: isSet(object.sender) ? globalThis.String(object.sender) : "", + sequenceNumber: isSet(object.sequenceNumber) ? BigInt(object.sequenceNumber) : BigInt("0"), + maxGasAmount: isSet(object.maxGasAmount) ? BigInt(object.maxGasAmount) : BigInt("0"), + gasUnitPrice: isSet(object.gasUnitPrice) ? BigInt(object.gasUnitPrice) : BigInt("0"), + expirationTimestampSecs: isSet(object.expirationTimestampSecs) + ? Timestamp.fromJSON(object.expirationTimestampSecs) + : undefined, + payload: isSet(object.payload) ? TransactionPayload.fromJSON(object.payload) : undefined, + signature: isSet(object.signature) ? Signature.fromJSON(object.signature) : undefined, + }; + }, + + toJSON(message: UserTransactionRequest): unknown { + const obj: any = {}; + if (message.sender !== undefined && message.sender !== "") { + obj.sender = message.sender; + } + if (message.sequenceNumber !== undefined && message.sequenceNumber !== BigInt("0")) { + obj.sequenceNumber = message.sequenceNumber.toString(); + } + if (message.maxGasAmount !== undefined && message.maxGasAmount !== BigInt("0")) { + obj.maxGasAmount = message.maxGasAmount.toString(); + } + if (message.gasUnitPrice !== undefined && message.gasUnitPrice !== BigInt("0")) { + obj.gasUnitPrice = message.gasUnitPrice.toString(); + } + if (message.expirationTimestampSecs !== undefined) { + obj.expirationTimestampSecs = Timestamp.toJSON(message.expirationTimestampSecs); + } + if (message.payload !== undefined) { + obj.payload = TransactionPayload.toJSON(message.payload); + } + if (message.signature !== undefined) { + obj.signature = Signature.toJSON(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): UserTransactionRequest { + return UserTransactionRequest.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): UserTransactionRequest { + const message = createBaseUserTransactionRequest(); + message.sender = object.sender ?? ""; + message.sequenceNumber = object.sequenceNumber ?? BigInt("0"); + message.maxGasAmount = object.maxGasAmount ?? BigInt("0"); + message.gasUnitPrice = object.gasUnitPrice ?? BigInt("0"); + message.expirationTimestampSecs = + (object.expirationTimestampSecs !== undefined && object.expirationTimestampSecs !== null) + ? Timestamp.fromPartial(object.expirationTimestampSecs) + : undefined; + message.payload = (object.payload !== undefined && object.payload !== null) + ? TransactionPayload.fromPartial(object.payload) + : undefined; + message.signature = (object.signature !== undefined && object.signature !== null) + ? Signature.fromPartial(object.signature) + : undefined; + return message; + }, +}; + +function createBaseWriteSet(): WriteSet { + return { writeSetType: 0, scriptWriteSet: undefined, directWriteSet: undefined }; +} + +export const WriteSet = { + encode(message: WriteSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.writeSetType !== undefined && message.writeSetType !== 0) { + writer.uint32(8).int32(message.writeSetType); + } + if (message.scriptWriteSet !== undefined) { + ScriptWriteSet.encode(message.scriptWriteSet, writer.uint32(18).fork()).ldelim(); + } + if (message.directWriteSet !== undefined) { + DirectWriteSet.encode(message.directWriteSet, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteSet { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteSet(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.writeSetType = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.scriptWriteSet = ScriptWriteSet.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.directWriteSet = DirectWriteSet.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSet.encode(p).finish()]; + } + } else { + yield* [WriteSet.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSet.decode(p)]; + } + } else { + yield* [WriteSet.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteSet { + return { + writeSetType: isSet(object.writeSetType) ? writeSet_WriteSetTypeFromJSON(object.writeSetType) : 0, + scriptWriteSet: isSet(object.scriptWriteSet) ? ScriptWriteSet.fromJSON(object.scriptWriteSet) : undefined, + directWriteSet: isSet(object.directWriteSet) ? DirectWriteSet.fromJSON(object.directWriteSet) : undefined, + }; + }, + + toJSON(message: WriteSet): unknown { + const obj: any = {}; + if (message.writeSetType !== undefined && message.writeSetType !== 0) { + obj.writeSetType = writeSet_WriteSetTypeToJSON(message.writeSetType); + } + if (message.scriptWriteSet !== undefined) { + obj.scriptWriteSet = ScriptWriteSet.toJSON(message.scriptWriteSet); + } + if (message.directWriteSet !== undefined) { + obj.directWriteSet = DirectWriteSet.toJSON(message.directWriteSet); + } + return obj; + }, + + create(base?: DeepPartial): WriteSet { + return WriteSet.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteSet { + const message = createBaseWriteSet(); + message.writeSetType = object.writeSetType ?? 0; + message.scriptWriteSet = (object.scriptWriteSet !== undefined && object.scriptWriteSet !== null) + ? ScriptWriteSet.fromPartial(object.scriptWriteSet) + : undefined; + message.directWriteSet = (object.directWriteSet !== undefined && object.directWriteSet !== null) + ? DirectWriteSet.fromPartial(object.directWriteSet) + : undefined; + return message; + }, +}; + +function createBaseScriptWriteSet(): ScriptWriteSet { + return { executeAs: "", script: undefined }; +} + +export const ScriptWriteSet = { + encode(message: ScriptWriteSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.executeAs !== undefined && message.executeAs !== "") { + writer.uint32(10).string(message.executeAs); + } + if (message.script !== undefined) { + ScriptPayload.encode(message.script, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScriptWriteSet { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScriptWriteSet(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.executeAs = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.script = ScriptPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptWriteSet.encode(p).finish()]; + } + } else { + yield* [ScriptWriteSet.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptWriteSet.decode(p)]; + } + } else { + yield* [ScriptWriteSet.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): ScriptWriteSet { + return { + executeAs: isSet(object.executeAs) ? globalThis.String(object.executeAs) : "", + script: isSet(object.script) ? ScriptPayload.fromJSON(object.script) : undefined, + }; + }, + + toJSON(message: ScriptWriteSet): unknown { + const obj: any = {}; + if (message.executeAs !== undefined && message.executeAs !== "") { + obj.executeAs = message.executeAs; + } + if (message.script !== undefined) { + obj.script = ScriptPayload.toJSON(message.script); + } + return obj; + }, + + create(base?: DeepPartial): ScriptWriteSet { + return ScriptWriteSet.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): ScriptWriteSet { + const message = createBaseScriptWriteSet(); + message.executeAs = object.executeAs ?? ""; + message.script = (object.script !== undefined && object.script !== null) + ? ScriptPayload.fromPartial(object.script) + : undefined; + return message; + }, +}; + +function createBaseDirectWriteSet(): DirectWriteSet { + return { writeSetChange: [], events: [] }; +} + +export const DirectWriteSet = { + encode(message: DirectWriteSet, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.writeSetChange !== undefined && message.writeSetChange.length !== 0) { + for (const v of message.writeSetChange) { + WriteSetChange.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + if (message.events !== undefined && message.events.length !== 0) { + for (const v of message.events) { + Event.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DirectWriteSet { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDirectWriteSet(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.writeSetChange!.push(WriteSetChange.decode(reader, reader.uint32())); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.events!.push(Event.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DirectWriteSet.encode(p).finish()]; + } + } else { + yield* [DirectWriteSet.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DirectWriteSet.decode(p)]; + } + } else { + yield* [DirectWriteSet.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DirectWriteSet { + return { + writeSetChange: globalThis.Array.isArray(object?.writeSetChange) + ? object.writeSetChange.map((e: any) => WriteSetChange.fromJSON(e)) + : [], + events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [], + }; + }, + + toJSON(message: DirectWriteSet): unknown { + const obj: any = {}; + if (message.writeSetChange?.length) { + obj.writeSetChange = message.writeSetChange.map((e) => WriteSetChange.toJSON(e)); + } + if (message.events?.length) { + obj.events = message.events.map((e) => Event.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): DirectWriteSet { + return DirectWriteSet.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DirectWriteSet { + const message = createBaseDirectWriteSet(); + message.writeSetChange = object.writeSetChange?.map((e) => WriteSetChange.fromPartial(e)) || []; + message.events = object.events?.map((e) => Event.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseWriteSetChange(): WriteSetChange { + return { + type: 0, + deleteModule: undefined, + deleteResource: undefined, + deleteTableItem: undefined, + writeModule: undefined, + writeResource: undefined, + writeTableItem: undefined, + }; +} + +export const WriteSetChange = { + encode(message: WriteSetChange, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.deleteModule !== undefined) { + DeleteModule.encode(message.deleteModule, writer.uint32(18).fork()).ldelim(); + } + if (message.deleteResource !== undefined) { + DeleteResource.encode(message.deleteResource, writer.uint32(26).fork()).ldelim(); + } + if (message.deleteTableItem !== undefined) { + DeleteTableItem.encode(message.deleteTableItem, writer.uint32(34).fork()).ldelim(); + } + if (message.writeModule !== undefined) { + WriteModule.encode(message.writeModule, writer.uint32(42).fork()).ldelim(); + } + if (message.writeResource !== undefined) { + WriteResource.encode(message.writeResource, writer.uint32(50).fork()).ldelim(); + } + if (message.writeTableItem !== undefined) { + WriteTableItem.encode(message.writeTableItem, writer.uint32(58).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteSetChange { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteSetChange(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.deleteModule = DeleteModule.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.deleteResource = DeleteResource.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.deleteTableItem = DeleteTableItem.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.writeModule = WriteModule.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.writeResource = WriteResource.decode(reader, reader.uint32()); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.writeTableItem = WriteTableItem.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetChange.encode(p).finish()]; + } + } else { + yield* [WriteSetChange.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetChange.decode(p)]; + } + } else { + yield* [WriteSetChange.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteSetChange { + return { + type: isSet(object.type) ? writeSetChange_TypeFromJSON(object.type) : 0, + deleteModule: isSet(object.deleteModule) ? DeleteModule.fromJSON(object.deleteModule) : undefined, + deleteResource: isSet(object.deleteResource) ? DeleteResource.fromJSON(object.deleteResource) : undefined, + deleteTableItem: isSet(object.deleteTableItem) ? DeleteTableItem.fromJSON(object.deleteTableItem) : undefined, + writeModule: isSet(object.writeModule) ? WriteModule.fromJSON(object.writeModule) : undefined, + writeResource: isSet(object.writeResource) ? WriteResource.fromJSON(object.writeResource) : undefined, + writeTableItem: isSet(object.writeTableItem) ? WriteTableItem.fromJSON(object.writeTableItem) : undefined, + }; + }, + + toJSON(message: WriteSetChange): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = writeSetChange_TypeToJSON(message.type); + } + if (message.deleteModule !== undefined) { + obj.deleteModule = DeleteModule.toJSON(message.deleteModule); + } + if (message.deleteResource !== undefined) { + obj.deleteResource = DeleteResource.toJSON(message.deleteResource); + } + if (message.deleteTableItem !== undefined) { + obj.deleteTableItem = DeleteTableItem.toJSON(message.deleteTableItem); + } + if (message.writeModule !== undefined) { + obj.writeModule = WriteModule.toJSON(message.writeModule); + } + if (message.writeResource !== undefined) { + obj.writeResource = WriteResource.toJSON(message.writeResource); + } + if (message.writeTableItem !== undefined) { + obj.writeTableItem = WriteTableItem.toJSON(message.writeTableItem); + } + return obj; + }, + + create(base?: DeepPartial): WriteSetChange { + return WriteSetChange.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteSetChange { + const message = createBaseWriteSetChange(); + message.type = object.type ?? 0; + message.deleteModule = (object.deleteModule !== undefined && object.deleteModule !== null) + ? DeleteModule.fromPartial(object.deleteModule) + : undefined; + message.deleteResource = (object.deleteResource !== undefined && object.deleteResource !== null) + ? DeleteResource.fromPartial(object.deleteResource) + : undefined; + message.deleteTableItem = (object.deleteTableItem !== undefined && object.deleteTableItem !== null) + ? DeleteTableItem.fromPartial(object.deleteTableItem) + : undefined; + message.writeModule = (object.writeModule !== undefined && object.writeModule !== null) + ? WriteModule.fromPartial(object.writeModule) + : undefined; + message.writeResource = (object.writeResource !== undefined && object.writeResource !== null) + ? WriteResource.fromPartial(object.writeResource) + : undefined; + message.writeTableItem = (object.writeTableItem !== undefined && object.writeTableItem !== null) + ? WriteTableItem.fromPartial(object.writeTableItem) + : undefined; + return message; + }, +}; + +function createBaseDeleteModule(): DeleteModule { + return { address: "", stateKeyHash: new Uint8Array(0), module: undefined }; +} + +export const DeleteModule = { + encode(message: DeleteModule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.module !== undefined) { + MoveModuleId.encode(message.module, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteModule { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteModule(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.module = MoveModuleId.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteModule.encode(p).finish()]; + } + } else { + yield* [DeleteModule.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteModule.decode(p)]; + } + } else { + yield* [DeleteModule.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteModule { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + module: isSet(object.module) ? MoveModuleId.fromJSON(object.module) : undefined, + }; + }, + + toJSON(message: DeleteModule): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.module !== undefined) { + obj.module = MoveModuleId.toJSON(message.module); + } + return obj; + }, + + create(base?: DeepPartial): DeleteModule { + return DeleteModule.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteModule { + const message = createBaseDeleteModule(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.module = (object.module !== undefined && object.module !== null) + ? MoveModuleId.fromPartial(object.module) + : undefined; + return message; + }, +}; + +function createBaseDeleteResource(): DeleteResource { + return { address: "", stateKeyHash: new Uint8Array(0), type: undefined, typeStr: "" }; +} + +export const DeleteResource = { + encode(message: DeleteResource, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.type !== undefined) { + MoveStructTag.encode(message.type, writer.uint32(26).fork()).ldelim(); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + writer.uint32(34).string(message.typeStr); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteResource { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteResource(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.type = MoveStructTag.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.typeStr = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteResource.encode(p).finish()]; + } + } else { + yield* [DeleteResource.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteResource.decode(p)]; + } + } else { + yield* [DeleteResource.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteResource { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + type: isSet(object.type) ? MoveStructTag.fromJSON(object.type) : undefined, + typeStr: isSet(object.typeStr) ? globalThis.String(object.typeStr) : "", + }; + }, + + toJSON(message: DeleteResource): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.type !== undefined) { + obj.type = MoveStructTag.toJSON(message.type); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + obj.typeStr = message.typeStr; + } + return obj; + }, + + create(base?: DeepPartial): DeleteResource { + return DeleteResource.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteResource { + const message = createBaseDeleteResource(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.type = (object.type !== undefined && object.type !== null) + ? MoveStructTag.fromPartial(object.type) + : undefined; + message.typeStr = object.typeStr ?? ""; + return message; + }, +}; + +function createBaseDeleteTableItem(): DeleteTableItem { + return { stateKeyHash: new Uint8Array(0), handle: "", key: "", data: undefined }; +} + +export const DeleteTableItem = { + encode(message: DeleteTableItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(10).bytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + writer.uint32(18).string(message.handle); + } + if (message.key !== undefined && message.key !== "") { + writer.uint32(26).string(message.key); + } + if (message.data !== undefined) { + DeleteTableData.encode(message.data, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTableItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteTableItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.handle = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.key = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.data = DeleteTableData.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableItem.encode(p).finish()]; + } + } else { + yield* [DeleteTableItem.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableItem.decode(p)]; + } + } else { + yield* [DeleteTableItem.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteTableItem { + return { + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + handle: isSet(object.handle) ? globalThis.String(object.handle) : "", + key: isSet(object.key) ? globalThis.String(object.key) : "", + data: isSet(object.data) ? DeleteTableData.fromJSON(object.data) : undefined, + }; + }, + + toJSON(message: DeleteTableItem): unknown { + const obj: any = {}; + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + obj.handle = message.handle; + } + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.data !== undefined) { + obj.data = DeleteTableData.toJSON(message.data); + } + return obj; + }, + + create(base?: DeepPartial): DeleteTableItem { + return DeleteTableItem.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteTableItem { + const message = createBaseDeleteTableItem(); + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.handle = object.handle ?? ""; + message.key = object.key ?? ""; + message.data = (object.data !== undefined && object.data !== null) + ? DeleteTableData.fromPartial(object.data) + : undefined; + return message; + }, +}; + +function createBaseDeleteTableData(): DeleteTableData { + return { key: "", keyType: "" }; +} + +export const DeleteTableData = { + encode(message: DeleteTableData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== undefined && message.key !== "") { + writer.uint32(10).string(message.key); + } + if (message.keyType !== undefined && message.keyType !== "") { + writer.uint32(18).string(message.keyType); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTableData { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDeleteTableData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.key = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.keyType = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableData.encode(p).finish()]; + } + } else { + yield* [DeleteTableData.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [DeleteTableData.decode(p)]; + } + } else { + yield* [DeleteTableData.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): DeleteTableData { + return { + key: isSet(object.key) ? globalThis.String(object.key) : "", + keyType: isSet(object.keyType) ? globalThis.String(object.keyType) : "", + }; + }, + + toJSON(message: DeleteTableData): unknown { + const obj: any = {}; + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.keyType !== undefined && message.keyType !== "") { + obj.keyType = message.keyType; + } + return obj; + }, + + create(base?: DeepPartial): DeleteTableData { + return DeleteTableData.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): DeleteTableData { + const message = createBaseDeleteTableData(); + message.key = object.key ?? ""; + message.keyType = object.keyType ?? ""; + return message; + }, +}; + +function createBaseWriteModule(): WriteModule { + return { address: "", stateKeyHash: new Uint8Array(0), data: undefined }; +} + +export const WriteModule = { + encode(message: WriteModule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.data !== undefined) { + MoveModuleBytecode.encode(message.data, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteModule { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteModule(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.data = MoveModuleBytecode.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteModule.encode(p).finish()]; + } + } else { + yield* [WriteModule.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteModule.decode(p)]; + } + } else { + yield* [WriteModule.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteModule { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + data: isSet(object.data) ? MoveModuleBytecode.fromJSON(object.data) : undefined, + }; + }, + + toJSON(message: WriteModule): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.data !== undefined) { + obj.data = MoveModuleBytecode.toJSON(message.data); + } + return obj; + }, + + create(base?: DeepPartial): WriteModule { + return WriteModule.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteModule { + const message = createBaseWriteModule(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.data = (object.data !== undefined && object.data !== null) + ? MoveModuleBytecode.fromPartial(object.data) + : undefined; + return message; + }, +}; + +function createBaseWriteResource(): WriteResource { + return { address: "", stateKeyHash: new Uint8Array(0), type: undefined, typeStr: "", data: "" }; +} + +export const WriteResource = { + encode(message: WriteResource, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(18).bytes(message.stateKeyHash); + } + if (message.type !== undefined) { + MoveStructTag.encode(message.type, writer.uint32(26).fork()).ldelim(); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + writer.uint32(34).string(message.typeStr); + } + if (message.data !== undefined && message.data !== "") { + writer.uint32(42).string(message.data); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteResource { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteResource(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.type = MoveStructTag.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.typeStr = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.data = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteResource.encode(p).finish()]; + } + } else { + yield* [WriteResource.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteResource.decode(p)]; + } + } else { + yield* [WriteResource.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteResource { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + type: isSet(object.type) ? MoveStructTag.fromJSON(object.type) : undefined, + typeStr: isSet(object.typeStr) ? globalThis.String(object.typeStr) : "", + data: isSet(object.data) ? globalThis.String(object.data) : "", + }; + }, + + toJSON(message: WriteResource): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.type !== undefined) { + obj.type = MoveStructTag.toJSON(message.type); + } + if (message.typeStr !== undefined && message.typeStr !== "") { + obj.typeStr = message.typeStr; + } + if (message.data !== undefined && message.data !== "") { + obj.data = message.data; + } + return obj; + }, + + create(base?: DeepPartial): WriteResource { + return WriteResource.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteResource { + const message = createBaseWriteResource(); + message.address = object.address ?? ""; + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.type = (object.type !== undefined && object.type !== null) + ? MoveStructTag.fromPartial(object.type) + : undefined; + message.typeStr = object.typeStr ?? ""; + message.data = object.data ?? ""; + return message; + }, +}; + +function createBaseWriteTableData(): WriteTableData { + return { key: "", keyType: "", value: "", valueType: "" }; +} + +export const WriteTableData = { + encode(message: WriteTableData, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.key !== undefined && message.key !== "") { + writer.uint32(10).string(message.key); + } + if (message.keyType !== undefined && message.keyType !== "") { + writer.uint32(18).string(message.keyType); + } + if (message.value !== undefined && message.value !== "") { + writer.uint32(26).string(message.value); + } + if (message.valueType !== undefined && message.valueType !== "") { + writer.uint32(34).string(message.valueType); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteTableData { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteTableData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.key = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.keyType = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.value = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.valueType = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableData.encode(p).finish()]; + } + } else { + yield* [WriteTableData.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableData.decode(p)]; + } + } else { + yield* [WriteTableData.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteTableData { + return { + key: isSet(object.key) ? globalThis.String(object.key) : "", + keyType: isSet(object.keyType) ? globalThis.String(object.keyType) : "", + value: isSet(object.value) ? globalThis.String(object.value) : "", + valueType: isSet(object.valueType) ? globalThis.String(object.valueType) : "", + }; + }, + + toJSON(message: WriteTableData): unknown { + const obj: any = {}; + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.keyType !== undefined && message.keyType !== "") { + obj.keyType = message.keyType; + } + if (message.value !== undefined && message.value !== "") { + obj.value = message.value; + } + if (message.valueType !== undefined && message.valueType !== "") { + obj.valueType = message.valueType; + } + return obj; + }, + + create(base?: DeepPartial): WriteTableData { + return WriteTableData.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteTableData { + const message = createBaseWriteTableData(); + message.key = object.key ?? ""; + message.keyType = object.keyType ?? ""; + message.value = object.value ?? ""; + message.valueType = object.valueType ?? ""; + return message; + }, +}; + +function createBaseWriteTableItem(): WriteTableItem { + return { stateKeyHash: new Uint8Array(0), handle: "", key: "", data: undefined }; +} + +export const WriteTableItem = { + encode(message: WriteTableItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + writer.uint32(10).bytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + writer.uint32(18).string(message.handle); + } + if (message.key !== undefined && message.key !== "") { + writer.uint32(26).string(message.key); + } + if (message.data !== undefined) { + WriteTableData.encode(message.data, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteTableItem { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteTableItem(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.stateKeyHash = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.handle = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.key = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.data = WriteTableData.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableItem.encode(p).finish()]; + } + } else { + yield* [WriteTableItem.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteTableItem.decode(p)]; + } + } else { + yield* [WriteTableItem.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteTableItem { + return { + stateKeyHash: isSet(object.stateKeyHash) ? bytesFromBase64(object.stateKeyHash) : new Uint8Array(0), + handle: isSet(object.handle) ? globalThis.String(object.handle) : "", + key: isSet(object.key) ? globalThis.String(object.key) : "", + data: isSet(object.data) ? WriteTableData.fromJSON(object.data) : undefined, + }; + }, + + toJSON(message: WriteTableItem): unknown { + const obj: any = {}; + if (message.stateKeyHash !== undefined && message.stateKeyHash.length !== 0) { + obj.stateKeyHash = base64FromBytes(message.stateKeyHash); + } + if (message.handle !== undefined && message.handle !== "") { + obj.handle = message.handle; + } + if (message.key !== undefined && message.key !== "") { + obj.key = message.key; + } + if (message.data !== undefined) { + obj.data = WriteTableData.toJSON(message.data); + } + return obj; + }, + + create(base?: DeepPartial): WriteTableItem { + return WriteTableItem.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteTableItem { + const message = createBaseWriteTableItem(); + message.stateKeyHash = object.stateKeyHash ?? new Uint8Array(0); + message.handle = object.handle ?? ""; + message.key = object.key ?? ""; + message.data = (object.data !== undefined && object.data !== null) + ? WriteTableData.fromPartial(object.data) + : undefined; + return message; + }, +}; + +function createBaseTransactionPayload(): TransactionPayload { + return { + type: 0, + entryFunctionPayload: undefined, + scriptPayload: undefined, + moduleBundlePayload: undefined, + writeSetPayload: undefined, + multisigPayload: undefined, + }; +} + +export const TransactionPayload = { + encode(message: TransactionPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.entryFunctionPayload !== undefined) { + EntryFunctionPayload.encode(message.entryFunctionPayload, writer.uint32(18).fork()).ldelim(); + } + if (message.scriptPayload !== undefined) { + ScriptPayload.encode(message.scriptPayload, writer.uint32(26).fork()).ldelim(); + } + if (message.moduleBundlePayload !== undefined) { + ModuleBundlePayload.encode(message.moduleBundlePayload, writer.uint32(34).fork()).ldelim(); + } + if (message.writeSetPayload !== undefined) { + WriteSetPayload.encode(message.writeSetPayload, writer.uint32(42).fork()).ldelim(); + } + if (message.multisigPayload !== undefined) { + MultisigPayload.encode(message.multisigPayload, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TransactionPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTransactionPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.entryFunctionPayload = EntryFunctionPayload.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.scriptPayload = ScriptPayload.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.moduleBundlePayload = ModuleBundlePayload.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.writeSetPayload = WriteSetPayload.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.multisigPayload = MultisigPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionPayload.encode(p).finish()]; + } + } else { + yield* [TransactionPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [TransactionPayload.decode(p)]; + } + } else { + yield* [TransactionPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): TransactionPayload { + return { + type: isSet(object.type) ? transactionPayload_TypeFromJSON(object.type) : 0, + entryFunctionPayload: isSet(object.entryFunctionPayload) + ? EntryFunctionPayload.fromJSON(object.entryFunctionPayload) + : undefined, + scriptPayload: isSet(object.scriptPayload) ? ScriptPayload.fromJSON(object.scriptPayload) : undefined, + moduleBundlePayload: isSet(object.moduleBundlePayload) + ? ModuleBundlePayload.fromJSON(object.moduleBundlePayload) + : undefined, + writeSetPayload: isSet(object.writeSetPayload) ? WriteSetPayload.fromJSON(object.writeSetPayload) : undefined, + multisigPayload: isSet(object.multisigPayload) ? MultisigPayload.fromJSON(object.multisigPayload) : undefined, + }; + }, + + toJSON(message: TransactionPayload): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = transactionPayload_TypeToJSON(message.type); + } + if (message.entryFunctionPayload !== undefined) { + obj.entryFunctionPayload = EntryFunctionPayload.toJSON(message.entryFunctionPayload); + } + if (message.scriptPayload !== undefined) { + obj.scriptPayload = ScriptPayload.toJSON(message.scriptPayload); + } + if (message.moduleBundlePayload !== undefined) { + obj.moduleBundlePayload = ModuleBundlePayload.toJSON(message.moduleBundlePayload); + } + if (message.writeSetPayload !== undefined) { + obj.writeSetPayload = WriteSetPayload.toJSON(message.writeSetPayload); + } + if (message.multisigPayload !== undefined) { + obj.multisigPayload = MultisigPayload.toJSON(message.multisigPayload); + } + return obj; + }, + + create(base?: DeepPartial): TransactionPayload { + return TransactionPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): TransactionPayload { + const message = createBaseTransactionPayload(); + message.type = object.type ?? 0; + message.entryFunctionPayload = (object.entryFunctionPayload !== undefined && object.entryFunctionPayload !== null) + ? EntryFunctionPayload.fromPartial(object.entryFunctionPayload) + : undefined; + message.scriptPayload = (object.scriptPayload !== undefined && object.scriptPayload !== null) + ? ScriptPayload.fromPartial(object.scriptPayload) + : undefined; + message.moduleBundlePayload = (object.moduleBundlePayload !== undefined && object.moduleBundlePayload !== null) + ? ModuleBundlePayload.fromPartial(object.moduleBundlePayload) + : undefined; + message.writeSetPayload = (object.writeSetPayload !== undefined && object.writeSetPayload !== null) + ? WriteSetPayload.fromPartial(object.writeSetPayload) + : undefined; + message.multisigPayload = (object.multisigPayload !== undefined && object.multisigPayload !== null) + ? MultisigPayload.fromPartial(object.multisigPayload) + : undefined; + return message; + }, +}; + +function createBaseEntryFunctionPayload(): EntryFunctionPayload { + return { function: undefined, typeArguments: [], arguments: [], entryFunctionIdStr: "" }; +} + +export const EntryFunctionPayload = { + encode(message: EntryFunctionPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.function !== undefined) { + EntryFunctionId.encode(message.function, writer.uint32(10).fork()).ldelim(); + } + if (message.typeArguments !== undefined && message.typeArguments.length !== 0) { + for (const v of message.typeArguments) { + MoveType.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + if (message.arguments !== undefined && message.arguments.length !== 0) { + for (const v of message.arguments) { + writer.uint32(26).string(v!); + } + } + if (message.entryFunctionIdStr !== undefined && message.entryFunctionIdStr !== "") { + writer.uint32(34).string(message.entryFunctionIdStr); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EntryFunctionPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEntryFunctionPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.function = EntryFunctionId.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.typeArguments!.push(MoveType.decode(reader, reader.uint32())); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.arguments!.push(reader.string()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.entryFunctionIdStr = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionPayload.encode(p).finish()]; + } + } else { + yield* [EntryFunctionPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionPayload.decode(p)]; + } + } else { + yield* [EntryFunctionPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): EntryFunctionPayload { + return { + function: isSet(object.function) ? EntryFunctionId.fromJSON(object.function) : undefined, + typeArguments: globalThis.Array.isArray(object?.typeArguments) + ? object.typeArguments.map((e: any) => MoveType.fromJSON(e)) + : [], + arguments: globalThis.Array.isArray(object?.arguments) + ? object.arguments.map((e: any) => globalThis.String(e)) + : [], + entryFunctionIdStr: isSet(object.entryFunctionIdStr) ? globalThis.String(object.entryFunctionIdStr) : "", + }; + }, + + toJSON(message: EntryFunctionPayload): unknown { + const obj: any = {}; + if (message.function !== undefined) { + obj.function = EntryFunctionId.toJSON(message.function); + } + if (message.typeArguments?.length) { + obj.typeArguments = message.typeArguments.map((e) => MoveType.toJSON(e)); + } + if (message.arguments?.length) { + obj.arguments = message.arguments; + } + if (message.entryFunctionIdStr !== undefined && message.entryFunctionIdStr !== "") { + obj.entryFunctionIdStr = message.entryFunctionIdStr; + } + return obj; + }, + + create(base?: DeepPartial): EntryFunctionPayload { + return EntryFunctionPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): EntryFunctionPayload { + const message = createBaseEntryFunctionPayload(); + message.function = (object.function !== undefined && object.function !== null) + ? EntryFunctionId.fromPartial(object.function) + : undefined; + message.typeArguments = object.typeArguments?.map((e) => MoveType.fromPartial(e)) || []; + message.arguments = object.arguments?.map((e) => e) || []; + message.entryFunctionIdStr = object.entryFunctionIdStr ?? ""; + return message; + }, +}; + +function createBaseMoveScriptBytecode(): MoveScriptBytecode { + return { bytecode: new Uint8Array(0), abi: undefined }; +} + +export const MoveScriptBytecode = { + encode(message: MoveScriptBytecode, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + writer.uint32(10).bytes(message.bytecode); + } + if (message.abi !== undefined) { + MoveFunction.encode(message.abi, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveScriptBytecode { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveScriptBytecode(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.bytecode = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.abi = MoveFunction.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveScriptBytecode.encode(p).finish()]; + } + } else { + yield* [MoveScriptBytecode.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveScriptBytecode.decode(p)]; + } + } else { + yield* [MoveScriptBytecode.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveScriptBytecode { + return { + bytecode: isSet(object.bytecode) ? bytesFromBase64(object.bytecode) : new Uint8Array(0), + abi: isSet(object.abi) ? MoveFunction.fromJSON(object.abi) : undefined, + }; + }, + + toJSON(message: MoveScriptBytecode): unknown { + const obj: any = {}; + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + obj.bytecode = base64FromBytes(message.bytecode); + } + if (message.abi !== undefined) { + obj.abi = MoveFunction.toJSON(message.abi); + } + return obj; + }, + + create(base?: DeepPartial): MoveScriptBytecode { + return MoveScriptBytecode.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveScriptBytecode { + const message = createBaseMoveScriptBytecode(); + message.bytecode = object.bytecode ?? new Uint8Array(0); + message.abi = (object.abi !== undefined && object.abi !== null) ? MoveFunction.fromPartial(object.abi) : undefined; + return message; + }, +}; + +function createBaseScriptPayload(): ScriptPayload { + return { code: undefined, typeArguments: [], arguments: [] }; +} + +export const ScriptPayload = { + encode(message: ScriptPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.code !== undefined) { + MoveScriptBytecode.encode(message.code, writer.uint32(10).fork()).ldelim(); + } + if (message.typeArguments !== undefined && message.typeArguments.length !== 0) { + for (const v of message.typeArguments) { + MoveType.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + if (message.arguments !== undefined && message.arguments.length !== 0) { + for (const v of message.arguments) { + writer.uint32(26).string(v!); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScriptPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScriptPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.code = MoveScriptBytecode.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.typeArguments!.push(MoveType.decode(reader, reader.uint32())); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.arguments!.push(reader.string()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptPayload.encode(p).finish()]; + } + } else { + yield* [ScriptPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ScriptPayload.decode(p)]; + } + } else { + yield* [ScriptPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): ScriptPayload { + return { + code: isSet(object.code) ? MoveScriptBytecode.fromJSON(object.code) : undefined, + typeArguments: globalThis.Array.isArray(object?.typeArguments) + ? object.typeArguments.map((e: any) => MoveType.fromJSON(e)) + : [], + arguments: globalThis.Array.isArray(object?.arguments) + ? object.arguments.map((e: any) => globalThis.String(e)) + : [], + }; + }, + + toJSON(message: ScriptPayload): unknown { + const obj: any = {}; + if (message.code !== undefined) { + obj.code = MoveScriptBytecode.toJSON(message.code); + } + if (message.typeArguments?.length) { + obj.typeArguments = message.typeArguments.map((e) => MoveType.toJSON(e)); + } + if (message.arguments?.length) { + obj.arguments = message.arguments; + } + return obj; + }, + + create(base?: DeepPartial): ScriptPayload { + return ScriptPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): ScriptPayload { + const message = createBaseScriptPayload(); + message.code = (object.code !== undefined && object.code !== null) + ? MoveScriptBytecode.fromPartial(object.code) + : undefined; + message.typeArguments = object.typeArguments?.map((e) => MoveType.fromPartial(e)) || []; + message.arguments = object.arguments?.map((e) => e) || []; + return message; + }, +}; + +function createBaseMultisigPayload(): MultisigPayload { + return { multisigAddress: "", transactionPayload: undefined }; +} + +export const MultisigPayload = { + encode(message: MultisigPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.multisigAddress !== undefined && message.multisigAddress !== "") { + writer.uint32(10).string(message.multisigAddress); + } + if (message.transactionPayload !== undefined) { + MultisigTransactionPayload.encode(message.transactionPayload, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultisigPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultisigPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.multisigAddress = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.transactionPayload = MultisigTransactionPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigPayload.encode(p).finish()]; + } + } else { + yield* [MultisigPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigPayload.decode(p)]; + } + } else { + yield* [MultisigPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultisigPayload { + return { + multisigAddress: isSet(object.multisigAddress) ? globalThis.String(object.multisigAddress) : "", + transactionPayload: isSet(object.transactionPayload) + ? MultisigTransactionPayload.fromJSON(object.transactionPayload) + : undefined, + }; + }, + + toJSON(message: MultisigPayload): unknown { + const obj: any = {}; + if (message.multisigAddress !== undefined && message.multisigAddress !== "") { + obj.multisigAddress = message.multisigAddress; + } + if (message.transactionPayload !== undefined) { + obj.transactionPayload = MultisigTransactionPayload.toJSON(message.transactionPayload); + } + return obj; + }, + + create(base?: DeepPartial): MultisigPayload { + return MultisigPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultisigPayload { + const message = createBaseMultisigPayload(); + message.multisigAddress = object.multisigAddress ?? ""; + message.transactionPayload = (object.transactionPayload !== undefined && object.transactionPayload !== null) + ? MultisigTransactionPayload.fromPartial(object.transactionPayload) + : undefined; + return message; + }, +}; + +function createBaseMultisigTransactionPayload(): MultisigTransactionPayload { + return { type: 0, entryFunctionPayload: undefined }; +} + +export const MultisigTransactionPayload = { + encode(message: MultisigTransactionPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.entryFunctionPayload !== undefined) { + EntryFunctionPayload.encode(message.entryFunctionPayload, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultisigTransactionPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultisigTransactionPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.entryFunctionPayload = EntryFunctionPayload.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigTransactionPayload.encode(p).finish()]; + } + } else { + yield* [MultisigTransactionPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultisigTransactionPayload.decode(p)]; + } + } else { + yield* [MultisigTransactionPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultisigTransactionPayload { + return { + type: isSet(object.type) ? multisigTransactionPayload_TypeFromJSON(object.type) : 0, + entryFunctionPayload: isSet(object.entryFunctionPayload) + ? EntryFunctionPayload.fromJSON(object.entryFunctionPayload) + : undefined, + }; + }, + + toJSON(message: MultisigTransactionPayload): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = multisigTransactionPayload_TypeToJSON(message.type); + } + if (message.entryFunctionPayload !== undefined) { + obj.entryFunctionPayload = EntryFunctionPayload.toJSON(message.entryFunctionPayload); + } + return obj; + }, + + create(base?: DeepPartial): MultisigTransactionPayload { + return MultisigTransactionPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultisigTransactionPayload { + const message = createBaseMultisigTransactionPayload(); + message.type = object.type ?? 0; + message.entryFunctionPayload = (object.entryFunctionPayload !== undefined && object.entryFunctionPayload !== null) + ? EntryFunctionPayload.fromPartial(object.entryFunctionPayload) + : undefined; + return message; + }, +}; + +function createBaseModuleBundlePayload(): ModuleBundlePayload { + return { modules: [] }; +} + +export const ModuleBundlePayload = { + encode(message: ModuleBundlePayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.modules !== undefined && message.modules.length !== 0) { + for (const v of message.modules) { + MoveModuleBytecode.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ModuleBundlePayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseModuleBundlePayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.modules!.push(MoveModuleBytecode.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ModuleBundlePayload.encode(p).finish()]; + } + } else { + yield* [ModuleBundlePayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [ModuleBundlePayload.decode(p)]; + } + } else { + yield* [ModuleBundlePayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): ModuleBundlePayload { + return { + modules: globalThis.Array.isArray(object?.modules) + ? object.modules.map((e: any) => MoveModuleBytecode.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ModuleBundlePayload): unknown { + const obj: any = {}; + if (message.modules?.length) { + obj.modules = message.modules.map((e) => MoveModuleBytecode.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): ModuleBundlePayload { + return ModuleBundlePayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): ModuleBundlePayload { + const message = createBaseModuleBundlePayload(); + message.modules = object.modules?.map((e) => MoveModuleBytecode.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveModuleBytecode(): MoveModuleBytecode { + return { bytecode: new Uint8Array(0), abi: undefined }; +} + +export const MoveModuleBytecode = { + encode(message: MoveModuleBytecode, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + writer.uint32(10).bytes(message.bytecode); + } + if (message.abi !== undefined) { + MoveModule.encode(message.abi, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveModuleBytecode { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveModuleBytecode(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.bytecode = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.abi = MoveModule.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleBytecode.encode(p).finish()]; + } + } else { + yield* [MoveModuleBytecode.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleBytecode.decode(p)]; + } + } else { + yield* [MoveModuleBytecode.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveModuleBytecode { + return { + bytecode: isSet(object.bytecode) ? bytesFromBase64(object.bytecode) : new Uint8Array(0), + abi: isSet(object.abi) ? MoveModule.fromJSON(object.abi) : undefined, + }; + }, + + toJSON(message: MoveModuleBytecode): unknown { + const obj: any = {}; + if (message.bytecode !== undefined && message.bytecode.length !== 0) { + obj.bytecode = base64FromBytes(message.bytecode); + } + if (message.abi !== undefined) { + obj.abi = MoveModule.toJSON(message.abi); + } + return obj; + }, + + create(base?: DeepPartial): MoveModuleBytecode { + return MoveModuleBytecode.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveModuleBytecode { + const message = createBaseMoveModuleBytecode(); + message.bytecode = object.bytecode ?? new Uint8Array(0); + message.abi = (object.abi !== undefined && object.abi !== null) ? MoveModule.fromPartial(object.abi) : undefined; + return message; + }, +}; + +function createBaseMoveModule(): MoveModule { + return { address: "", name: "", friends: [], exposedFunctions: [], structs: [] }; +} + +export const MoveModule = { + encode(message: MoveModule, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(18).string(message.name); + } + if (message.friends !== undefined && message.friends.length !== 0) { + for (const v of message.friends) { + MoveModuleId.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.exposedFunctions !== undefined && message.exposedFunctions.length !== 0) { + for (const v of message.exposedFunctions) { + MoveFunction.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + if (message.structs !== undefined && message.structs.length !== 0) { + for (const v of message.structs) { + MoveStruct.encode(v!, writer.uint32(42).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveModule { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveModule(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.friends!.push(MoveModuleId.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.exposedFunctions!.push(MoveFunction.decode(reader, reader.uint32())); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.structs!.push(MoveStruct.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModule.encode(p).finish()]; + } + } else { + yield* [MoveModule.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModule.decode(p)]; + } + } else { + yield* [MoveModule.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveModule { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + friends: globalThis.Array.isArray(object?.friends) + ? object.friends.map((e: any) => MoveModuleId.fromJSON(e)) + : [], + exposedFunctions: globalThis.Array.isArray(object?.exposedFunctions) + ? object.exposedFunctions.map((e: any) => MoveFunction.fromJSON(e)) + : [], + structs: globalThis.Array.isArray(object?.structs) ? object.structs.map((e: any) => MoveStruct.fromJSON(e)) : [], + }; + }, + + toJSON(message: MoveModule): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.friends?.length) { + obj.friends = message.friends.map((e) => MoveModuleId.toJSON(e)); + } + if (message.exposedFunctions?.length) { + obj.exposedFunctions = message.exposedFunctions.map((e) => MoveFunction.toJSON(e)); + } + if (message.structs?.length) { + obj.structs = message.structs.map((e) => MoveStruct.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveModule { + return MoveModule.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveModule { + const message = createBaseMoveModule(); + message.address = object.address ?? ""; + message.name = object.name ?? ""; + message.friends = object.friends?.map((e) => MoveModuleId.fromPartial(e)) || []; + message.exposedFunctions = object.exposedFunctions?.map((e) => MoveFunction.fromPartial(e)) || []; + message.structs = object.structs?.map((e) => MoveStruct.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveFunction(): MoveFunction { + return { name: "", visibility: 0, isEntry: false, genericTypeParams: [], params: [], return: [] }; +} + +export const MoveFunction = { + encode(message: MoveFunction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== undefined && message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.visibility !== undefined && message.visibility !== 0) { + writer.uint32(16).int32(message.visibility); + } + if (message.isEntry === true) { + writer.uint32(24).bool(message.isEntry); + } + if (message.genericTypeParams !== undefined && message.genericTypeParams.length !== 0) { + for (const v of message.genericTypeParams) { + MoveFunctionGenericTypeParam.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + if (message.params !== undefined && message.params.length !== 0) { + for (const v of message.params) { + MoveType.encode(v!, writer.uint32(42).fork()).ldelim(); + } + } + if (message.return !== undefined && message.return.length !== 0) { + for (const v of message.return) { + MoveType.encode(v!, writer.uint32(50).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveFunction { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveFunction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.visibility = reader.int32() as any; + continue; + case 3: + if (tag !== 24) { + break; + } + + message.isEntry = reader.bool(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.genericTypeParams!.push(MoveFunctionGenericTypeParam.decode(reader, reader.uint32())); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.params!.push(MoveType.decode(reader, reader.uint32())); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.return!.push(MoveType.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunction.encode(p).finish()]; + } + } else { + yield* [MoveFunction.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunction.decode(p)]; + } + } else { + yield* [MoveFunction.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveFunction { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + visibility: isSet(object.visibility) ? moveFunction_VisibilityFromJSON(object.visibility) : 0, + isEntry: isSet(object.isEntry) ? globalThis.Boolean(object.isEntry) : false, + genericTypeParams: globalThis.Array.isArray(object?.genericTypeParams) + ? object.genericTypeParams.map((e: any) => MoveFunctionGenericTypeParam.fromJSON(e)) + : [], + params: globalThis.Array.isArray(object?.params) ? object.params.map((e: any) => MoveType.fromJSON(e)) : [], + return: globalThis.Array.isArray(object?.return) ? object.return.map((e: any) => MoveType.fromJSON(e)) : [], + }; + }, + + toJSON(message: MoveFunction): unknown { + const obj: any = {}; + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.visibility !== undefined && message.visibility !== 0) { + obj.visibility = moveFunction_VisibilityToJSON(message.visibility); + } + if (message.isEntry === true) { + obj.isEntry = message.isEntry; + } + if (message.genericTypeParams?.length) { + obj.genericTypeParams = message.genericTypeParams.map((e) => MoveFunctionGenericTypeParam.toJSON(e)); + } + if (message.params?.length) { + obj.params = message.params.map((e) => MoveType.toJSON(e)); + } + if (message.return?.length) { + obj.return = message.return.map((e) => MoveType.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveFunction { + return MoveFunction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveFunction { + const message = createBaseMoveFunction(); + message.name = object.name ?? ""; + message.visibility = object.visibility ?? 0; + message.isEntry = object.isEntry ?? false; + message.genericTypeParams = object.genericTypeParams?.map((e) => MoveFunctionGenericTypeParam.fromPartial(e)) || []; + message.params = object.params?.map((e) => MoveType.fromPartial(e)) || []; + message.return = object.return?.map((e) => MoveType.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveStruct(): MoveStruct { + return { name: "", isNative: false, abilities: [], genericTypeParams: [], fields: [] }; +} + +export const MoveStruct = { + encode(message: MoveStruct, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== undefined && message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.isNative === true) { + writer.uint32(16).bool(message.isNative); + } + if (message.abilities !== undefined && message.abilities.length !== 0) { + writer.uint32(26).fork(); + for (const v of message.abilities) { + writer.int32(v); + } + writer.ldelim(); + } + if (message.genericTypeParams !== undefined && message.genericTypeParams.length !== 0) { + for (const v of message.genericTypeParams) { + MoveStructGenericTypeParam.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + if (message.fields !== undefined && message.fields.length !== 0) { + for (const v of message.fields) { + MoveStructField.encode(v!, writer.uint32(42).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStruct { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStruct(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.isNative = reader.bool(); + continue; + case 3: + if (tag === 24) { + message.abilities!.push(reader.int32() as any); + + continue; + } + + if (tag === 26) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.abilities!.push(reader.int32() as any); + } + + continue; + } + + break; + case 4: + if (tag !== 34) { + break; + } + + message.genericTypeParams!.push(MoveStructGenericTypeParam.decode(reader, reader.uint32())); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.fields!.push(MoveStructField.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStruct.encode(p).finish()]; + } + } else { + yield* [MoveStruct.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStruct.decode(p)]; + } + } else { + yield* [MoveStruct.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStruct { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + isNative: isSet(object.isNative) ? globalThis.Boolean(object.isNative) : false, + abilities: globalThis.Array.isArray(object?.abilities) + ? object.abilities.map((e: any) => moveAbilityFromJSON(e)) + : [], + genericTypeParams: globalThis.Array.isArray(object?.genericTypeParams) + ? object.genericTypeParams.map((e: any) => MoveStructGenericTypeParam.fromJSON(e)) + : [], + fields: globalThis.Array.isArray(object?.fields) + ? object.fields.map((e: any) => MoveStructField.fromJSON(e)) + : [], + }; + }, + + toJSON(message: MoveStruct): unknown { + const obj: any = {}; + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.isNative === true) { + obj.isNative = message.isNative; + } + if (message.abilities?.length) { + obj.abilities = message.abilities.map((e) => moveAbilityToJSON(e)); + } + if (message.genericTypeParams?.length) { + obj.genericTypeParams = message.genericTypeParams.map((e) => MoveStructGenericTypeParam.toJSON(e)); + } + if (message.fields?.length) { + obj.fields = message.fields.map((e) => MoveStructField.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveStruct { + return MoveStruct.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStruct { + const message = createBaseMoveStruct(); + message.name = object.name ?? ""; + message.isNative = object.isNative ?? false; + message.abilities = object.abilities?.map((e) => e) || []; + message.genericTypeParams = object.genericTypeParams?.map((e) => MoveStructGenericTypeParam.fromPartial(e)) || []; + message.fields = object.fields?.map((e) => MoveStructField.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseMoveStructGenericTypeParam(): MoveStructGenericTypeParam { + return { constraints: [], isPhantom: false }; +} + +export const MoveStructGenericTypeParam = { + encode(message: MoveStructGenericTypeParam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.constraints !== undefined && message.constraints.length !== 0) { + writer.uint32(10).fork(); + for (const v of message.constraints) { + writer.int32(v); + } + writer.ldelim(); + } + if (message.isPhantom === true) { + writer.uint32(16).bool(message.isPhantom); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStructGenericTypeParam { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStructGenericTypeParam(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag === 8) { + message.constraints!.push(reader.int32() as any); + + continue; + } + + if (tag === 10) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.constraints!.push(reader.int32() as any); + } + + continue; + } + + break; + case 2: + if (tag !== 16) { + break; + } + + message.isPhantom = reader.bool(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructGenericTypeParam.encode(p).finish()]; + } + } else { + yield* [MoveStructGenericTypeParam.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructGenericTypeParam.decode(p)]; + } + } else { + yield* [MoveStructGenericTypeParam.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStructGenericTypeParam { + return { + constraints: globalThis.Array.isArray(object?.constraints) + ? object.constraints.map((e: any) => moveAbilityFromJSON(e)) + : [], + isPhantom: isSet(object.isPhantom) ? globalThis.Boolean(object.isPhantom) : false, + }; + }, + + toJSON(message: MoveStructGenericTypeParam): unknown { + const obj: any = {}; + if (message.constraints?.length) { + obj.constraints = message.constraints.map((e) => moveAbilityToJSON(e)); + } + if (message.isPhantom === true) { + obj.isPhantom = message.isPhantom; + } + return obj; + }, + + create(base?: DeepPartial): MoveStructGenericTypeParam { + return MoveStructGenericTypeParam.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStructGenericTypeParam { + const message = createBaseMoveStructGenericTypeParam(); + message.constraints = object.constraints?.map((e) => e) || []; + message.isPhantom = object.isPhantom ?? false; + return message; + }, +}; + +function createBaseMoveStructField(): MoveStructField { + return { name: "", type: undefined }; +} + +export const MoveStructField = { + encode(message: MoveStructField, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.name !== undefined && message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.type !== undefined) { + MoveType.encode(message.type, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStructField { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStructField(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.type = MoveType.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructField.encode(p).finish()]; + } + } else { + yield* [MoveStructField.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructField.decode(p)]; + } + } else { + yield* [MoveStructField.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStructField { + return { + name: isSet(object.name) ? globalThis.String(object.name) : "", + type: isSet(object.type) ? MoveType.fromJSON(object.type) : undefined, + }; + }, + + toJSON(message: MoveStructField): unknown { + const obj: any = {}; + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.type !== undefined) { + obj.type = MoveType.toJSON(message.type); + } + return obj; + }, + + create(base?: DeepPartial): MoveStructField { + return MoveStructField.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStructField { + const message = createBaseMoveStructField(); + message.name = object.name ?? ""; + message.type = (object.type !== undefined && object.type !== null) ? MoveType.fromPartial(object.type) : undefined; + return message; + }, +}; + +function createBaseMoveFunctionGenericTypeParam(): MoveFunctionGenericTypeParam { + return { constraints: [] }; +} + +export const MoveFunctionGenericTypeParam = { + encode(message: MoveFunctionGenericTypeParam, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.constraints !== undefined && message.constraints.length !== 0) { + writer.uint32(10).fork(); + for (const v of message.constraints) { + writer.int32(v); + } + writer.ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveFunctionGenericTypeParam { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveFunctionGenericTypeParam(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag === 8) { + message.constraints!.push(reader.int32() as any); + + continue; + } + + if (tag === 10) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.constraints!.push(reader.int32() as any); + } + + continue; + } + + break; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunctionGenericTypeParam.encode(p).finish()]; + } + } else { + yield* [MoveFunctionGenericTypeParam.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveFunctionGenericTypeParam.decode(p)]; + } + } else { + yield* [MoveFunctionGenericTypeParam.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveFunctionGenericTypeParam { + return { + constraints: globalThis.Array.isArray(object?.constraints) + ? object.constraints.map((e: any) => moveAbilityFromJSON(e)) + : [], + }; + }, + + toJSON(message: MoveFunctionGenericTypeParam): unknown { + const obj: any = {}; + if (message.constraints?.length) { + obj.constraints = message.constraints.map((e) => moveAbilityToJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveFunctionGenericTypeParam { + return MoveFunctionGenericTypeParam.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveFunctionGenericTypeParam { + const message = createBaseMoveFunctionGenericTypeParam(); + message.constraints = object.constraints?.map((e) => e) || []; + return message; + }, +}; + +function createBaseMoveType(): MoveType { + return { + type: 0, + vector: undefined, + struct: undefined, + genericTypeParamIndex: undefined, + reference: undefined, + unparsable: undefined, + }; +} + +export const MoveType = { + encode(message: MoveType, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.vector !== undefined) { + MoveType.encode(message.vector, writer.uint32(26).fork()).ldelim(); + } + if (message.struct !== undefined) { + MoveStructTag.encode(message.struct, writer.uint32(34).fork()).ldelim(); + } + if (message.genericTypeParamIndex !== undefined) { + writer.uint32(40).uint32(message.genericTypeParamIndex); + } + if (message.reference !== undefined) { + MoveType_ReferenceType.encode(message.reference, writer.uint32(50).fork()).ldelim(); + } + if (message.unparsable !== undefined) { + writer.uint32(58).string(message.unparsable); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveType { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveType(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 3: + if (tag !== 26) { + break; + } + + message.vector = MoveType.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.struct = MoveStructTag.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 40) { + break; + } + + message.genericTypeParamIndex = reader.uint32(); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.reference = MoveType_ReferenceType.decode(reader, reader.uint32()); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.unparsable = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType.encode(p).finish()]; + } + } else { + yield* [MoveType.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType.decode(p)]; + } + } else { + yield* [MoveType.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveType { + return { + type: isSet(object.type) ? moveTypesFromJSON(object.type) : 0, + vector: isSet(object.vector) ? MoveType.fromJSON(object.vector) : undefined, + struct: isSet(object.struct) ? MoveStructTag.fromJSON(object.struct) : undefined, + genericTypeParamIndex: isSet(object.genericTypeParamIndex) + ? globalThis.Number(object.genericTypeParamIndex) + : undefined, + reference: isSet(object.reference) ? MoveType_ReferenceType.fromJSON(object.reference) : undefined, + unparsable: isSet(object.unparsable) ? globalThis.String(object.unparsable) : undefined, + }; + }, + + toJSON(message: MoveType): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = moveTypesToJSON(message.type); + } + if (message.vector !== undefined) { + obj.vector = MoveType.toJSON(message.vector); + } + if (message.struct !== undefined) { + obj.struct = MoveStructTag.toJSON(message.struct); + } + if (message.genericTypeParamIndex !== undefined) { + obj.genericTypeParamIndex = Math.round(message.genericTypeParamIndex); + } + if (message.reference !== undefined) { + obj.reference = MoveType_ReferenceType.toJSON(message.reference); + } + if (message.unparsable !== undefined) { + obj.unparsable = message.unparsable; + } + return obj; + }, + + create(base?: DeepPartial): MoveType { + return MoveType.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveType { + const message = createBaseMoveType(); + message.type = object.type ?? 0; + message.vector = (object.vector !== undefined && object.vector !== null) + ? MoveType.fromPartial(object.vector) + : undefined; + message.struct = (object.struct !== undefined && object.struct !== null) + ? MoveStructTag.fromPartial(object.struct) + : undefined; + message.genericTypeParamIndex = object.genericTypeParamIndex ?? undefined; + message.reference = (object.reference !== undefined && object.reference !== null) + ? MoveType_ReferenceType.fromPartial(object.reference) + : undefined; + message.unparsable = object.unparsable ?? undefined; + return message; + }, +}; + +function createBaseMoveType_ReferenceType(): MoveType_ReferenceType { + return { mutable: false, to: undefined }; +} + +export const MoveType_ReferenceType = { + encode(message: MoveType_ReferenceType, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.mutable === true) { + writer.uint32(8).bool(message.mutable); + } + if (message.to !== undefined) { + MoveType.encode(message.to, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveType_ReferenceType { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveType_ReferenceType(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.mutable = reader.bool(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.to = MoveType.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType_ReferenceType.encode(p).finish()]; + } + } else { + yield* [MoveType_ReferenceType.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveType_ReferenceType.decode(p)]; + } + } else { + yield* [MoveType_ReferenceType.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveType_ReferenceType { + return { + mutable: isSet(object.mutable) ? globalThis.Boolean(object.mutable) : false, + to: isSet(object.to) ? MoveType.fromJSON(object.to) : undefined, + }; + }, + + toJSON(message: MoveType_ReferenceType): unknown { + const obj: any = {}; + if (message.mutable === true) { + obj.mutable = message.mutable; + } + if (message.to !== undefined) { + obj.to = MoveType.toJSON(message.to); + } + return obj; + }, + + create(base?: DeepPartial): MoveType_ReferenceType { + return MoveType_ReferenceType.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveType_ReferenceType { + const message = createBaseMoveType_ReferenceType(); + message.mutable = object.mutable ?? false; + message.to = (object.to !== undefined && object.to !== null) ? MoveType.fromPartial(object.to) : undefined; + return message; + }, +}; + +function createBaseWriteSetPayload(): WriteSetPayload { + return { writeSet: undefined }; +} + +export const WriteSetPayload = { + encode(message: WriteSetPayload, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.writeSet !== undefined) { + WriteSet.encode(message.writeSet, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): WriteSetPayload { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseWriteSetPayload(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.writeSet = WriteSet.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetPayload.encode(p).finish()]; + } + } else { + yield* [WriteSetPayload.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [WriteSetPayload.decode(p)]; + } + } else { + yield* [WriteSetPayload.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): WriteSetPayload { + return { writeSet: isSet(object.writeSet) ? WriteSet.fromJSON(object.writeSet) : undefined }; + }, + + toJSON(message: WriteSetPayload): unknown { + const obj: any = {}; + if (message.writeSet !== undefined) { + obj.writeSet = WriteSet.toJSON(message.writeSet); + } + return obj; + }, + + create(base?: DeepPartial): WriteSetPayload { + return WriteSetPayload.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): WriteSetPayload { + const message = createBaseWriteSetPayload(); + message.writeSet = (object.writeSet !== undefined && object.writeSet !== null) + ? WriteSet.fromPartial(object.writeSet) + : undefined; + return message; + }, +}; + +function createBaseEntryFunctionId(): EntryFunctionId { + return { module: undefined, name: "" }; +} + +export const EntryFunctionId = { + encode(message: EntryFunctionId, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.module !== undefined) { + MoveModuleId.encode(message.module, writer.uint32(10).fork()).ldelim(); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(18).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): EntryFunctionId { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEntryFunctionId(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.module = MoveModuleId.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionId.encode(p).finish()]; + } + } else { + yield* [EntryFunctionId.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [EntryFunctionId.decode(p)]; + } + } else { + yield* [EntryFunctionId.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): EntryFunctionId { + return { + module: isSet(object.module) ? MoveModuleId.fromJSON(object.module) : undefined, + name: isSet(object.name) ? globalThis.String(object.name) : "", + }; + }, + + toJSON(message: EntryFunctionId): unknown { + const obj: any = {}; + if (message.module !== undefined) { + obj.module = MoveModuleId.toJSON(message.module); + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create(base?: DeepPartial): EntryFunctionId { + return EntryFunctionId.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): EntryFunctionId { + const message = createBaseEntryFunctionId(); + message.module = (object.module !== undefined && object.module !== null) + ? MoveModuleId.fromPartial(object.module) + : undefined; + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseMoveModuleId(): MoveModuleId { + return { address: "", name: "" }; +} + +export const MoveModuleId = { + encode(message: MoveModuleId, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(18).string(message.name); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveModuleId { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveModuleId(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.name = reader.string(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleId.encode(p).finish()]; + } + } else { + yield* [MoveModuleId.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveModuleId.decode(p)]; + } + } else { + yield* [MoveModuleId.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveModuleId { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + }; + }, + + toJSON(message: MoveModuleId): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + return obj; + }, + + create(base?: DeepPartial): MoveModuleId { + return MoveModuleId.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveModuleId { + const message = createBaseMoveModuleId(); + message.address = object.address ?? ""; + message.name = object.name ?? ""; + return message; + }, +}; + +function createBaseMoveStructTag(): MoveStructTag { + return { address: "", module: "", name: "", genericTypeParams: [] }; +} + +export const MoveStructTag = { + encode(message: MoveStructTag, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.address !== undefined && message.address !== "") { + writer.uint32(10).string(message.address); + } + if (message.module !== undefined && message.module !== "") { + writer.uint32(18).string(message.module); + } + if (message.name !== undefined && message.name !== "") { + writer.uint32(26).string(message.name); + } + if (message.genericTypeParams !== undefined && message.genericTypeParams.length !== 0) { + for (const v of message.genericTypeParams) { + MoveType.encode(v!, writer.uint32(34).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MoveStructTag { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMoveStructTag(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.address = reader.string(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.module = reader.string(); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.name = reader.string(); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.genericTypeParams!.push(MoveType.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructTag.encode(p).finish()]; + } + } else { + yield* [MoveStructTag.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MoveStructTag.decode(p)]; + } + } else { + yield* [MoveStructTag.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MoveStructTag { + return { + address: isSet(object.address) ? globalThis.String(object.address) : "", + module: isSet(object.module) ? globalThis.String(object.module) : "", + name: isSet(object.name) ? globalThis.String(object.name) : "", + genericTypeParams: globalThis.Array.isArray(object?.genericTypeParams) + ? object.genericTypeParams.map((e: any) => MoveType.fromJSON(e)) + : [], + }; + }, + + toJSON(message: MoveStructTag): unknown { + const obj: any = {}; + if (message.address !== undefined && message.address !== "") { + obj.address = message.address; + } + if (message.module !== undefined && message.module !== "") { + obj.module = message.module; + } + if (message.name !== undefined && message.name !== "") { + obj.name = message.name; + } + if (message.genericTypeParams?.length) { + obj.genericTypeParams = message.genericTypeParams.map((e) => MoveType.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MoveStructTag { + return MoveStructTag.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MoveStructTag { + const message = createBaseMoveStructTag(); + message.address = object.address ?? ""; + message.module = object.module ?? ""; + message.name = object.name ?? ""; + message.genericTypeParams = object.genericTypeParams?.map((e) => MoveType.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseSignature(): Signature { + return { + type: 0, + ed25519: undefined, + multiEd25519: undefined, + multiAgent: undefined, + feePayer: undefined, + singleSender: undefined, + }; +} + +export const Signature = { + encode(message: Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.ed25519 !== undefined) { + Ed25519Signature.encode(message.ed25519, writer.uint32(18).fork()).ldelim(); + } + if (message.multiEd25519 !== undefined) { + MultiEd25519Signature.encode(message.multiEd25519, writer.uint32(26).fork()).ldelim(); + } + if (message.multiAgent !== undefined) { + MultiAgentSignature.encode(message.multiAgent, writer.uint32(34).fork()).ldelim(); + } + if (message.feePayer !== undefined) { + FeePayerSignature.encode(message.feePayer, writer.uint32(42).fork()).ldelim(); + } + if (message.singleSender !== undefined) { + SingleSender.encode(message.singleSender, writer.uint32(58).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Signature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.ed25519 = Ed25519Signature.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.multiEd25519 = MultiEd25519Signature.decode(reader, reader.uint32()); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.multiAgent = MultiAgentSignature.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.feePayer = FeePayerSignature.decode(reader, reader.uint32()); + continue; + case 7: + if (tag !== 58) { + break; + } + + message.singleSender = SingleSender.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Signature.encode(p).finish()]; + } + } else { + yield* [Signature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Signature.decode(p)]; + } + } else { + yield* [Signature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Signature { + return { + type: isSet(object.type) ? signature_TypeFromJSON(object.type) : 0, + ed25519: isSet(object.ed25519) ? Ed25519Signature.fromJSON(object.ed25519) : undefined, + multiEd25519: isSet(object.multiEd25519) ? MultiEd25519Signature.fromJSON(object.multiEd25519) : undefined, + multiAgent: isSet(object.multiAgent) ? MultiAgentSignature.fromJSON(object.multiAgent) : undefined, + feePayer: isSet(object.feePayer) ? FeePayerSignature.fromJSON(object.feePayer) : undefined, + singleSender: isSet(object.singleSender) ? SingleSender.fromJSON(object.singleSender) : undefined, + }; + }, + + toJSON(message: Signature): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = signature_TypeToJSON(message.type); + } + if (message.ed25519 !== undefined) { + obj.ed25519 = Ed25519Signature.toJSON(message.ed25519); + } + if (message.multiEd25519 !== undefined) { + obj.multiEd25519 = MultiEd25519Signature.toJSON(message.multiEd25519); + } + if (message.multiAgent !== undefined) { + obj.multiAgent = MultiAgentSignature.toJSON(message.multiAgent); + } + if (message.feePayer !== undefined) { + obj.feePayer = FeePayerSignature.toJSON(message.feePayer); + } + if (message.singleSender !== undefined) { + obj.singleSender = SingleSender.toJSON(message.singleSender); + } + return obj; + }, + + create(base?: DeepPartial): Signature { + return Signature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Signature { + const message = createBaseSignature(); + message.type = object.type ?? 0; + message.ed25519 = (object.ed25519 !== undefined && object.ed25519 !== null) + ? Ed25519Signature.fromPartial(object.ed25519) + : undefined; + message.multiEd25519 = (object.multiEd25519 !== undefined && object.multiEd25519 !== null) + ? MultiEd25519Signature.fromPartial(object.multiEd25519) + : undefined; + message.multiAgent = (object.multiAgent !== undefined && object.multiAgent !== null) + ? MultiAgentSignature.fromPartial(object.multiAgent) + : undefined; + message.feePayer = (object.feePayer !== undefined && object.feePayer !== null) + ? FeePayerSignature.fromPartial(object.feePayer) + : undefined; + message.singleSender = (object.singleSender !== undefined && object.singleSender !== null) + ? SingleSender.fromPartial(object.singleSender) + : undefined; + return message; + }, +}; + +function createBaseEd25519Signature(): Ed25519Signature { + return { publicKey: new Uint8Array(0), signature: new Uint8Array(0) }; +} + +export const Ed25519Signature = { + encode(message: Ed25519Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + writer.uint32(10).bytes(message.publicKey); + } + if (message.signature !== undefined && message.signature.length !== 0) { + writer.uint32(18).bytes(message.signature); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Ed25519Signature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseEd25519Signature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKey = reader.bytes(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = reader.bytes(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Ed25519Signature.encode(p).finish()]; + } + } else { + yield* [Ed25519Signature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Ed25519Signature.decode(p)]; + } + } else { + yield* [Ed25519Signature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Ed25519Signature { + return { + publicKey: isSet(object.publicKey) ? bytesFromBase64(object.publicKey) : new Uint8Array(0), + signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0), + }; + }, + + toJSON(message: Ed25519Signature): unknown { + const obj: any = {}; + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + obj.publicKey = base64FromBytes(message.publicKey); + } + if (message.signature !== undefined && message.signature.length !== 0) { + obj.signature = base64FromBytes(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): Ed25519Signature { + return Ed25519Signature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Ed25519Signature { + const message = createBaseEd25519Signature(); + message.publicKey = object.publicKey ?? new Uint8Array(0); + message.signature = object.signature ?? new Uint8Array(0); + return message; + }, +}; + +function createBaseMultiEd25519Signature(): MultiEd25519Signature { + return { publicKeys: [], signatures: [], threshold: 0, publicKeyIndices: [] }; +} + +export const MultiEd25519Signature = { + encode(message: MultiEd25519Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKeys !== undefined && message.publicKeys.length !== 0) { + for (const v of message.publicKeys) { + writer.uint32(10).bytes(v!); + } + } + if (message.signatures !== undefined && message.signatures.length !== 0) { + for (const v of message.signatures) { + writer.uint32(18).bytes(v!); + } + } + if (message.threshold !== undefined && message.threshold !== 0) { + writer.uint32(24).uint32(message.threshold); + } + if (message.publicKeyIndices !== undefined && message.publicKeyIndices.length !== 0) { + writer.uint32(34).fork(); + for (const v of message.publicKeyIndices) { + writer.uint32(v); + } + writer.ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultiEd25519Signature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultiEd25519Signature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKeys!.push(reader.bytes()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signatures!.push(reader.bytes()); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.threshold = reader.uint32(); + continue; + case 4: + if (tag === 32) { + message.publicKeyIndices!.push(reader.uint32()); + + continue; + } + + if (tag === 34) { + const end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) { + message.publicKeyIndices!.push(reader.uint32()); + } + + continue; + } + + break; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiEd25519Signature.encode(p).finish()]; + } + } else { + yield* [MultiEd25519Signature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiEd25519Signature.decode(p)]; + } + } else { + yield* [MultiEd25519Signature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultiEd25519Signature { + return { + publicKeys: globalThis.Array.isArray(object?.publicKeys) + ? object.publicKeys.map((e: any) => bytesFromBase64(e)) + : [], + signatures: globalThis.Array.isArray(object?.signatures) + ? object.signatures.map((e: any) => bytesFromBase64(e)) + : [], + threshold: isSet(object.threshold) ? globalThis.Number(object.threshold) : 0, + publicKeyIndices: globalThis.Array.isArray(object?.publicKeyIndices) + ? object.publicKeyIndices.map((e: any) => globalThis.Number(e)) + : [], + }; + }, + + toJSON(message: MultiEd25519Signature): unknown { + const obj: any = {}; + if (message.publicKeys?.length) { + obj.publicKeys = message.publicKeys.map((e) => base64FromBytes(e)); + } + if (message.signatures?.length) { + obj.signatures = message.signatures.map((e) => base64FromBytes(e)); + } + if (message.threshold !== undefined && message.threshold !== 0) { + obj.threshold = Math.round(message.threshold); + } + if (message.publicKeyIndices?.length) { + obj.publicKeyIndices = message.publicKeyIndices.map((e) => Math.round(e)); + } + return obj; + }, + + create(base?: DeepPartial): MultiEd25519Signature { + return MultiEd25519Signature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultiEd25519Signature { + const message = createBaseMultiEd25519Signature(); + message.publicKeys = object.publicKeys?.map((e) => e) || []; + message.signatures = object.signatures?.map((e) => e) || []; + message.threshold = object.threshold ?? 0; + message.publicKeyIndices = object.publicKeyIndices?.map((e) => e) || []; + return message; + }, +}; + +function createBaseMultiAgentSignature(): MultiAgentSignature { + return { sender: undefined, secondarySignerAddresses: [], secondarySigners: [] }; +} + +export const MultiAgentSignature = { + encode(message: MultiAgentSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined) { + AccountSignature.encode(message.sender, writer.uint32(10).fork()).ldelim(); + } + if (message.secondarySignerAddresses !== undefined && message.secondarySignerAddresses.length !== 0) { + for (const v of message.secondarySignerAddresses) { + writer.uint32(18).string(v!); + } + } + if (message.secondarySigners !== undefined && message.secondarySigners.length !== 0) { + for (const v of message.secondarySigners) { + AccountSignature.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultiAgentSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultiAgentSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = AccountSignature.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.secondarySignerAddresses!.push(reader.string()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.secondarySigners!.push(AccountSignature.decode(reader, reader.uint32())); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiAgentSignature.encode(p).finish()]; + } + } else { + yield* [MultiAgentSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiAgentSignature.decode(p)]; + } + } else { + yield* [MultiAgentSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultiAgentSignature { + return { + sender: isSet(object.sender) ? AccountSignature.fromJSON(object.sender) : undefined, + secondarySignerAddresses: globalThis.Array.isArray(object?.secondarySignerAddresses) + ? object.secondarySignerAddresses.map((e: any) => globalThis.String(e)) + : [], + secondarySigners: globalThis.Array.isArray(object?.secondarySigners) + ? object.secondarySigners.map((e: any) => AccountSignature.fromJSON(e)) + : [], + }; + }, + + toJSON(message: MultiAgentSignature): unknown { + const obj: any = {}; + if (message.sender !== undefined) { + obj.sender = AccountSignature.toJSON(message.sender); + } + if (message.secondarySignerAddresses?.length) { + obj.secondarySignerAddresses = message.secondarySignerAddresses; + } + if (message.secondarySigners?.length) { + obj.secondarySigners = message.secondarySigners.map((e) => AccountSignature.toJSON(e)); + } + return obj; + }, + + create(base?: DeepPartial): MultiAgentSignature { + return MultiAgentSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultiAgentSignature { + const message = createBaseMultiAgentSignature(); + message.sender = (object.sender !== undefined && object.sender !== null) + ? AccountSignature.fromPartial(object.sender) + : undefined; + message.secondarySignerAddresses = object.secondarySignerAddresses?.map((e) => e) || []; + message.secondarySigners = object.secondarySigners?.map((e) => AccountSignature.fromPartial(e)) || []; + return message; + }, +}; + +function createBaseFeePayerSignature(): FeePayerSignature { + return { + sender: undefined, + secondarySignerAddresses: [], + secondarySigners: [], + feePayerAddress: "", + feePayerSigner: undefined, + }; +} + +export const FeePayerSignature = { + encode(message: FeePayerSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined) { + AccountSignature.encode(message.sender, writer.uint32(10).fork()).ldelim(); + } + if (message.secondarySignerAddresses !== undefined && message.secondarySignerAddresses.length !== 0) { + for (const v of message.secondarySignerAddresses) { + writer.uint32(18).string(v!); + } + } + if (message.secondarySigners !== undefined && message.secondarySigners.length !== 0) { + for (const v of message.secondarySigners) { + AccountSignature.encode(v!, writer.uint32(26).fork()).ldelim(); + } + } + if (message.feePayerAddress !== undefined && message.feePayerAddress !== "") { + writer.uint32(34).string(message.feePayerAddress); + } + if (message.feePayerSigner !== undefined) { + AccountSignature.encode(message.feePayerSigner, writer.uint32(42).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): FeePayerSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseFeePayerSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = AccountSignature.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.secondarySignerAddresses!.push(reader.string()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.secondarySigners!.push(AccountSignature.decode(reader, reader.uint32())); + continue; + case 4: + if (tag !== 34) { + break; + } + + message.feePayerAddress = reader.string(); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.feePayerSigner = AccountSignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [FeePayerSignature.encode(p).finish()]; + } + } else { + yield* [FeePayerSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [FeePayerSignature.decode(p)]; + } + } else { + yield* [FeePayerSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): FeePayerSignature { + return { + sender: isSet(object.sender) ? AccountSignature.fromJSON(object.sender) : undefined, + secondarySignerAddresses: globalThis.Array.isArray(object?.secondarySignerAddresses) + ? object.secondarySignerAddresses.map((e: any) => globalThis.String(e)) + : [], + secondarySigners: globalThis.Array.isArray(object?.secondarySigners) + ? object.secondarySigners.map((e: any) => AccountSignature.fromJSON(e)) + : [], + feePayerAddress: isSet(object.feePayerAddress) ? globalThis.String(object.feePayerAddress) : "", + feePayerSigner: isSet(object.feePayerSigner) ? AccountSignature.fromJSON(object.feePayerSigner) : undefined, + }; + }, + + toJSON(message: FeePayerSignature): unknown { + const obj: any = {}; + if (message.sender !== undefined) { + obj.sender = AccountSignature.toJSON(message.sender); + } + if (message.secondarySignerAddresses?.length) { + obj.secondarySignerAddresses = message.secondarySignerAddresses; + } + if (message.secondarySigners?.length) { + obj.secondarySigners = message.secondarySigners.map((e) => AccountSignature.toJSON(e)); + } + if (message.feePayerAddress !== undefined && message.feePayerAddress !== "") { + obj.feePayerAddress = message.feePayerAddress; + } + if (message.feePayerSigner !== undefined) { + obj.feePayerSigner = AccountSignature.toJSON(message.feePayerSigner); + } + return obj; + }, + + create(base?: DeepPartial): FeePayerSignature { + return FeePayerSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): FeePayerSignature { + const message = createBaseFeePayerSignature(); + message.sender = (object.sender !== undefined && object.sender !== null) + ? AccountSignature.fromPartial(object.sender) + : undefined; + message.secondarySignerAddresses = object.secondarySignerAddresses?.map((e) => e) || []; + message.secondarySigners = object.secondarySigners?.map((e) => AccountSignature.fromPartial(e)) || []; + message.feePayerAddress = object.feePayerAddress ?? ""; + message.feePayerSigner = (object.feePayerSigner !== undefined && object.feePayerSigner !== null) + ? AccountSignature.fromPartial(object.feePayerSigner) + : undefined; + return message; + }, +}; + +function createBaseAnyPublicKey(): AnyPublicKey { + return { type: 0, publicKey: new Uint8Array(0) }; +} + +export const AnyPublicKey = { + encode(message: AnyPublicKey, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + writer.uint32(18).bytes(message.publicKey); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AnyPublicKey { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAnyPublicKey(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.publicKey = reader.bytes(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnyPublicKey.encode(p).finish()]; + } + } else { + yield* [AnyPublicKey.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnyPublicKey.decode(p)]; + } + } else { + yield* [AnyPublicKey.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): AnyPublicKey { + return { + type: isSet(object.type) ? anyPublicKey_TypeFromJSON(object.type) : 0, + publicKey: isSet(object.publicKey) ? bytesFromBase64(object.publicKey) : new Uint8Array(0), + }; + }, + + toJSON(message: AnyPublicKey): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = anyPublicKey_TypeToJSON(message.type); + } + if (message.publicKey !== undefined && message.publicKey.length !== 0) { + obj.publicKey = base64FromBytes(message.publicKey); + } + return obj; + }, + + create(base?: DeepPartial): AnyPublicKey { + return AnyPublicKey.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): AnyPublicKey { + const message = createBaseAnyPublicKey(); + message.type = object.type ?? 0; + message.publicKey = object.publicKey ?? new Uint8Array(0); + return message; + }, +}; + +function createBaseAnySignature(): AnySignature { + return { type: 0, signature: new Uint8Array(0) }; +} + +export const AnySignature = { + encode(message: AnySignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.signature !== undefined && message.signature.length !== 0) { + writer.uint32(18).bytes(message.signature); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AnySignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAnySignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = reader.bytes(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnySignature.encode(p).finish()]; + } + } else { + yield* [AnySignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AnySignature.decode(p)]; + } + } else { + yield* [AnySignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): AnySignature { + return { + type: isSet(object.type) ? anySignature_TypeFromJSON(object.type) : 0, + signature: isSet(object.signature) ? bytesFromBase64(object.signature) : new Uint8Array(0), + }; + }, + + toJSON(message: AnySignature): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = anySignature_TypeToJSON(message.type); + } + if (message.signature !== undefined && message.signature.length !== 0) { + obj.signature = base64FromBytes(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): AnySignature { + return AnySignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): AnySignature { + const message = createBaseAnySignature(); + message.type = object.type ?? 0; + message.signature = object.signature ?? new Uint8Array(0); + return message; + }, +}; + +function createBaseSingleKeySignature(): SingleKeySignature { + return { publicKey: undefined, signature: undefined }; +} + +export const SingleKeySignature = { + encode(message: SingleKeySignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKey !== undefined) { + AnyPublicKey.encode(message.publicKey, writer.uint32(10).fork()).ldelim(); + } + if (message.signature !== undefined) { + AnySignature.encode(message.signature, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SingleKeySignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSingleKeySignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKey = AnyPublicKey.decode(reader, reader.uint32()); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = AnySignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: + | AsyncIterable + | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleKeySignature.encode(p).finish()]; + } + } else { + yield* [SingleKeySignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleKeySignature.decode(p)]; + } + } else { + yield* [SingleKeySignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): SingleKeySignature { + return { + publicKey: isSet(object.publicKey) ? AnyPublicKey.fromJSON(object.publicKey) : undefined, + signature: isSet(object.signature) ? AnySignature.fromJSON(object.signature) : undefined, + }; + }, + + toJSON(message: SingleKeySignature): unknown { + const obj: any = {}; + if (message.publicKey !== undefined) { + obj.publicKey = AnyPublicKey.toJSON(message.publicKey); + } + if (message.signature !== undefined) { + obj.signature = AnySignature.toJSON(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): SingleKeySignature { + return SingleKeySignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): SingleKeySignature { + const message = createBaseSingleKeySignature(); + message.publicKey = (object.publicKey !== undefined && object.publicKey !== null) + ? AnyPublicKey.fromPartial(object.publicKey) + : undefined; + message.signature = (object.signature !== undefined && object.signature !== null) + ? AnySignature.fromPartial(object.signature) + : undefined; + return message; + }, +}; + +function createBaseIndexedSignature(): IndexedSignature { + return { index: 0, signature: undefined }; +} + +export const IndexedSignature = { + encode(message: IndexedSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.index !== undefined && message.index !== 0) { + writer.uint32(8).uint32(message.index); + } + if (message.signature !== undefined) { + AnySignature.encode(message.signature, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): IndexedSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseIndexedSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.index = reader.uint32(); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signature = AnySignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [IndexedSignature.encode(p).finish()]; + } + } else { + yield* [IndexedSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [IndexedSignature.decode(p)]; + } + } else { + yield* [IndexedSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): IndexedSignature { + return { + index: isSet(object.index) ? globalThis.Number(object.index) : 0, + signature: isSet(object.signature) ? AnySignature.fromJSON(object.signature) : undefined, + }; + }, + + toJSON(message: IndexedSignature): unknown { + const obj: any = {}; + if (message.index !== undefined && message.index !== 0) { + obj.index = Math.round(message.index); + } + if (message.signature !== undefined) { + obj.signature = AnySignature.toJSON(message.signature); + } + return obj; + }, + + create(base?: DeepPartial): IndexedSignature { + return IndexedSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): IndexedSignature { + const message = createBaseIndexedSignature(); + message.index = object.index ?? 0; + message.signature = (object.signature !== undefined && object.signature !== null) + ? AnySignature.fromPartial(object.signature) + : undefined; + return message; + }, +}; + +function createBaseMultiKeySignature(): MultiKeySignature { + return { publicKeys: [], signatures: [], signaturesRequired: 0 }; +} + +export const MultiKeySignature = { + encode(message: MultiKeySignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.publicKeys !== undefined && message.publicKeys.length !== 0) { + for (const v of message.publicKeys) { + AnyPublicKey.encode(v!, writer.uint32(10).fork()).ldelim(); + } + } + if (message.signatures !== undefined && message.signatures.length !== 0) { + for (const v of message.signatures) { + IndexedSignature.encode(v!, writer.uint32(18).fork()).ldelim(); + } + } + if (message.signaturesRequired !== undefined && message.signaturesRequired !== 0) { + writer.uint32(24).uint32(message.signaturesRequired); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MultiKeySignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMultiKeySignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.publicKeys!.push(AnyPublicKey.decode(reader, reader.uint32())); + continue; + case 2: + if (tag !== 18) { + break; + } + + message.signatures!.push(IndexedSignature.decode(reader, reader.uint32())); + continue; + case 3: + if (tag !== 24) { + break; + } + + message.signaturesRequired = reader.uint32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiKeySignature.encode(p).finish()]; + } + } else { + yield* [MultiKeySignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [MultiKeySignature.decode(p)]; + } + } else { + yield* [MultiKeySignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): MultiKeySignature { + return { + publicKeys: globalThis.Array.isArray(object?.publicKeys) + ? object.publicKeys.map((e: any) => AnyPublicKey.fromJSON(e)) + : [], + signatures: globalThis.Array.isArray(object?.signatures) + ? object.signatures.map((e: any) => IndexedSignature.fromJSON(e)) + : [], + signaturesRequired: isSet(object.signaturesRequired) ? globalThis.Number(object.signaturesRequired) : 0, + }; + }, + + toJSON(message: MultiKeySignature): unknown { + const obj: any = {}; + if (message.publicKeys?.length) { + obj.publicKeys = message.publicKeys.map((e) => AnyPublicKey.toJSON(e)); + } + if (message.signatures?.length) { + obj.signatures = message.signatures.map((e) => IndexedSignature.toJSON(e)); + } + if (message.signaturesRequired !== undefined && message.signaturesRequired !== 0) { + obj.signaturesRequired = Math.round(message.signaturesRequired); + } + return obj; + }, + + create(base?: DeepPartial): MultiKeySignature { + return MultiKeySignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): MultiKeySignature { + const message = createBaseMultiKeySignature(); + message.publicKeys = object.publicKeys?.map((e) => AnyPublicKey.fromPartial(e)) || []; + message.signatures = object.signatures?.map((e) => IndexedSignature.fromPartial(e)) || []; + message.signaturesRequired = object.signaturesRequired ?? 0; + return message; + }, +}; + +function createBaseSingleSender(): SingleSender { + return { sender: undefined }; +} + +export const SingleSender = { + encode(message: SingleSender, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.sender !== undefined) { + AccountSignature.encode(message.sender, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SingleSender { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSingleSender(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 10) { + break; + } + + message.sender = AccountSignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleSender.encode(p).finish()]; + } + } else { + yield* [SingleSender.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [SingleSender.decode(p)]; + } + } else { + yield* [SingleSender.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): SingleSender { + return { sender: isSet(object.sender) ? AccountSignature.fromJSON(object.sender) : undefined }; + }, + + toJSON(message: SingleSender): unknown { + const obj: any = {}; + if (message.sender !== undefined) { + obj.sender = AccountSignature.toJSON(message.sender); + } + return obj; + }, + + create(base?: DeepPartial): SingleSender { + return SingleSender.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): SingleSender { + const message = createBaseSingleSender(); + message.sender = (object.sender !== undefined && object.sender !== null) + ? AccountSignature.fromPartial(object.sender) + : undefined; + return message; + }, +}; + +function createBaseAccountSignature(): AccountSignature { + return { + type: 0, + ed25519: undefined, + multiEd25519: undefined, + singleKeySignature: undefined, + multiKeySignature: undefined, + }; +} + +export const AccountSignature = { + encode(message: AccountSignature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.type !== undefined && message.type !== 0) { + writer.uint32(8).int32(message.type); + } + if (message.ed25519 !== undefined) { + Ed25519Signature.encode(message.ed25519, writer.uint32(18).fork()).ldelim(); + } + if (message.multiEd25519 !== undefined) { + MultiEd25519Signature.encode(message.multiEd25519, writer.uint32(26).fork()).ldelim(); + } + if (message.singleKeySignature !== undefined) { + SingleKeySignature.encode(message.singleKeySignature, writer.uint32(42).fork()).ldelim(); + } + if (message.multiKeySignature !== undefined) { + MultiKeySignature.encode(message.multiKeySignature, writer.uint32(50).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): AccountSignature { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseAccountSignature(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.type = reader.int32() as any; + continue; + case 2: + if (tag !== 18) { + break; + } + + message.ed25519 = Ed25519Signature.decode(reader, reader.uint32()); + continue; + case 3: + if (tag !== 26) { + break; + } + + message.multiEd25519 = MultiEd25519Signature.decode(reader, reader.uint32()); + continue; + case 5: + if (tag !== 42) { + break; + } + + message.singleKeySignature = SingleKeySignature.decode(reader, reader.uint32()); + continue; + case 6: + if (tag !== 50) { + break; + } + + message.multiKeySignature = MultiKeySignature.decode(reader, reader.uint32()); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AccountSignature.encode(p).finish()]; + } + } else { + yield* [AccountSignature.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [AccountSignature.decode(p)]; + } + } else { + yield* [AccountSignature.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): AccountSignature { + return { + type: isSet(object.type) ? accountSignature_TypeFromJSON(object.type) : 0, + ed25519: isSet(object.ed25519) ? Ed25519Signature.fromJSON(object.ed25519) : undefined, + multiEd25519: isSet(object.multiEd25519) ? MultiEd25519Signature.fromJSON(object.multiEd25519) : undefined, + singleKeySignature: isSet(object.singleKeySignature) + ? SingleKeySignature.fromJSON(object.singleKeySignature) + : undefined, + multiKeySignature: isSet(object.multiKeySignature) + ? MultiKeySignature.fromJSON(object.multiKeySignature) + : undefined, + }; + }, + + toJSON(message: AccountSignature): unknown { + const obj: any = {}; + if (message.type !== undefined && message.type !== 0) { + obj.type = accountSignature_TypeToJSON(message.type); + } + if (message.ed25519 !== undefined) { + obj.ed25519 = Ed25519Signature.toJSON(message.ed25519); + } + if (message.multiEd25519 !== undefined) { + obj.multiEd25519 = MultiEd25519Signature.toJSON(message.multiEd25519); + } + if (message.singleKeySignature !== undefined) { + obj.singleKeySignature = SingleKeySignature.toJSON(message.singleKeySignature); + } + if (message.multiKeySignature !== undefined) { + obj.multiKeySignature = MultiKeySignature.toJSON(message.multiKeySignature); + } + return obj; + }, + + create(base?: DeepPartial): AccountSignature { + return AccountSignature.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): AccountSignature { + const message = createBaseAccountSignature(); + message.type = object.type ?? 0; + message.ed25519 = (object.ed25519 !== undefined && object.ed25519 !== null) + ? Ed25519Signature.fromPartial(object.ed25519) + : undefined; + message.multiEd25519 = (object.multiEd25519 !== undefined && object.multiEd25519 !== null) + ? MultiEd25519Signature.fromPartial(object.multiEd25519) + : undefined; + message.singleKeySignature = (object.singleKeySignature !== undefined && object.singleKeySignature !== null) + ? SingleKeySignature.fromPartial(object.singleKeySignature) + : undefined; + message.multiKeySignature = (object.multiKeySignature !== undefined && object.multiKeySignature !== null) + ? MultiKeySignature.fromPartial(object.multiKeySignature) + : undefined; + return message; + }, +}; + +function bytesFromBase64(b64: string): Uint8Array { + if (globalThis.Buffer) { + return Uint8Array.from(globalThis.Buffer.from(b64, "base64")); + } else { + const bin = globalThis.atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; + } +} + +function base64FromBytes(arr: Uint8Array): string { + if (globalThis.Buffer) { + return globalThis.Buffer.from(arr).toString("base64"); + } else { + const bin: string[] = []; + arr.forEach((byte) => { + bin.push(globalThis.String.fromCharCode(byte)); + }); + return globalThis.btoa(bin.join("")); + } +} + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/aptos/util/timestamp/timestamp.ts b/protos/typescript/src/aptos/util/timestamp/timestamp.ts new file mode 100644 index 00000000000000..9d3078718d9e7a --- /dev/null +++ b/protos/typescript/src/aptos/util/timestamp/timestamp.ts @@ -0,0 +1,151 @@ +/* eslint-disable */ +import Long from "long"; +import _m0 from "protobufjs/minimal"; + +export interface Timestamp { + /** + * Represents seconds of UTC time since Unix epoch + * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + * 9999-12-31T23:59:59Z inclusive. + */ + seconds?: + | bigint + | undefined; + /** + * Non-negative fractions of a second at nanosecond resolution. Negative + * second values with fractions must still have non-negative nanos values + * that count forward in time. Must be from 0 to 999,999,999 + * inclusive. + */ + nanos?: number | undefined; +} + +function createBaseTimestamp(): Timestamp { + return { seconds: BigInt("0"), nanos: 0 }; +} + +export const Timestamp = { + encode(message: Timestamp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.seconds !== undefined && message.seconds !== BigInt("0")) { + if (BigInt.asIntN(64, message.seconds) !== message.seconds) { + throw new Error("value provided for field message.seconds of type int64 too large"); + } + writer.uint32(8).int64(message.seconds.toString()); + } + if (message.nanos !== undefined && message.nanos !== 0) { + writer.uint32(16).int32(message.nanos); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp { + const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTimestamp(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (tag !== 8) { + break; + } + + message.seconds = longToBigint(reader.int64() as Long); + continue; + case 2: + if (tag !== 16) { + break; + } + + message.nanos = reader.int32(); + continue; + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skipType(tag & 7); + } + return message; + }, + + // encodeTransform encodes a source of message objects. + // Transform + async *encodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Timestamp.encode(p).finish()]; + } + } else { + yield* [Timestamp.encode(pkt as any).finish()]; + } + } + }, + + // decodeTransform decodes a source of encoded messages. + // Transform + async *decodeTransform( + source: AsyncIterable | Iterable, + ): AsyncIterable { + for await (const pkt of source) { + if (globalThis.Array.isArray(pkt)) { + for (const p of (pkt as any)) { + yield* [Timestamp.decode(p)]; + } + } else { + yield* [Timestamp.decode(pkt as any)]; + } + } + }, + + fromJSON(object: any): Timestamp { + return { + seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt("0"), + nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0, + }; + }, + + toJSON(message: Timestamp): unknown { + const obj: any = {}; + if (message.seconds !== undefined && message.seconds !== BigInt("0")) { + obj.seconds = message.seconds.toString(); + } + if (message.nanos !== undefined && message.nanos !== 0) { + obj.nanos = Math.round(message.nanos); + } + return obj; + }, + + create(base?: DeepPartial): Timestamp { + return Timestamp.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Timestamp { + const message = createBaseTimestamp(); + message.seconds = object.seconds ?? BigInt("0"); + message.nanos = object.nanos ?? 0; + return message; + }, +}; + +type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined; + +type DeepPartial = T extends Builtin ? T + : T extends globalThis.Array ? globalThis.Array> + : T extends ReadonlyArray ? ReadonlyArray> + : T extends {} ? { [K in keyof T]?: DeepPartial } + : Partial; + +function longToBigint(long: Long) { + return BigInt(long.toString()); +} + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/protos/typescript/src/index.aptos.bigquery_schema.transaction.ts b/protos/typescript/src/index.aptos.bigquery_schema.transaction.ts new file mode 100644 index 00000000000000..57af9d47075133 --- /dev/null +++ b/protos/typescript/src/index.aptos.bigquery_schema.transaction.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.bigquery_schema.transaction.v1"; diff --git a/protos/typescript/src/index.aptos.bigquery_schema.transaction.v1.ts b/protos/typescript/src/index.aptos.bigquery_schema.transaction.v1.ts new file mode 100644 index 00000000000000..4fb576536c1b84 --- /dev/null +++ b/protos/typescript/src/index.aptos.bigquery_schema.transaction.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/bigquery_schema/v1/transaction"; diff --git a/protos/typescript/src/index.aptos.bigquery_schema.ts b/protos/typescript/src/index.aptos.bigquery_schema.ts new file mode 100644 index 00000000000000..b82d98837f8948 --- /dev/null +++ b/protos/typescript/src/index.aptos.bigquery_schema.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as transaction from "./index.aptos.bigquery_schema.transaction"; diff --git a/protos/typescript/src/index.aptos.indexer.ts b/protos/typescript/src/index.aptos.indexer.ts new file mode 100644 index 00000000000000..c437f202304bd2 --- /dev/null +++ b/protos/typescript/src/index.aptos.indexer.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.indexer.v1"; diff --git a/protos/typescript/src/index.aptos.indexer.v1.ts b/protos/typescript/src/index.aptos.indexer.v1.ts new file mode 100644 index 00000000000000..b3dd8fc7ceb723 --- /dev/null +++ b/protos/typescript/src/index.aptos.indexer.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/indexer/v1/raw_data"; diff --git a/protos/typescript/src/index.aptos.internal.fullnode.ts b/protos/typescript/src/index.aptos.internal.fullnode.ts new file mode 100644 index 00000000000000..5ffb1299ca909d --- /dev/null +++ b/protos/typescript/src/index.aptos.internal.fullnode.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.internal.fullnode.v1"; diff --git a/protos/typescript/src/index.aptos.internal.fullnode.v1.ts b/protos/typescript/src/index.aptos.internal.fullnode.v1.ts new file mode 100644 index 00000000000000..e7a3916b28680d --- /dev/null +++ b/protos/typescript/src/index.aptos.internal.fullnode.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/internal/fullnode/v1/fullnode_data"; diff --git a/protos/typescript/src/index.aptos.internal.ts b/protos/typescript/src/index.aptos.internal.ts new file mode 100644 index 00000000000000..2835be6041a2a5 --- /dev/null +++ b/protos/typescript/src/index.aptos.internal.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as fullnode from "./index.aptos.internal.fullnode"; diff --git a/protos/typescript/src/index.aptos.remote_executor.ts b/protos/typescript/src/index.aptos.remote_executor.ts new file mode 100644 index 00000000000000..d46c4b1ea5e2b1 --- /dev/null +++ b/protos/typescript/src/index.aptos.remote_executor.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.remote_executor.v1"; diff --git a/protos/typescript/src/index.aptos.remote_executor.v1.ts b/protos/typescript/src/index.aptos.remote_executor.v1.ts new file mode 100644 index 00000000000000..db0d9647752c20 --- /dev/null +++ b/protos/typescript/src/index.aptos.remote_executor.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/remote_executor/v1/network_msg"; diff --git a/protos/typescript/src/index.aptos.transaction.ts b/protos/typescript/src/index.aptos.transaction.ts new file mode 100644 index 00000000000000..ce34cc3b817638 --- /dev/null +++ b/protos/typescript/src/index.aptos.transaction.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as v1 from "./index.aptos.transaction.v1"; diff --git a/protos/typescript/src/index.aptos.transaction.v1.ts b/protos/typescript/src/index.aptos.transaction.v1.ts new file mode 100644 index 00000000000000..21896c6ef58566 --- /dev/null +++ b/protos/typescript/src/index.aptos.transaction.v1.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/transaction/v1/transaction"; diff --git a/protos/typescript/src/index.aptos.ts b/protos/typescript/src/index.aptos.ts new file mode 100644 index 00000000000000..b847dd590ac5e4 --- /dev/null +++ b/protos/typescript/src/index.aptos.ts @@ -0,0 +1,8 @@ +/* eslint-disable */ + +export * as bigquery_schema from "./index.aptos.bigquery_schema"; +export * as util from "./index.aptos.util"; +export * as transaction from "./index.aptos.transaction"; +export * as indexer from "./index.aptos.indexer"; +export * as internal from "./index.aptos.internal"; +export * as remote_executor from "./index.aptos.remote_executor"; diff --git a/protos/typescript/src/index.aptos.util.timestamp.ts b/protos/typescript/src/index.aptos.util.timestamp.ts new file mode 100644 index 00000000000000..8f0d4199a1e00e --- /dev/null +++ b/protos/typescript/src/index.aptos.util.timestamp.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * from "./aptos/util/timestamp/timestamp"; diff --git a/protos/typescript/src/index.aptos.util.ts b/protos/typescript/src/index.aptos.util.ts new file mode 100644 index 00000000000000..ddcef4716b743d --- /dev/null +++ b/protos/typescript/src/index.aptos.util.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as timestamp from "./index.aptos.util.timestamp"; diff --git a/protos/typescript/src/index.ts b/protos/typescript/src/index.ts new file mode 100644 index 00000000000000..73b04cc86ba1bd --- /dev/null +++ b/protos/typescript/src/index.ts @@ -0,0 +1,3 @@ +/* eslint-disable */ + +export * as aptos from "./index.aptos"; diff --git a/protos/typescript/tsconfig.json b/protos/typescript/tsconfig.json new file mode 100644 index 00000000000000..3523f503069472 --- /dev/null +++ b/protos/typescript/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "strict": true, + "target": "es2021", + "moduleResolution": "node", + "declaration": true, + "sourceMap": true, + "experimentalDecorators": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": false, + "noImplicitReturns": true, + "allowSyntheticDefaultImports": true, + "useDefineForClassFields": true, + "esModuleInterop": true, + "skipLibCheck": false, + "forceConsistentCasingInFileNames": true + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +}