Skip to content

Class: Transaction ​

Transactions describe a transfer of value, usually from the sender to the recipient. However, transactions can also have no value, when they are used to signal a change in the staking contract.

Transactions can be used to create contracts, such as vesting contracts and HTLCs.

Transactions require a valid signature proof over their serialized content. Furthermore, transactions are only valid for 2 hours after their validity-start block height.

Table of contents ​

Constructors ​

Properties ​

Methods ​

Constructors ​

constructor ​

• new Transaction(sender, sender_type, sender_data, recipient, recipient_type, recipient_data, value, fee, flags, validity_start_height, network_id): Transaction

Creates a new unsigned transaction that transfers value amount of luna (NIM's smallest unit) from the sender to the recipient, where both sender and recipient can be any account type, and custom extra data can be added to the transaction.

Basic transactions ​

If both the sender and recipient types are omitted or 0 and both data and flags are empty, a smaller basic transaction is created.

Extended transactions ​

If no flags are given, but sender type is not basic (0) or data is set, an extended transaction is created.

Contract creation transactions ​

To create a new vesting or HTLC contract, set flags to 0b1 and specify the contract type as the recipient_type: 1 for vesting, 2 for HTLC. The data bytes must have the correct format of contract creation data for the respective contract type.

Signaling transactions ​

To interact with the staking contract, signaling transaction are often used to not transfer any value, but to simply signal a state change instead, such as changing one's delegation from one validator to another. To create such a transaction, set flags to 0b10 and populate the data bytes accordingly.

The returned transaction is not yet signed. You can sign it e.g. with tx.sign(keyPair).

Throws when an account type is unknown, the numbers given for value and fee do not fit within a u64 or the networkId is unknown. Also throws when no data or recipient type is given for contract creation transactions, or no data is given for signaling transactions.

Parameters ​

NameType
senderAddress
sender_typenumber
sender_dataUint8Array
recipientAddress
recipient_typenumber
recipient_dataUint8Array
valuebigint
feebigint
flagsnumber
validity_start_heightnumber
network_idnumber

Returns ​

Transaction

Defined in ​

web.d.ts:1630

Properties ​

data ​

• data: Uint8Array

The transaction's data as a byte array.

Defined in ​

web.d.ts:1709


fee ​

• Readonly fee: bigint

The transaction's fee in luna (NIM's smallest unit).

Defined in ​

web.d.ts:1713


feePerByte ​

• Readonly feePerByte: number

The transaction's fee per byte in luna (NIM's smallest unit).

Defined in ​

web.d.ts:1717


flags ​

• Readonly flags: number

The transaction's flags: 0b1 = contract creation, 0b10 = signaling.

Defined in ​

web.d.ts:1721


format ​

• Readonly format: TransactionFormat

The transaction's TransactionFormat.

Defined in ​

web.d.ts:1725


networkId ​

• Readonly networkId: number

The transaction's network ID.

Defined in ​

web.d.ts:1729


proof ​

• proof: Uint8Array

The transaction's signature proof as a byte array.

Defined in ​

web.d.ts:1733


recipient ​

• Readonly recipient: Address

The transaction's recipient address.

Defined in ​

web.d.ts:1737


recipientType ​

• Readonly recipientType: AccountType

The transaction's recipient AccountType.

Defined in ​

web.d.ts:1741


sender ​

• Readonly sender: Address

The transaction's sender address.

Defined in ​

web.d.ts:1745


senderData ​

• Readonly senderData: Uint8Array

The transaction's sender data as a byte array.

Defined in ​

web.d.ts:1749


senderType ​

• Readonly senderType: AccountType

The transaction's sender AccountType.

Defined in ​

web.d.ts:1753


serializedSize ​

• Readonly serializedSize: number

The transaction's byte size.

Defined in ​

web.d.ts:1757


validityStartHeight ​

• Readonly validityStartHeight: number

The transaction's validity-start height. The transaction is valid for 2 hours after this block height.

Defined in ​

web.d.ts:1761


value ​

• Readonly value: bigint

The transaction's value in luna (NIM's smallest unit).

Defined in ​

web.d.ts:1765

Methods ​

__getClassname ​

▸ __getClassname(): string

Returns ​

string

Defined in ​

web.d.ts:1588


free ​

▸ free(): void

Returns ​

void

Defined in ​

web.d.ts:1584


getContractCreationAddress ​

▸ getContractCreationAddress(): Address

Returns the address of the contract that is created with this transaction.

Returns ​

Address

Defined in ​

web.d.ts:1668


hash ​

▸ hash(): string

Computes the transaction's hash, which is used as its unique identifier on the blockchain.

Returns ​

string

Defined in ​

web.d.ts:1647


isValidAt ​

▸ isValidAt(block_height): boolean

Tests if the transaction is valid at the specified block height.

Parameters ​

NameType
block_heightnumber

Returns ​

boolean

Defined in ​

web.d.ts:1663


serialize ​

▸ serialize(): Uint8Array

Serializes the transaction to a byte array.

Returns ​

Uint8Array

Defined in ​

web.d.ts:1678


serializeContent ​

▸ serializeContent(): Uint8Array

Serializes the transaction's content to be used for creating its signature.

Returns ​

Uint8Array

Defined in ​

web.d.ts:1673


sign ​

▸ sign(key_pair): void

Signs the transaction with the provided key pair. Automatically determines the format of the signature proof required for the transaction.

Limitations ​

  • HTLC redemption is not supported and will throw.
  • For transaction to the staking contract, both signatures are made with the same keypair, so it is not possible to interact with a staker that is different from the sender address or using a different cold or signing key for validator transactions.

Parameters ​

NameType
key_pairKeyPair

Returns ​

void

Defined in ​

web.d.ts:1642


toHex ​

▸ toHex(): string

Serializes the transaction into a HEX string.

Returns ​

string

Defined in ​

web.d.ts:1683


toPlain ​

▸ toPlain(): PlainTransaction

Creates a JSON-compatible plain object representing the transaction.

Returns ​

PlainTransaction

Defined in ​

web.d.ts:1688


verify ​

▸ verify(network_id?): void

Verifies that a transaction has valid properties and a valid signature proof. Optionally checks if the transaction is valid on the provided network.

Throws with any transaction validity error. Returns without exception if the transaction is valid.

Throws when the given networkId is unknown.

Parameters ​

NameType
network_id?number

Returns ​

void

Defined in ​

web.d.ts:1657


fromAny ​

▸ fromAny(tx): Transaction

Parses a transaction from a Transaction instance, a plain object, or a serialized string representation.

Throws when a transaction cannot be parsed from the argument.

Parameters ​

NameType
txstring | PlainTransaction | Transaction

Returns ​

Transaction

Defined in ​

web.d.ts:1697


fromPlain ​

▸ fromPlain(plain): Transaction

Parses a transaction from a plain object.

Throws when a transaction cannot be parsed from the argument.

Parameters ​

NameType
plainPlainTransaction

Returns ​

Transaction

Defined in ​

web.d.ts:1705