Home Reference Source
import {Connection} from '@solana/web3'
public class | source

Connection

A connection to a fullnode JSON RPC endpoint

Constructor Summary

Public Constructor
public

constructor(endpoint: string, commitment: Commitment)

Establish a JSON RPC connection

Method Summary

Public Methods
public

Confirm the transaction identified by the specified signature

public

Confirm the transaction identified by the specified signature, return with context

public

async getAccountInfo(publicKey: PublicKey, commitment: Commitment): Promise<AccountInfo>

Fetch all the account info for the specified public key

public

Fetch all the account info for the specified public key, return with context

public

async getBalance(publicKey: PublicKey, commitment: Commitment): Promise<number>

Fetch the balance for the specified public key

public

Fetch the balance for the specified public key, return with context

public

Return the list of nodes that are currently participating in the cluster

public

Fetch a list of Transactions and transaction statuses from the cluster for a confirmed block

public

async getEpochInfo(commitment: Commitment): Promise<GetEpochInfoRpcResult>

Fetch the Epoch Info parameters

public

async getEpochSchedule(): Promise<GetEpochScheduleRpcResult>

Fetch the Epoch Schedule parameters

public

async getInflation(commitment: Commitment): Promise<GetInflationRpcResult>

Fetch the cluster Inflation parameters

public

Fetch the minimum balance needed to exempt an account of dataLength size from rent

public

async getNonce(nonceAccount: PublicKey, commitment: Commitment): Promise<NonceAccount>

Fetch the contents of a Nonce account from the cluster

public

Fetch the contents of a Nonce account from the cluster, return with context

public

async getProgramAccounts(programId: PublicKey, commitment: Commitment): Promise<Array<{pubkey: PublicKey, account: AccountInfo}>>

Fetch all the accounts owned by the specified program id

public

async getRecentBlockhash(commitment: Commitment): Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>

Fetch a recent blockhash from the cluster

public

Fetch a recent blockhash from the cluster, return with context

public

async getSignatureStatus(signature: TransactionSignature, commitment: Commitment): Promise<SignatureStatus|nullliteral>

Fetch the current status of a signature

public

async getSignatureStatusBatch(signatures: Array<TransactionSignature>, commitment: Commitment): Promise<Array<SignatureStatus|nullliteral>>

Fetch the current status of a signature

public

async getSlot(commitment: Commitment): Promise<number>

Fetch the current slot that the node is processing

public

async getSlotLeader(commitment: Commitment): Promise<string>

Fetch the current slot leader of the cluster

public

async getTotalSupply(commitment: Commitment): Promise<number>

Fetch the current total currency supply of the cluster in lamports

public

Fetch the current transaction count of the cluster

public

Fetch the node version

public

Return the list of nodes that are currently participating in the cluster

public

onAccountChange(publicKey: PublicKey, callback: AccountChangeCallback): number

Register a callback to be invoked whenever the specified account changes

public

onProgramAccountChange(programId: PublicKey, callback: ProgramAccountChangeCallback): number

Register a callback to be invoked whenever accounts owned by the specified program change

public

onSignature(signature: TransactionSignature, callback: SignatureResultCallback): number

Register a callback to be invoked upon signature updates

public

onSlotChange(callback: SlotChangeCallback): number

Register a callback to be invoked upon slot changes

public

Deregister an account notification callback

public

Deregister an account notification callback

public

Deregister a signature notification callback

public

Deregister a slot notification callback

public

Request an allocation of lamports to the specified account

public

Send a transaction that has already been signed, serialized into the wire format, and encoded as a base58 string

public

async sendRawTransaction(rawTransaction: Buffer | Uint8Array | Array<number>): Promise<TransactionSignature>

Send a transaction that has already been signed and serialized into the wire format

public

async sendTransaction(transaction: Transaction, signers: ...Array<Account>): Promise<TransactionSignature>

Sign and send a transaction

Public Constructors

public constructor(endpoint: string, commitment: Commitment) source

Establish a JSON RPC connection

Params:

NameTypeAttributeDescription
endpoint string

URL to the fullnode JSON RPC endpoint

commitment Commitment
  • nullable: true

optional default commitment level

Public Methods

public async confirmTransaction(signature: TransactionSignature, commitment: Commitment): Promise<boolean> source

Confirm the transaction identified by the specified signature

Params:

