Skip to main content

Class: PublicClient

PublicClient is a class that allows for interacting with the network via the JSON-RPC API. It provides an abstraction of the connection to =nil;. PublicClient enables using API requests that do not require signing data (or otherwise using one's private key).

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
transport: new HttpTransport({
endpoint: RPC_ENDPOINT,
}),
shardId: 1,
});

Extends

  • BaseClient

Constructors

new PublicClient()

new PublicClient(config): PublicClient

Creates an instance of PublicClient.

Parameters

ParameterTypeDescription

config

IClientBaseConfig

The config to be used in the client. See IPublicClientConfig.

Returns

PublicClient

Overrides

BaseClient.constructor

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:38

Properties

shardId?

protected optional shardId: number;

The ID of the shard with which the client needs to interact. The shard with this ID will be used in every call made by the client.

Inherited from

BaseClient.shardId

Defined

@nilfoundation/niljs/src/clients/BaseClient.ts:26


transport

protected transport: ITransport;

The ITransport to be used in the client. See ITransport.

Inherited from

BaseClient.transport

Defined

@nilfoundation/niljs/src/clients/BaseClient.ts:18

Methods

call()

call(
callArgs,
blockNumberOrHash,
overrides?): Promise<CallRes | object>

Performs a call to the specified address.

Parameters

ParameterTypeDescription

callArgs

XOR<DataCallArgs, AbiCallArgs>

The arguments for the call.

blockNumberOrHash

0x${string} | BlockTag

The number/hash of the block.

overrides?

Record<Address, ContractOverride>

The overrides of state for the chain call.

Returns

Promise<CallRes | object>

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:397


chainId()

chainId(): Promise<number>

Returns the chain ID.

Returns

Promise<number>

The chain ID.

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:346


clearChainIdCache()

clearChainIdCache(): void

Returns

void

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:360


estimateGas()

estimateGas(callArgs, blockNumberOrHash): Promise<bigint>

Performs a call to the specified address.

Parameters

ParameterTypeDescription

callArgs

XOR<DataCallArgs, AbiCallArgs>

The arguments for the call.

blockNumberOrHash

0x${string} | BlockTag

The number/hash of the block.

Returns

Promise<bigint>

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:456


estimateGasLimit()

estimateGasLimit(): Promise<bigint>

Returns the gas limit.

Returns

Promise<bigint>

The gas limit.

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:334


getBalance()

getBalance(address, blockNumberOrHash?): Promise<bigint>

Returns the balance of the given address and at the given block.

Parameters

ParameterTypeDescription

address

Address

The address of the account or contract.

blockNumberOrHash?

0x${string} | BlockTag

The number/hash of the block.

Returns

Promise<bigint>

The balance of the address.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const balance = await client.getBalance(ADDRESS, 'latest');

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:216


getBlockByHash()

getBlockByHash(hash, fullTx): Promise<Block<boolean>>

Returns the block with the given hash.

Parameters

ParameterTypeDefault valueDescription

hash

0x${string}

undefined

The hash of the block whose information is requested.

fullTx

boolean

false

The flag that determines whether full transaction information is returned in the output.

Returns

Promise<Block<boolean>>

Information about the block with the given hash.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
transport: new HttpTransport({
endpoint: RPC_ENDPOINT,
}),
shardId: 1,
});

const block = await client.getBlockByHash(HASH);

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:59


getBlockByNumber()

getBlockByNumber(
blockNumber,
fullTx,
shardId): Promise<Block<boolean>>

Returns the block with the given number.

Parameters

ParameterTypeDefault valueDescription

blockNumber

0x${string} | BlockTag

undefined

The number of the block whose information is requested.

fullTx

boolean

false

The flag that determines whether full transaction information is returned in the output.

shardId

undefined | number

...

The ID of the shard where the block was generated.

Returns

Promise<Block<boolean>>

Returns information about a block with the given number.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const block = await client.getBlockByNumber(1);

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:88


getBlockMessageCountByHash()

getBlockMessageCountByHash(hash): Promise<number>

Returns the total number of messages recorded in the block with the given hash.

Parameters

ParameterTypeDescription

hash

0x${string}

The hash of the block whose information is requested.

Returns

Promise<number>

