UNPKG

@hashgraph/proto

Version:
827 lines (719 loc) 1.71 MB
import * as $protobuf from "protobufjs"; import Long = require("long"); export = hashgraph; declare namespace hashgraph { /** Namespace com. */ namespace com { /** Namespace hedera. */ namespace hedera { /** Namespace mirror. */ namespace mirror { /** Namespace api. */ namespace api { /** Namespace hashgraph.proto. */ namespace proto { /** Properties of a ConsensusTopicQuery. */ interface IConsensusTopicQuery { /** A required topic ID to retrieve messages for. */ topicID?: (hashgraph.proto.ITopicID|null); /** * Include messages which reached consensus on or after this time. Defaults to current time if * not set. */ consensusStartTime?: (hashgraph.proto.ITimestamp|null); /** * Include messages which reached consensus before this time. If not set it will receive * indefinitely. */ consensusEndTime?: (hashgraph.proto.ITimestamp|null); /** * The maximum number of messages to receive before stopping. If not set or set to zero it will * return messages indefinitely. */ limit?: (Long|null); } /** Represents a ConsensusTopicQuery. */ class ConsensusTopicQuery implements IConsensusTopicQuery { /** * Constructs a new ConsensusTopicQuery. * @param [p] Properties to set */ constructor(p?: com.hedera.mirror.api.proto.IConsensusTopicQuery); /** A required topic ID to retrieve messages for. */ public topicID?: (hashgraph.proto.ITopicID|null); /** * Include messages which reached consensus on or after this time. Defaults to current time if * not set. */ public consensusStartTime?: (hashgraph.proto.ITimestamp|null); /** * Include messages which reached consensus before this time. If not set it will receive * indefinitely. */ public consensusEndTime?: (hashgraph.proto.ITimestamp|null); /** * The maximum number of messages to receive before stopping. If not set or set to zero it will * return messages indefinitely. */ public limit: Long; /** * Creates a new ConsensusTopicQuery instance using the specified properties. * @param [properties] Properties to set * @returns ConsensusTopicQuery instance */ public static create(properties?: com.hedera.mirror.api.proto.IConsensusTopicQuery): com.hedera.mirror.api.proto.ConsensusTopicQuery; /** * Encodes the specified ConsensusTopicQuery message. Does not implicitly {@link com.hedera.mirror.api.proto.ConsensusTopicQuery.verify|verify} messages. * @param m ConsensusTopicQuery message or plain object to encode * @param [w] Writer to encode to * @returns Writer */ public static encode(m: com.hedera.mirror.api.proto.IConsensusTopicQuery, w?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a ConsensusTopicQuery message from the specified reader or buffer. * @param r Reader or buffer to decode from * @param [l] Message length if known beforehand * @returns ConsensusTopicQuery * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): com.hedera.mirror.api.proto.ConsensusTopicQuery; /** * Gets the default type url for ConsensusTopicQuery * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a ConsensusTopicResponse. */ interface IConsensusTopicResponse { /** The time at which the transaction reached consensus */ consensusTimestamp?: (hashgraph.proto.ITimestamp|null); /** * The message body originally in the ConsensusSubmitMessageTransactionBody. Message size will * be less than 6KiB. */ message?: (Uint8Array|null); /** The running hash (SHA384) of every message. */ runningHash?: (Uint8Array|null); /** Starts at 1 for first submitted message. Incremented on each submitted message. */ sequenceNumber?: (Long|null); /** Version of the SHA-384 digest used to update the running hash. */ runningHashVersion?: (Long|null); /** Optional information of the current chunk in a fragmented message. */ chunkInfo?: (hashgraph.proto.IConsensusMessageChunkInfo|null); } /** Represents a ConsensusTopicResponse. */ class ConsensusTopicResponse implements IConsensusTopicResponse { /** * Constructs a new ConsensusTopicResponse. * @param [p] Properties to set */ constructor(p?: com.hedera.mirror.api.proto.IConsensusTopicResponse); /** The time at which the transaction reached consensus */ public consensusTimestamp?: (hashgraph.proto.ITimestamp|null); /** * The message body originally in the ConsensusSubmitMessageTransactionBody. Message size will * be less than 6KiB. */ public message: Uint8Array; /** The running hash (SHA384) of every message. */ public runningHash: Uint8Array; /** Starts at 1 for first submitted message. Incremented on each submitted message. */ public sequenceNumber: Long; /** Version of the SHA-384 digest used to update the running hash. */ public runningHashVersion: Long; /** Optional information of the current chunk in a fragmented message. */ public chunkInfo?: (hashgraph.proto.IConsensusMessageChunkInfo|null); /** * Creates a new ConsensusTopicResponse instance using the specified properties. * @param [properties] Properties to set * @returns ConsensusTopicResponse instance */ public static create(properties?: com.hedera.mirror.api.proto.IConsensusTopicResponse): com.hedera.mirror.api.proto.ConsensusTopicResponse; /** * Encodes the specified ConsensusTopicResponse message. Does not implicitly {@link com.hedera.mirror.api.proto.ConsensusTopicResponse.verify|verify} messages. * @param m ConsensusTopicResponse message or plain object to encode * @param [w] Writer to encode to * @returns Writer */ public static encode(m: com.hedera.mirror.api.proto.IConsensusTopicResponse, w?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a ConsensusTopicResponse message from the specified reader or buffer. * @param r Reader or buffer to decode from * @param [l] Message length if known beforehand * @returns ConsensusTopicResponse * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): com.hedera.mirror.api.proto.ConsensusTopicResponse; /** * Gets the default type url for ConsensusTopicResponse * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } /** * The Mirror Service provides the ability to query a stream of Hedera Consensus Service (HCS) * messages for an HCS Topic via a specific (possibly open-ended) time range. */ class ConsensusService extends $protobuf.rpc.Service { /** * Constructs a new ConsensusService service. * @param rpcImpl RPC implementation * @param [requestDelimited=false] Whether requests are length-delimited * @param [responseDelimited=false] Whether responses are length-delimited */ constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); /** * Creates new ConsensusService service using the specified rpc implementation. * @param rpcImpl RPC implementation * @param [requestDelimited=false] Whether requests are length-delimited * @param [responseDelimited=false] Whether responses are length-delimited * @returns RPC service. Useful where requests and/or responses are streamed. */ public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): ConsensusService; /** * Calls subscribeTopic. * @param request ConsensusTopicQuery message or plain object * @param callback Node-style callback called with the error, if any, and ConsensusTopicResponse */ public subscribeTopic(request: com.hedera.mirror.api.proto.IConsensusTopicQuery, callback: com.hedera.mirror.api.proto.ConsensusService.subscribeTopicCallback): void; /** * Calls subscribeTopic. * @param request ConsensusTopicQuery message or plain object * @returns Promise */ public subscribeTopic(request: com.hedera.mirror.api.proto.IConsensusTopicQuery): Promise<com.hedera.mirror.api.proto.ConsensusTopicResponse>; } namespace ConsensusService { /** * Callback as used by {@link com.hedera.mirror.api.proto.ConsensusService#subscribeTopic}. * @param error Error, if any * @param [response] ConsensusTopicResponse */ type subscribeTopicCallback = (error: (Error|null), response?: com.hedera.mirror.api.proto.ConsensusTopicResponse) => void; } /** Properties of an AddressBookQuery. */ interface IAddressBookQuery { /** The ID of the address book file on the network. Can be either 0.0.101 or 0.0.102. */ fileId?: (hashgraph.proto.IFileID|null); /** The maximum number of node addresses to receive before stopping. If not set or set to zero it will return all node addresses in the database. */ limit?: (number|null); } /** Request object to query an address book for its list of nodes */ class AddressBookQuery implements IAddressBookQuery { /** * Constructs a new AddressBookQuery. * @param [p] Properties to set */ constructor(p?: com.hedera.mirror.api.proto.IAddressBookQuery); /** The ID of the address book file on the network. Can be either 0.0.101 or 0.0.102. */ public fileId?: (hashgraph.proto.IFileID|null); /** The maximum number of node addresses to receive before stopping. If not set or set to zero it will return all node addresses in the database. */ public limit: number; /** * Creates a new AddressBookQuery instance using the specified properties. * @param [properties] Properties to set * @returns AddressBookQuery instance */ public static create(properties?: com.hedera.mirror.api.proto.IAddressBookQuery): com.hedera.mirror.api.proto.AddressBookQuery; /** * Encodes the specified AddressBookQuery message. Does not implicitly {@link com.hedera.mirror.api.proto.AddressBookQuery.verify|verify} messages. * @param m AddressBookQuery message or plain object to encode * @param [w] Writer to encode to * @returns Writer */ public static encode(m: com.hedera.mirror.api.proto.IAddressBookQuery, w?: $protobuf.Writer): $protobuf.Writer; /** * Decodes an AddressBookQuery message from the specified reader or buffer. * @param r Reader or buffer to decode from * @param [l] Message length if known beforehand * @returns AddressBookQuery * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): com.hedera.mirror.api.proto.AddressBookQuery; /** * Gets the default type url for AddressBookQuery * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } /** Provides cross network APIs like address book queries */ class NetworkService extends $protobuf.rpc.Service { /** * Constructs a new NetworkService service. * @param rpcImpl RPC implementation * @param [requestDelimited=false] Whether requests are length-delimited * @param [responseDelimited=false] Whether responses are length-delimited */ constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean); /** * Creates new NetworkService service using the specified rpc implementation. * @param rpcImpl RPC implementation * @param [requestDelimited=false] Whether requests are length-delimited * @param [responseDelimited=false] Whether responses are length-delimited * @returns RPC service. Useful where requests and/or responses are streamed. */ public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): NetworkService; /** * Calls getNodes. * @param request AddressBookQuery message or plain object * @param callback Node-style callback called with the error, if any, and NodeAddress */ public getNodes(request: com.hedera.mirror.api.proto.IAddressBookQuery, callback: com.hedera.mirror.api.proto.NetworkService.getNodesCallback): void; /** * Calls getNodes. * @param request AddressBookQuery message or plain object * @returns Promise */ public getNodes(request: com.hedera.mirror.api.proto.IAddressBookQuery): Promise<hashgraph.proto.NodeAddress>; } namespace NetworkService { /** * Callback as used by {@link com.hedera.mirror.api.proto.NetworkService#getNodes}. * @param error Error, if any * @param [response] NodeAddress */ type getNodesCallback = (error: (Error|null), response?: hashgraph.proto.NodeAddress) => void; } } } } /** Namespace hapi. */ namespace hapi { /** Namespace node. */ namespace node { /** Namespace addressbook. */ namespace addressbook { /** Properties of a NodeCreateTransactionBody. */ interface INodeCreateTransactionBody { /** * A Node account identifier. * <p> * This account identifier MUST be in the "account number" form.<br/> * This account identifier MUST NOT use the alias field.<br/> * If the identified account does not exist, this transaction SHALL fail.<br/> * Multiple nodes MAY share the same node account.<br/> * This field is REQUIRED. */ accountId?: (hashgraph.proto.IAccountID|null); /** * A short description of the node. * <p> * This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes` * (default 100) bytes when encoded as UTF-8.<br/> * This field is OPTIONAL. */ description?: (string|null); /** * A list of service endpoints for gossip. * <p> * These endpoints SHALL represent the published endpoints to which other * consensus nodes may _gossip_ transactions.<br/> * These endpoints MUST specify a port.<br/> * This list MUST NOT be empty.<br/> * This list MUST NOT contain more than `10` entries.<br/> * The first two entries in this list SHALL be the endpoints published to * all consensus nodes.<br/> * All other entries SHALL be reserved for future use. * <p> * Each network may have additional requirements for these endpoints. * A client MUST check network-specific documentation for those * details.<br/> * If the network configuration value `gossipFqdnRestricted` is set, then * all endpoints in this list MUST supply only IP address.<br/> * If the network configuration value `gossipFqdnRestricted` is _not_ set, * then endpoints in this list MAY supply either IP address or FQDN, but * MUST NOT supply both values for the same endpoint. */ gossipEndpoint?: (hashgraph.proto.IServiceEndpoint[]|null); /** * A list of service endpoints for gRPC calls. * <p> * These endpoints SHALL represent the published gRPC endpoints to which * clients may submit transactions.<br/> * These endpoints MUST specify a port.<br/> * Endpoints in this list MAY supply either IP address or FQDN, but MUST * NOT supply both values for the same endpoint.<br/> * This list MUST NOT be empty.<br/> * This list MUST NOT contain more than `8` entries. */ serviceEndpoint?: (hashgraph.proto.IServiceEndpoint[]|null); /** * A certificate used to sign gossip events. * <p> * This value MUST be a certificate of a type permitted for gossip * signatures.<br/> * This value MUST be the DER encoding of the certificate presented.<br/> * This field is REQUIRED and MUST NOT be empty. */ gossipCaCertificate?: (Uint8Array|null); /** * A hash of the node gRPC TLS certificate. * <p> * This value MAY be used to verify the certificate presented by the node * during TLS negotiation for gRPC.<br/> * This value MUST be a SHA-384 hash.<br/> * The TLS certificate to be hashed MUST first be in PEM format and MUST be * encoded with UTF-8 NFKD encoding to a stream of bytes provided to * the hash algorithm.<br/> * This field is OPTIONAL. */ grpcCertificateHash?: (Uint8Array|null); /** * An administrative key controlled by the node operator. * <p> * This key MUST sign this transaction.<br/> * This key MUST sign each transaction to update this node.<br/> * This field MUST contain a valid `Key` value.<br/> * This field is REQUIRED and MUST NOT be set to an empty `KeyList`. */ adminKey?: (hashgraph.proto.IKey|null); /** * A boolean flag indicating whether the node operator declines to receive * node rewards. * <p> * If this flag is set to `true`, the node operator declines to receive * node rewards.<br/> */ declineReward?: (boolean|null); /** * A web proxy for gRPC from non-gRPC clients. * <p> * This endpoint SHALL be a Fully Qualified Domain Name (FQDN) using the HTTPS * protocol, and SHALL support gRPC-Web for use by browser-based clients.<br/> * This endpoint MUST be signed by a trusted certificate authority.<br/> * This endpoint MUST use a valid port and SHALL be reachable over TLS.<br/> * This field MAY be omitted if the node does not support gRPC-Web access.<br/> * This field MUST be updated if the gRPC-Web endpoint changes.<br/> * This field SHALL enable frontend clients to avoid hard-coded proxy endpoints. */ grpcProxyEndpoint?: (hashgraph.proto.IServiceEndpoint|null); } /** * A transaction body to add a new consensus node to the network address book. * * This transaction body SHALL be considered a "privileged transaction". * * This message supports a transaction to create a new node in the network * address book. The transaction, once complete, enables a new consensus node * to join the network, and requires governing council authorization. * * - A `NodeCreateTransactionBody` MUST be signed by the `Key` assigned to the * `admin_key` field and one of those keys: treasure account (2) key, * systemAdmin(50) key, or addressBookAdmin(55) key. * - The newly created node information SHALL be added to the network address * book information in the network state. * - The new entry SHALL be created in "state" but SHALL NOT participate in * network consensus and SHALL NOT be present in network "configuration" * until the next "upgrade" transaction (as noted below). * - All new address book entries SHALL be added to the active network * configuration during the next `freeze` transaction with the field * `freeze_type` set to `PREPARE_UPGRADE`. * * ### Block Stream Effects * Upon completion the newly assigned `node_id` SHALL be recorded in * the transaction receipt.<br/> * This value SHALL be the next available node identifier.<br/> * Node identifiers SHALL NOT be reused. */ class NodeCreateTransactionBody implements INodeCreateTransactionBody { /** * Constructs a new NodeCreateTransactionBody. * @param [p] Properties to set */ constructor(p?: com.hedera.hapi.node.addressbook.INodeCreateTransactionBody); /** * A Node account identifier. * <p> * This account identifier MUST be in the "account number" form.<br/> * This account identifier MUST NOT use the alias field.<br/> * If the identified account does not exist, this transaction SHALL fail.<br/> * Multiple nodes MAY share the same node account.<br/> * This field is REQUIRED. */ public accountId?: (hashgraph.proto.IAccountID|null); /** * A short description of the node. * <p> * This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes` * (default 100) bytes when encoded as UTF-8.<br/> * This field is OPTIONAL. */ public description: string; /** * A list of service endpoints for gossip. * <p> * These endpoints SHALL represent the published endpoints to which other * consensus nodes may _gossip_ transactions.<br/> * These endpoints MUST specify a port.<br/> * This list MUST NOT be empty.<br/> * This list MUST NOT contain more than `10` entries.<br/> * The first two entries in this list SHALL be the endpoints published to * all consensus nodes.<br/> * All other entries SHALL be reserved for future use. * <p> * Each network may have additional requirements for these endpoints. * A client MUST check network-specific documentation for those * details.<br/> * If the network configuration value `gossipFqdnRestricted` is set, then * all endpoints in this list MUST supply only IP address.<br/> * If the network configuration value `gossipFqdnRestricted` is _not_ set, * then endpoints in this list MAY supply either IP address or FQDN, but * MUST NOT supply both values for the same endpoint. */ public gossipEndpoint: hashgraph.proto.IServiceEndpoint[]; /** * A list of service endpoints for gRPC calls. * <p> * These endpoints SHALL represent the published gRPC endpoints to which * clients may submit transactions.<br/> * These endpoints MUST specify a port.<br/> * Endpoints in this list MAY supply either IP address or FQDN, but MUST * NOT supply both values for the same endpoint.<br/> * This list MUST NOT be empty.<br/> * This list MUST NOT contain more than `8` entries. */ public serviceEndpoint: hashgraph.proto.IServiceEndpoint[]; /** * A certificate used to sign gossip events. * <p> * This value MUST be a certificate of a type permitted for gossip * signatures.<br/> * This value MUST be the DER encoding of the certificate presented.<br/> * This field is REQUIRED and MUST NOT be empty. */ public gossipCaCertificate: Uint8Array; /** * A hash of the node gRPC TLS certificate. * <p> * This value MAY be used to verify the certificate presented by the node * during TLS negotiation for gRPC.<br/> * This value MUST be a SHA-384 hash.<br/> * The TLS certificate to be hashed MUST first be in PEM format and MUST be * encoded with UTF-8 NFKD encoding to a stream of bytes provided to * the hash algorithm.<br/> * This field is OPTIONAL. */ public grpcCertificateHash: Uint8Array; /** * An administrative key controlled by the node operator. * <p> * This key MUST sign this transaction.<br/> * This key MUST sign each transaction to update this node.<br/> * This field MUST contain a valid `Key` value.<br/> * This field is REQUIRED and MUST NOT be set to an empty `KeyList`. */ public adminKey?: (hashgraph.proto.IKey|null); /** * A boolean flag indicating whether the node operator declines to receive * node rewards. * <p> * If this flag is set to `true`, the node operator declines to receive * node rewards.<br/> */ public declineReward: boolean; /** * A web proxy for gRPC from non-gRPC clients. * <p> * This endpoint SHALL be a Fully Qualified Domain Name (FQDN) using the HTTPS * protocol, and SHALL support gRPC-Web for use by browser-based clients.<br/> * This endpoint MUST be signed by a trusted certificate authority.<br/> * This endpoint MUST use a valid port and SHALL be reachable over TLS.<br/> * This field MAY be omitted if the node does not support gRPC-Web access.<br/> * This field MUST be updated if the gRPC-Web endpoint changes.<br/> * This field SHALL enable frontend clients to avoid hard-coded proxy endpoints. */ public grpcProxyEndpoint?: (hashgraph.proto.IServiceEndpoint|null); /** * Creates a new NodeCreateTransactionBody instance using the specified properties. * @param [properties] Properties to set * @returns NodeCreateTransactionBody instance */ public static create(properties?: com.hedera.hapi.node.addressbook.INodeCreateTransactionBody): com.hedera.hapi.node.addressbook.NodeCreateTransactionBody; /** * Encodes the specified NodeCreateTransactionBody message. Does not implicitly {@link com.hedera.hapi.node.addressbook.NodeCreateTransactionBody.verify|verify} messages. * @param m NodeCreateTransactionBody message or plain object to encode * @param [w] Writer to encode to * @returns Writer */ public static encode(m: com.hedera.hapi.node.addressbook.INodeCreateTransactionBody, w?: $protobuf.Writer): $protobuf.Writer; /** * Decodes a NodeCreateTransactionBody message from the specified reader or buffer. * @param r Reader or buffer to decode from * @param [l] Message length if known beforehand * @returns NodeCreateTransactionBody * @throws {Error} If the payload is not a reader or valid buffer * @throws {$protobuf.util.ProtocolError} If required fields are missing */ public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): com.hedera.hapi.node.addressbook.NodeCreateTransactionBody; /** * Gets the default type url for NodeCreateTransactionBody * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @returns The default type url */ public static getTypeUrl(typeUrlPrefix?: string): string; } /** Properties of a NodeUpdateTransactionBody. */ interface INodeUpdateTransactionBody { /** * A consensus node identifier in the network state. * <p> * The node identified MUST exist in the network address book.<br/> * The node identified MUST NOT be deleted.<br/> * This value is REQUIRED. */ nodeId?: (Long|null); /** * An account identifier. * <p> * If set, this SHALL replace the node account identifier.<br/> * If set, this transaction MUST be signed by the active `key` for _both_ * the current node account _and_ the identified new node account. */ accountId?: (hashgraph.proto.IAccountID|null); /** * A short description of the node. * <p> * This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes` * (default 100) bytes when encoded as UTF-8.<br/> * If set, this value SHALL replace the previous value. */ description?: (google.protobuf.IStringValue|null); /** * A list of service endpoints for gossip. * <p> * If set, this list MUST meet the following requirements. * <hr/> * These endpoints SHALL represent the published endpoints to which other * consensus nodes may _gossip_ transactions.<br/> * These endpoints SHOULD NOT specify both address and DNS name.<br/> * This list MUST NOT be empty.<br/> * This list MUST NOT contain more than `10` entries.<br/> * The first two entries in this list SHALL be the endpoints published to * all consensus nodes.<br/> * All other entries SHALL be reserved for future use. * <p> * Each network may have additional requirements for these endpoints. * A client MUST check network-specific documentation for those * details.<br/> * <blockquote>Example<blockquote> * Hedera Mainnet _requires_ that address be specified, and does not * permit DNS name (FQDN) to be specified. * </blockquote> * <blockquote> * Solo, however, _requires_ DNS name (FQDN) but also permits * address. * </blockquote></blockquote> * <p> * If set, the new list SHALL replace the existing list. */ gossipEndpoint?: (hashgraph.proto.IServiceEndpoint[]|null); /** * A list of service endpoints for gRPC calls. * <p> * If set, this list MUST meet the following requirements. * <hr/> * These endpoints SHALL represent the published endpoints to which clients * may submit transactions.<br/> * These endpoints SHOULD specify address and port.<br/> * These endpoints MAY specify a DNS name.<br/> * These endpoints SHOULD NOT specify both address and DNS name.<br/> * This list MUST NOT be empty.<br/> * This list MUST NOT contain more than `8` entries. * <p> * Each network may have additional requirements for these endpoints. * A client MUST check network-specific documentation for those * details. * <p> * If set, the new list SHALL replace the existing list. */ serviceEndpoint?: (hashgraph.proto.IServiceEndpoint[]|null); /** * A certificate used to sign gossip events. * <p> * This value MUST be a certificate of a type permitted for gossip * signatures.<br/> * This value MUST be the DER encoding of the certificate presented. * <p> * If set, the new value SHALL replace the existing bytes value. */ gossipCaCertificate?: (google.protobuf.IBytesValue|null); /** * A hash of the node gRPC TLS certificate. * <p> * This value MAY be used to verify the certificate presented by the node * during TLS negotiation for gRPC.<br/> * This value MUST be a SHA-384 hash.<br/> * The TLS certificate to be hashed MUST first be in PEM format and MUST be * encoded with UTF-8 NFKD encoding to a stream of bytes provided to * the hash algorithm.<br/> * <p> * If set, the new value SHALL replace the existing hash value. */ grpcCertificateHash?: (google.protobuf.IBytesValue|null); /** * An administrative key controlled by the node operator. * <p> * This field is OPTIONAL.<br/> * If set, this key MUST sign this transaction.<br/> * If set, this key MUST sign each subsequent transaction to * update this node.<br/> * If set, this field MUST contain a valid `Key` value.<br/> * If set, this field MUST NOT be set to an empty `KeyList`. */ adminKey?: (hashgraph.proto.IKey|null); /** * A boolean indicating that this node has chosen to decline node rewards * distributed at the end of staking period. * <p> * This node SHALL NOT receive reward if this value is set, and `true`. */ declineReward?: (google.protobuf.IBoolValue|null); /** * A web proxy for gRPC from non-gRPC clients. * <p> * This endpoint SHALL be a Fully Qualified Domain Name (FQDN) using the HTTPS * protocol, and SHALL support gRPC-Web for use by browser-based clients.<br/> * This endpoint MUST be signed by a trusted certificate authority.<br/> * This endpoint MUST use a valid port and SHALL be reachable over TLS.<br/> * This field MAY be omitted if the node does not support gRPC-Web access.<br/> * This field MUST be updated if the gRPC-Web endpoint changes.<br/> * This field SHALL enable frontend clients to avoid hard-coded proxy endpoints. */ grpcProxyEndpoint?: (hashgraph.proto.IServiceEndpoint|null); } /** * Transaction body to modify address book node attributes. * * - This transaction SHALL enable the node operator, as identified by the * `admin_key`, to modify operational attributes of the node. * - This transaction MUST be signed by the active `admin_key` for the node. * - If this transaction sets a new value for the `admin_key`, then both the * current `admin_key`, and the new `admin_key` MUST sign this transaction. * - This transaction SHALL NOT change any field that is not set (is null) in * this transaction body. * - This SHALL create a pending update to the node, but the change SHALL NOT * be immediately applied to the active configuration. * - All pending node updates SHALL be applied to the active network * configuration during the next `freeze` transaction with the field * `freeze_type` set to `PREPARE_UPGRADE`. * * ### Block Stream Effects * None. */ class NodeUpdateTransactionBody implements INodeUpdateTransactionBody { /** * Constructs a new NodeUpdateTransactionBody. * @param [p] Properties to set */ constructor(p?: com.hedera.hapi.node.addressbook.INodeUpdateTransactionBody); /** * A consensus node identifier in the network state. * <p> * The node identified MUST exist in the network address book.<br/> * The node iden