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:44

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:25


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:436


chainId()

chainId(): Promise<number>

Returns the chain ID.

Returns

Promise<number>

The chain ID.

Defined

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


estimateGasLimit()

estimateGasLimit(): Promise<bigint>

Returns the gas limit.

Returns

Promise<bigint>

The gas limit.

Defined

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


getBalance()

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

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

Parameters

ParameterTypeDescription

address

0x${string}

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:239


getBlockByHash()

getBlockByHash(
hash,
fullTx,
shardId): 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.

shardId

undefined | number

...

The ID of the shard where the block was generated.

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:66


getBlockByNumber()

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

Returns the block with the given number.

Parameters

ParameterTypeDefault valueDescription

blockNumber

0x${string}

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:101


getBlockMessageCountByHash()

getBlockMessageCountByHash(hash, shardId): 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.

shardId

undefined | number

The ID of the shard where the block was generated.

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:163


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:135


getCode()

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

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

Parameters

ParameterTypeDescription

address

0x${string}

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:189


getCurrencies()

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

Returns all tokens at the given address.

Parameters

ParameterTypeDescription

address

0x${string}

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:406


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:368


getMessageByHash()

getMessageByHash(hash, shardId): Promise<ProcessedMessage>

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

Parameters

ParameterTypeDescription

hash

0x${string}

The hash of the message.

shardId

undefined | number

The ID of the shard where the message was recorded.

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:265


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

0x${string}

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:213


getMessageReceiptByHash()

getMessageReceiptByHash(hash, shardId): Promise<null | ProcessedReceipt>

Returns the receipt for the message with the given hash.

Parameters

ParameterTypeDescription

hash

0x${string}

The hash of the message.

shardId

undefined | number

The ID of the shard where the message was recorded.

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(1, HASH);

Defined

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


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:50


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:42


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:351


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:61