Specialized Types

An AccountId is composed of a <shardNum>.<realmNum>.<accountNum> (eg. 0.0.10).

  • Shard number (shardNum) represents the shard number (shardId). It will default to 0 today, as Hedera only performs in one shard.

  • Realm number (realmNum) represents the realm number (realmId). It will default to 0 today, as realms are not yet supported.

  • Account represents either an account number or an account alias

    • Account number (accountNum) represents the account number (accountId)

    • Account alias (alias) represented by the public key bytes

      • The public key bytes are the result of serializing a protobuf Key message for any primitive key type

      • Currently, only primitive key bytes are supported as an alias

      • Threshold keys, key list, contract ID, and delegatable_contract_id are not supported

      • The alias can only be used in place of an account ID in transfer transactions in its current version

Together these values make up your AccountId. When an AccountId is specified, be sure all three values are included.

Constructor

Constructor

Type

Description

new AccountId(<shardNum>,<realmNum>,<accountNum>)

long, long, long

Constructs an AccountId with 0 for shardNum and realmNum (e.g., 0.0.<accountNum>)

Methods

Methods

Type

Description

AccountId.fromString(<account>)

String

Constructs an AccountId from a string formatted as <shardNum>.<realmNum>.<accountNum>

AccountId.fromEvmAddress(<address>)

String

Constructs an AccountId from a solidity address in string format

AccountId.fromBytes(bytes)

byte[]

Constructs an AccountId from bytes

AccountId.toSolidityAddress()

String

Constructs a solidity address from AccountID

AccountId.toString()

String

Constructs an AccountID from string

AccountId.aliasKey

PublicKey

The alias key of the AccountID

AccountId.aliasEvmAddress

EVM address

The EVM address of the AccountID

AccountId.toBytes()

byte[]

Constructs an AccountID from bytes

Example

AccountId accountId = new AccountId(0 ,0 ,10);
System.out.println(accountId);

// Constructs an accountId from String
AccountId accountId = AccountId.fromString("0.0.10");
System.out.println(accountId);

A FileId is composed of a <shardNum>.<realmNum>.<fileNum> (eg. 0.0.15).

  • shardNum represents the shard number (shardId). It will default to 0 today, as Hedera only performs in one shard.

  • realmNum represents the realm number (realmId). It will default to 0 today, as realms are not yet supported.

  • fileNum represents the file number

Together these values make up your accountId. When an FileId is requested, be sure all three values are included.

Constructor

Constructor

Type

Description

new FileId(<shardNum>,<realmNum>,<fileNum>)

long, long, long

Constructs a FileId with 0 for shardNum and realmNum (e.g., 0.0.<fileNum>)

Methods

Methods

Type

Description

FileId.fromString()

String

Constructs an FileId from a string formatted as

<shardNum>.<realmNum>.<fileNum>

FileId.fromSolidityAddress()

String

Constructs an FileId from a solidity address in string format

FileId.ADDRESS_BOOK

FileId

The public node address book for the current network

FileId.EXCHANGE_RATES

FileId

The current exchange rate of HBAR to USD

FileId.FEE_SCHEDULE

FileId

The current fee schedule for the network

Example

FileId fileId = new FileId(0,0,15);
System.out.println(fileId);

//Constructs a FileId from string
FileId fileId = FileId.fromString("0.0.15");
System.out.println(fileId);

A ContractId is composed of a <shardNum>.<realmNum>.<contractNum> (eg. 0.0.20).

  • shardNum represents the shard number (shardId). It will default to 0 today, as Hedera only performs in one shard.

  • realmNum represents the realm number (realmId). It will default to 0 today, as realms are not yet supported.

  • contractNum represents the contract number

Together these values make up your ContractId. When an ContractId is requested, be sure all three values are included. ContractId's are automatically assigned when you create a new smart contract.

Constructor

Constructor

Type

Description

new ContractId(<shardNum>,<realmNum>,<contractNum>)

long, long, long

Constructs a ContractId with 0 for shardNum and realmNum (e.g., 0.0.<contractNum>)

Methods

Methods

Type

Description

ContractId.fromString(<account>)

String

Constructs a ContractId from a string formatted as

<shardNum>.<realmNum>.<contractNum>

ContractId.fromSolidityAddress(<address>)[deprecated use ConractId.fromEvmAddress()]

String

Constructs a ContractId from a solidity address in string format [deprecated use ContractId.fromEvmAddres()]

ContractId.toSolidityAddress(<contractId>)

String

Contruct a Solidity address from a Hedera contract ID

ContractId.fromEvmAddress(<shard>, <realm>, <evmAddress>)

long, long, String

Constructs a ContractId from evm address

Example

ContractId contractId = new ContractId(0,0,20);
System.out.println(contractId);

// Constructs a ContractId from string
ContractId contractId = ContractId.fromString("0.0.20");
System.out.println(contractId);

A topicId is composed of a <shardNum>.<realmNum>.<topicNum> (eg. 0.0.100).

  • shardNum represents the shard number (shardId). It will default to 0 today, as Hedera only performs in one shard.

  • realmNum represents the realm number (realmId). It will default to 0 today, as realms are not yet supported.

  • topicNum represents the topic number (topicId)

Constructor

Constructor

Type

Description

new ConsensusTopicId(<shardNum>,<realmNum>,<topicNum>)

long, long, long

Constructs a TopicId with 0 for shardNum and realmNum (e.g., 0.0.<topicNum>)

Methods

Type

Description

fromString(<topic>)

String

Constructs a topic ID from a String

ConsensusTopicId.toString()

Constructs a topic ID to String format

Example

ConsensusTopicId topicId = new ConsensusTopicId(0,0,100);
System.out.println(topicId)

Last updated

#2871: HIP-423 long term scheduled transactions

Change request updated