Documentation
Contract Client
read

read

A function of ContractClient to read the state of a smart contract by the getter's name.

Usage

Call the read method of ContractClient with the getter name and its arguments.

import { parseTon } from '@fotonjs/core';
import { contractClient, publicClient } from './client';
 
// Imagine the contract is a counter with `counter` getter.
const res = await contractClient.read({
  method: 'counter',
  arguments: [],
});
// > res.data – 1 (counter's state example)

Returns

type ReadContractReturn<
  CONTRACT extends CompiledContract,
  GETTER extends ContractGetterNames<CONTRACT>
> =
  DataOrTypedError<
    ContractGetterReturn<CONTRACT, GETTER> | undefined,
    | 'MissingContractAddressError'
    | 'IncorrectContractError'
    | 'TonReadError'
    | 'TonRateLimitError'
  >;

Any value set that a getter can return. Foton parses the state based on the contract's ABI and returns the value or one of the typed errors.

Parameters

getter

  • Type: string

Getter name of the contract to call.

const res = await contractClient.read({
  method: 'counter',
  arguments: [],
});

arguments

  • Type: Array<GetterArguments>

Arguments of the getter. The getter declaration can be found in the contract's ABI or contract class' getter.

For example, a contract in Tact might have a getter declaration get fun multiplier(factor: Int): Int. It means that the getter fun expects one argument of type bigint.

const res = await contractClient.read({
  method: 'multiplied',
  arguments: [1n],
});