NameTypeAttributeDescription
signature TransactionSignature
commitment Commitment
  • nullable: true

Return:

Promise<boolean>

public async confirmTransactionAndContext(signature: TransactionSignature, commitment: Commitment): Promise<RpcResponseAndContext<boolean>> source

Confirm the transaction identified by the specified signature, return with context

Params:

NameTypeAttributeDescription
signature TransactionSignature
commitment Commitment
  • nullable: true

public async getAccountInfo(publicKey: PublicKey, commitment: Commitment): Promise<AccountInfo> source

Fetch all the account info for the specified public key

Params:

NameTypeAttributeDescription
publicKey PublicKey
commitment Commitment
  • nullable: true

Return:

Promise<AccountInfo>

public async getAccountInfoAndContext(publicKey: PublicKey, commitment: Commitment): Promise<RpcResponseAndContext<AccountInfo>> source

Fetch all the account info for the specified public key, return with context

Params:

NameTypeAttributeDescription
publicKey PublicKey
commitment Commitment
  • nullable: true

public async getBalance(publicKey: PublicKey, commitment: Commitment): Promise<number> source

Fetch the balance for the specified public key

Params:

NameTypeAttributeDescription
publicKey PublicKey
commitment Commitment
  • nullable: true

Return:

Promise<number>

public async getBalanceAndContext(publicKey: PublicKey, commitment: Commitment): Promise<RpcResponseAndContext<number>> source

Fetch the balance for the specified public key, return with context

Params:

NameTypeAttributeDescription
publicKey PublicKey
commitment Commitment
  • nullable: true

public async getClusterNodes(): Promise<Array<ContactInfo>> source

Return the list of nodes that are currently participating in the cluster

public async getConfirmedBlock(slot: number): Promise<ConfirmedBlock> source

Fetch a list of Transactions and transaction statuses from the cluster for a confirmed block

Params:

NameTypeAttributeDescription
slot number

public async getEpochInfo(commitment: Commitment): Promise<GetEpochInfoRpcResult> source

Fetch the Epoch Info parameters

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<GetEpochInfoRpcResult>

public async getEpochSchedule(): Promise<GetEpochScheduleRpcResult> source

Fetch the Epoch Schedule parameters

Return:

Promise<GetEpochScheduleRpcResult>

public async getInflation(commitment: Commitment): Promise<GetInflationRpcResult> source

Fetch the cluster Inflation parameters

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<GetInflationRpcResult>

public async getMinimumBalanceForRentExemption(dataLength: number, commitment: Commitment): Promise<number> source

Fetch the minimum balance needed to exempt an account of dataLength size from rent

Params:

NameTypeAttributeDescription
dataLength number
commitment Commitment
  • nullable: true

Return:

Promise<number>

public async getNonce(nonceAccount: PublicKey, commitment: Commitment): Promise<NonceAccount> source

Fetch the contents of a Nonce account from the cluster

Params:

NameTypeAttributeDescription
nonceAccount PublicKey
commitment Commitment
  • nullable: true

public async getNonceAndContext(nonceAccount: PublicKey, commitment: Commitment): Promise<RpcResponseAndContext<NonceAccount>> source

Fetch the contents of a Nonce account from the cluster, return with context

Params:

NameTypeAttributeDescription
nonceAccount PublicKey
commitment Commitment
  • nullable: true

public async getProgramAccounts(programId: PublicKey, commitment: Commitment): Promise<Array<{pubkey: PublicKey, account: AccountInfo}>> source

Fetch all the accounts owned by the specified program id

Params:

NameTypeAttributeDescription
programId PublicKey
commitment Commitment
  • nullable: true

Return:

Promise<Array<{pubkey: PublicKey, account: AccountInfo}>>

public async getRecentBlockhash(commitment: Commitment): Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}> source

Fetch a recent blockhash from the cluster

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>

public async getRecentBlockhashAndContext(commitment: Commitment): Promise<RpcResponseAndContext<{blockhash: Blockhash, feeCalculator: FeeCalculator}>> source

Fetch a recent blockhash from the cluster, return with context

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<RpcResponseAndContext<{blockhash: Blockhash, feeCalculator: FeeCalculator}>>

public async getSignatureStatus(signature: TransactionSignature, commitment: Commitment): Promise<SignatureStatus|nullliteral> source

Fetch the current status of a signature

Params:

