@hashgraph/proto
Version:
Protobufs for the Hiero SDK
827 lines (719 loc) • 1.71 MB
TypeScript
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