@hashgraph/sdk
    Preparing search index...

    Class EthereumTransaction

    Create a new Hedera™ transaction wrapped ethereum transaction.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _customFeeLimits: CustomFeeLimit[]

    The maximum custom fee that the user is willing to pay for the message. If left empty, the user is willing to pay any custom fee. If used with a transaction type that does not support custom fee limits, the transaction will fail.

    _operatorAccountId: undefined | null | AccountId

    Accessors

    • get batchKey(): undefined | null | Key

      Returns undefined | null | Key

      Get the key that will sign the batch of which this Transaction is a part of.

    • get bodySize(): number

      Get the transaction body size Protobuf encoding has specific rules about how data is serialized Different fields take different amounts of space depending on their values The actual wire format size can only be determined after encoding

      Returns number

    • get bodySizeAllChunks(): number[]

      Get the body sizes for all chunks in a Chunked transaction. For transactions with multiple chunks (like large topic message submissions), this returns an array containing the size of each chunk's transaction body. The size is calculated by encoding the transaction body to protobuf format.

      Returns number[]

      An array of body sizes, where each element represents the size in bytes of a chunk's transaction body

    • get grpcDeadline(): null | number

      Get the grpc deadline

      Returns null | number

    • get maxAttempts(): number

      Get the max attempts on the request

      Returns number

    • get maxBackoff(): number

      Get the max backoff

      Returns number

    • get maxRetries(): number

      Returns number

    • get minBackoff(): null | number

      Get the min backoff

      Returns null | number

    • get nodeAccountIds(): null | AccountId[]

      Get the list of node account IDs on the request. If no nodes are set, then null is returned. The reasoning for this is simply "legacy behavior".

      Returns null | AccountId[]

    • get regenerateTransactionId(): null | boolean

      Is transaction ID regeneration enabled

      Returns null | boolean

    • get signableNodeBodyBytesList(): SignableNodeTransactionBodyBytes[]

      Returns a List of SignableNodeTransactionBodyBytes for each node the transaction is intended for. These are the canonical bytes that must be signed externally (e.g., via HSM).

      Returns SignableNodeTransactionBodyBytes[]

    • get size(): Promise<number>

      Protobuf encoding has specific rules about how data is serialized Different fields take different amounts of space depending on their values The actual wire format size can only be determined after encoding

      Returns Promise<number>

    • get transactionValidDuration(): number

      Get the transaction valid duration

      Returns number

    Methods

    • Removes all signatures from a transaction and collects the removed signatures.

      Parameters

      • transaction: ISignedTransaction

        The transaction object to process.

      • publicKeyHex: string

        The hexadecimal representation of the public key.

      Returns Uint8Array<ArrayBufferLike>[]

      An array of removed signatures.

    • Determines whether a signature should be removed based on the provided public key.

      Parameters

      • sigPair: ISignaturePair

        The signature pair object that contains the public key prefix and signature to be evaluated.

      • publicKeyHex: string

        The hexadecimal representation of the public key to compare against.

      Returns boolean

      true if the public key prefix in the signature pair matches the provided public key, indicating that the signature should be removed; otherwise, false.

    • This method clears all signatures from the transaction and returns them in a specific format.

      It will call collectSignatures to get the removed signatures, then clear all signatures from the internal tracking.

      Returns Map<PublicKey, Uint8Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike>[]>

      The removed signatures in the specified format.

    • Parameters

      Returns EthereumTransaction

      • Use setCallDataFileId() instead

      For large transactions (for example contract create) this is the callData of the callData. The data in the callData will be re-written with the callData element as a zero length string with the original contents in the referenced file at time of execution. The callData will need to be "rehydrated" with the callData for signature validation to pass.

    • For large transactions (for example contract create) this is the callData of the callData. The data in the callData will be re-written with the callData element as a zero length string with the original contents in the referenced file at time of execution. The callData will need to be "rehydrated" with the callData for signature validation to pass.

      Parameters

      Returns EthereumTransaction

    • The maximum amount, in hbars, that the payer of the hedera transaction is willing to pay to complete the transaction.

      Ordinarily the account with the ECDSA alias corresponding to the public key that is extracted from the ethereum_data signature is responsible for fees that result from the execution of the transaction. If that amount of authorized fees is not sufficient then the payer of the transaction can be charged, up to but not exceeding this amount. If the ethereum_data transaction authorized an amount that was insufficient then the payer will only be charged the amount needed to make up the difference. If the gas price in the transaction was set to zero then the payer will be assessed the entire fee.

      Parameters

      • maxGasAllowance: string | number | Long | BigNumber | Hbar

      Returns EthereumTransaction

    • Set the ID for this transaction.

      The transaction ID includes the operator's account ( the account paying the transaction fee). If two transactions have the same transaction ID, they won't both have an effect. One will complete normally and the other will fail with a duplicate transaction status.

      Normally, you should not use this method. Just before a transaction is executed, a transaction ID will be generated from the operator on the client.

      Parameters

      Returns EthereumTransaction

    • Sign the transaction with the public key and signer function

      If sign on demand is enabled no signing will be done immediately, instead the private key signing function and public key are saved to be used when a user calls an exit condition method (not sure what a better name for this is) such as toBytes[Async](), getTransactionHash[PerNode]() or execute().

      Parameters

      • publicKey: PublicKey
      • transactionSigner: (message: Uint8Array) => Promise<Uint8Array<ArrayBufferLike>>

      Returns Promise<EthereumTransaction>

    • Serialize the request into bytes. This will encode all the transactions into a proto.TransactionList and return the encoded protobuf.

      NOTE: Does not support sign on demand

      Returns Uint8Array<ArrayBufferLike>