NameTypeAttributeDescription
signature TransactionSignature
commitment Commitment
  • nullable: true

Return:

Promise<SignatureStatus|nullliteral>

public async getSignatureStatusBatch(signatures: Array<TransactionSignature>, commitment: Commitment): Promise<Array<SignatureStatus|nullliteral>> source

Fetch the current status of a signature

Params:

NameTypeAttributeDescription
signatures Array<TransactionSignature>
commitment Commitment
  • nullable: true

Return:

Promise<Array<SignatureStatus|nullliteral>>

public async getSlot(commitment: Commitment): Promise<number> source

Fetch the current slot that the node is processing

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<number>

public async getSlotLeader(commitment: Commitment): Promise<string> source

Fetch the current slot leader of the cluster

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<string>

public async getTotalSupply(commitment: Commitment): Promise<number> source

Fetch the current total currency supply of the cluster in lamports

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<number>

public async getTransactionCount(commitment: Commitment): Promise<number> source

Fetch the current transaction count of the cluster

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

Return:

Promise<number>

public async getVersion(): Promise<Version> source

Fetch the node version

Return:

Promise<Version>

public async getVoteAccounts(commitment: Commitment): Promise<VoteAccountStatus> source

Return the list of nodes that are currently participating in the cluster

Params:

NameTypeAttributeDescription
commitment Commitment
  • nullable: true

public onAccountChange(publicKey: PublicKey, callback: AccountChangeCallback): number source

Register a callback to be invoked whenever the specified account changes

Params:

NameTypeAttributeDescription
publicKey PublicKey

Public key of the account to monitor

callback AccountChangeCallback

Function to invoke whenever the account is changed

Return:

number

subscription id

public onProgramAccountChange(programId: PublicKey, callback: ProgramAccountChangeCallback): number source

Register a callback to be invoked whenever accounts owned by the specified program change

Params:

NameTypeAttributeDescription
programId PublicKey

Public key of the program to monitor

callback ProgramAccountChangeCallback

Function to invoke whenever the account is changed

Return:

number

subscription id

public onSignature(signature: TransactionSignature, callback: SignatureResultCallback): number source

Register a callback to be invoked upon signature updates

Params:

NameTypeAttributeDescription
signature TransactionSignature

Transaction signature string in base 58

callback SignatureResultCallback

Function to invoke on signature notifications

Return:

number

subscription id

public onSlotChange(callback: SlotChangeCallback): number source

Register a callback to be invoked upon slot changes

Params:

NameTypeAttributeDescription
callback SlotChangeCallback

Function to invoke whenever the slot changes

Return:

number

subscription id

public async removeAccountChangeListener(id: number): Promise<void> source

Deregister an account notification callback

Params:

NameTypeAttributeDescription
id number

subscription id to deregister

Return:

Promise<void>

public async removeProgramAccountChangeListener(id: number): Promise<void> source

Deregister an account notification callback

Params:

NameTypeAttributeDescription
id number

subscription id to deregister

Return:

Promise<void>

public async removeSignatureListener(id: number): Promise<void> source

Deregister a signature notification callback

Params:

NameTypeAttributeDescription
id number

subscription id to deregister

Return:

Promise<void>

public async removeSlotChangeListener(id: number): Promise<void> source

Deregister a slot notification callback

Params:

NameTypeAttributeDescription
id number

subscription id to deregister

Return:

Promise<void>

public async requestAirdrop(to: PublicKey, amount: number, commitment: Commitment): Promise<TransactionSignature> source

Request an allocation of lamports to the specified account

Params:

NameTypeAttributeDescription
to PublicKey
amount number
commitment Commitment
  • nullable: true

public async sendEncodedTransaction(encodedTransaction: string): Promise<TransactionSignature> source

Send a transaction that has already been signed, serialized into the wire format, and encoded as a base58 string

Params:

NameTypeAttributeDescription
encodedTransaction string

public async sendRawTransaction(rawTransaction: Buffer | Uint8Array | Array<number>): Promise<TransactionSignature> source

Send a transaction that has already been signed and serialized into the wire format

Params:

NameTypeAttributeDescription
rawTransaction Buffer | Uint8Array | Array<number>

public async sendTransaction(transaction: Transaction, signers: ...Array<Account>): Promise<TransactionSignature> source

Sign and send a transaction

Params:

NameTypeAttributeDescription
transaction Transaction
signers ...Array<Account>