The number of messages contained within the block.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const count = await client.getBlockMessageCountByHash(HASH);

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:146


getBlockMessageCountByNumber()

getBlockMessageCountByNumber(blockNumber, shardId): Promise<number>

Returns the total number of messages recorded in the block with the given number.

Parameters

ParameterType

blockNumber

string

shardId

undefined | number

Returns

Promise<number>

The number of messages contained within the block.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const count = await client.getBlockMessageCountByNumber(1);

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:122


getCode()

getCode(address, blockNumberOrHash?): Promise<Uint8Array>

Returns the bytecode of the contract with the given address and at the given block.

Parameters

ParameterTypeDescription

address

Address

The address of the account or contract.

blockNumberOrHash?

0x${string} | BlockTag

The number/hash of the block.

Returns

Promise<Uint8Array>

The bytecode of the contract.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const code = await client.getCode(ADDRESS, 'latest');

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:169


getCurrencies()

getCurrencies(address, blockNumberOrHash): Promise<Record<string, bigint>>

Returns all tokens at the given address.

Parameters

ParameterTypeDescription

address

Address

The address whose information is requested.

blockNumberOrHash

0x${string} | BlockTag

The number/hash of the block.

Returns

Promise<Record<string, bigint>>

The list of tokens.

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:370


getGasPrice()

getGasPrice(shardId): Promise<bigint>

Returns the gas price in wei.

Parameters

ParameterType

shardId

number

Returns

Promise<bigint>

The gas price.

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:321


getMessageByHash()

getMessageByHash(hash): Promise<ProcessedMessage>

Returns the structure of the internal message with the given hash.

Parameters

ParameterTypeDescription

hash

0x${string}

The hash of the message.

Returns

Promise<ProcessedMessage>

The message whose information is requested.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const message = await client.getMessageByHash(HASH);

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:238


getMessageCount()

getMessageCount(address, blockNumberOrHash?): Promise<number>

Returns the transaction count of the account with the given address and at the given block.

Parameters

ParameterTypeDescription

address

Address

The address of the account or contract.

blockNumberOrHash?

0x${string} | BlockTag

The number/hash of the block.

Returns

Promise<number>

The number of transactions contained within the block.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const count = await client.getMessageCount(ADDRESS, 'latest');

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:193


getMessageReceiptByHash()

getMessageReceiptByHash(hash): Promise<null | ProcessedReceipt>

Returns the receipt for the message with the given hash.

Parameters

ParameterTypeDescription

hash

0x${string}

The hash of the message.

Returns

Promise<null | ProcessedReceipt>

The receipt whose structure is requested.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const receipt = await client.getMessageReceiptByHash(HASH, 1);

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:267


getShardId()

getShardId(): undefined | number

Returns the shard ID.

Returns

undefined | number

The shard ID.

Inherited from

BaseClient.getShardId

Defined

@nilfoundation/niljs/src/clients/BaseClient.ts:51


request()

protected request<T>(requestObject): Promise<T>

Sends a request.

Type Parameters

Type Parameter

T

Parameters

ParameterTypeDescription

requestObject

RequestArguments

The request object. It contains the request method and parameters.

Returns

Promise<T>

The response.

Inherited from

BaseClient.request

Defined

@nilfoundation/niljs/src/clients/BaseClient.ts:43


sendRawMessage()

sendRawMessage(message): Promise<0x${string}>

Creates a new message or creates a contract for a previously signed message.

Parameters

ParameterTypeDescription

message

0x${string} | Uint8Array

The encoded bytecode of the message.

Returns

Promise<0x${string}>

The hash of the message.

Example

import { PublicClient } from '@nilfoundation/niljs';

const client = new PublicClient({
endpoint: RPC_ENDPOINT
})

const message = Uint8Array.from(ARRAY);

Defined

@nilfoundation/niljs/src/clients/PublicClient.ts:308


setShardId()

setShardId(shardId): void

Sets the shard ID.

Parameters

ParameterTypeDescription

shardId

number

The shard ID.

Returns

void

Throws

Will throw an error if the provided shard ID is invalid.

Example

client.setShardId(1);

Inherited from

BaseClient.setShardId

Defined

@nilfoundation/niljs/src/clients/BaseClient.ts:62