Skip to main content

Midnight.js API Reference v1.0.0


Midnight.js API Reference / @midnight-ntwrk/midnight-js-types / PublicDataProvider

Interface: PublicDataProvider

Interface for a public data service. This service retrieves public data from the blockchain. TODO: Add timeouts or retry limits to 'watchFor' queries.

Methods

contractStateObservable()

contractStateObservable(address, config): Observable<ContractState>

Creates a stream of contract states. The observable emits a value every time a state is either created or updated at the given address. Waits indefinitely for matching data to appear.

Parameters

address

string

The address of the contract of interest.

config

ContractStateObservableConfig

The configuration for the observable.

Returns

Observable<ContractState>


queryContractState()

queryContractState(contractAddress, config?): Promise<null | ContractState>

Retrieves the on-chain state of a contract. If no block hash or block height are provided, the contract state at the address in the latest block is returned. Immediately returns null if no matching data is found.

Parameters

contractAddress

string

The address of the contract of interest.

config?

The configuration of the query. If undefined returns the latest states.

BlockHeightConfig | BlockHashConfig

Returns

Promise<null | ContractState>


queryDeployContractState()

queryDeployContractState(contractAddress): Promise<null | ContractState>

Retrieves the contract state included in the deployment of the contract at the given contract address. Immediately returns null if no matching data is found.

Parameters

contractAddress

string

The address of the contract of interest.

Returns

Promise<null | ContractState>


queryZSwapAndContractState()

queryZSwapAndContractState(contractAddress, config?): Promise<null | [ZswapChainState, ContractState]>

Retrieves the zswap chain state (token balances) and the contract state of the contract at the given address. Both states are retrieved in a single query to ensure consistency between the two. Immediately returns null if no matching data is found.

Parameters

contractAddress

string

The address of the contract of interest.

config?

The configuration of the query. If undefined returns the latest states.

BlockHeightConfig | BlockHashConfig

Returns

Promise<null | [ZswapChainState, ContractState]>


watchForContractState()

watchForContractState(contractAddress): Promise<ContractState>

Retrieves the contract state of the contract with the given address. Waits indefinitely for matching data to appear.

Parameters

contractAddress

string

The address of the contract of interest.

Returns

Promise<ContractState>


watchForDeployTxData()

watchForDeployTxData(contractAddress): Promise<FinalizedTxData>

Retrieves data of the deployment transaction for the contract at the given contract address. Waits indefinitely for matching data to appear.

Parameters

contractAddress

string

The address of the contract of interest.

Returns

Promise<FinalizedTxData>


watchForTxData()

watchForTxData(txId): Promise<FinalizedTxData>

Retrieves data of the transaction containing the call or deployment with the given identifier. Waits indefinitely for matching data to appear.

Parameters

txId

string

The identifier of the call or deployment of interest.

Returns

Promise<FinalizedTxData>