    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 | async confirmTransaction(signature: TransactionSignature, commitment: Commitment): Promise<boolean> Confirm the transaction identified by the specified signature |
public | async confirmTransactionAndContext(signature: TransactionSignature, commitment: Commitment): Promise<RpcResponseAndContext<boolean>> Confirm the transaction identified by the specified signature, return with context |
public | async getAccountInfo(publicKey: PublicKey, commitment: Commitment): Promise<AccountInfo|nullliteral> Fetch all the account info for the specified public key |
public | async getAccountInfoAndContext(publicKey: PublicKey, commitment: Commitment): Promise<RpcResponseAndContext<AccountInfo|nullliteral>> 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 | async getBalanceAndContext(publicKey: PublicKey, commitment: Commitment): Promise<RpcResponseAndContext<number>> Fetch the balance for the specified public key, return with context |
public | async getClusterNodes(): Promise<Array<ContactInfo>> Return the list of nodes that are currently participating in the cluster |
public | async getConfirmedBlock(slot: number): Promise<ConfirmedBlock> 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 | async getMinimumBalanceForRentExemption(dataLength: number, commitment: Commitment): Promise<number> Fetch the minimum balance needed to exempt an account of `dataLength` size from rent |
public | async getNonce(nonceAccount: PublicKey, commitment: Commitment): Promise<NonceAccount|nullliteral> Fetch the contents of a Nonce account from the cluster |
public | async getNonceAndContext(nonceAccount: PublicKey, commitment: Commitment): Promise<RpcResponseAndContext<NonceAccount|nullliteral>> Fetch the contents of a Nonce account from the cluster, return with context |
public | async getProgramAccounts(programId: PublicKey, commitment: Commitment): Promise<Array<{pubkey: <span="">PublicKey, account: AccountInfo}>> Fetch all the accounts owned by the specified program id |
public | async getRecentBlockhash(commitment: Commitment): Promise<{blockhash: <span="">Blockhash, feeCalculator: FeeCalculator}> Fetch a recent blockhash from the cluster |
public | async getRecentBlockhashAndContext(commitment: Commitment): Promise<RpcResponseAndContext<{blockhash: <span="">Blockhash, feeCalculator: FeeCalculator}>> Fetch a recent blockhash from the cluster, return with context |
public | async getSignatureStatus(signature: TransactionSignature, commitment: Commitment): Promise<RpcResponseAndContext<SignatureStatus|nullliteral>> Fetch the current status of a signature |
public | async getSignatureStatuses(signatures: Array<TransactionSignature>, commitment: Commitment): Promise<RpcResponseAndContext<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 | async getTransactionCount(commitment: Commitment): Promise<number> Fetch the current transaction count of the cluster |
public | async getVersion(): Promise<Version> Fetch the node version |
public | async getVoteAccounts(commitment: Commitment): Promise<VoteAccountStatus> 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 | onRootChange(callback: RootChangeCallback): number Register a callback to be invoked upon root changes |
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 | async removeAccountChangeListener(id: number): Promise<void> Deregister an account notification callback |
public | async removeProgramAccountChangeListener(id: number): Promise<void> Deregister an account notification callback |
public | async removeRootChangeListener(id: number): Promise<void> Deregister a root notification callback |
public | async removeSignatureListener(id: number): Promise<void> Deregister a signature notification callback |
public | async removeSlotChangeListener(id: number): Promise<void> Deregister a slot notification callback |
public | async requestAirdrop(to: PublicKey, amount: number, commitment: Commitment): Promise<TransactionSignature> Request an allocation of lamports to the specified account |
public | async sendEncodedTransaction(encodedTransaction: string): Promise<TransactionSignature> 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:

Name | Type | Attribute | Description
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:

Name | Type | Attribute | Description
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:

Name | Type | Attribute | Description
signature | TransactionSignature |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<RpcResponseAndContext<boolean>>

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

Fetch all the account info for the specified public key

#### Params:

Name | Type | Attribute | Description
publicKey | PublicKey |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<AccountInfo|nullliteral>

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

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

#### Params:

Name | Type | Attribute | Description
publicKey | PublicKey |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<RpcResponseAndContext<AccountInfo|nullliteral>>

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

Fetch the balance for the specified public key

#### Params:

Name | Type | Attribute | Description
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:

Name | Type | Attribute | Description
publicKey | PublicKey |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<RpcResponseAndContext<number>>

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

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

#### Return:

Promise<Array<ContactInfo>>

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

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

#### Params:

Name | Type | Attribute | Description
slot | number |  |

#### Return:

Promise<ConfirmedBlock>

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

Fetch the Epoch Info parameters

#### Params:

Name | Type | Attribute | Description

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:

Name | Type | Attribute | Description

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:

Name | Type | Attribute | Description
dataLength | number |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<number>

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

Fetch the contents of a Nonce account from the cluster

#### Params:

Name | Type | Attribute | Description
nonceAccount | PublicKey |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<NonceAccount|nullliteral>

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

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

#### Params:

Name | Type | Attribute | Description
nonceAccount | PublicKey |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<RpcResponseAndContext<NonceAccount|nullliteral>>

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

Fetch all the accounts owned by the specified program id

#### Params:

Name | Type | Attribute | Description
programId | PublicKey |  |

commitment

Commitment

- nullable: true

#### Return:

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

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

Fetch a recent blockhash from the cluster

#### Params:

Name | Type | Attribute | Description

commitment

Commitment

- nullable: true

#### Return:

Promise<{blockhash: <span="">Blockhash, feeCalculator: FeeCalculator}>

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

Fetch a recent blockhash from the cluster, return with context

#### Params:

Name | Type | Attribute | Description

commitment

Commitment

- nullable: true

#### Return:

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

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

Fetch the current status of a signature

#### Params:

Name | Type | Attribute | Description
signature | TransactionSignature |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<RpcResponseAndContext<SignatureStatus|nullliteral>>

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

Fetch the current status of a signature

#### Params:

Name | Type | Attribute | Description
signatures | Array<TransactionSignature> |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<RpcResponseAndContext<Array<SignatureStatus|nullliteral>>>

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

Fetch the current slot that the node is processing

#### Params:

Name | Type | Attribute | Description

commitment

Commitment

- nullable: true

#### Return:

Promise<number>

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

Fetch the current slot leader of the cluster

#### Params:

Name | Type | Attribute | Description

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:

Name | Type | Attribute | Description

commitment

Commitment

- nullable: true

#### Return:

Promise<number>

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

Fetch the current transaction count of the cluster

#### Params:

Name | Type | Attribute | Description

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:

Name | Type | Attribute | Description

commitment

Commitment

- nullable: true

#### Return:

Promise<VoteAccountStatus>

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

Register a callback to be invoked whenever the specified account changes

#### Params:

Name | Type | Attribute | Description
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:

Name | Type | Attribute | Description
programId | PublicKey |  | Public key of the program to monitor
callback | ProgramAccountChangeCallback |  | Function to invoke whenever the account is changed

#### Return:

number | subscription id

### public onRootChange(callback: RootChangeCallback): number source

Register a callback to be invoked upon root changes

#### Params:

Name | Type | Attribute | Description
callback | RootChangeCallback |  | Function to invoke whenever the root changes

#### Return:

number | subscription id

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

Register a callback to be invoked upon signature updates

#### Params:

Name | Type | Attribute | Description
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:

Name | Type | Attribute | Description
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:

Name | Type | Attribute | Description
id | number |  | subscription id to deregister

#### Return:

Promise<void>

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

Deregister an account notification callback

#### Params:

Name | Type | Attribute | Description
id | number |  | subscription id to deregister

#### Return:

Promise<void>

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

Deregister a root notification callback

#### Params:

Name | Type | Attribute | Description
id | number |  | subscription id to deregister

#### Return:

Promise<void>

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

Deregister a signature notification callback

#### Params:

Name | Type | Attribute | Description
id | number |  | subscription id to deregister

#### Return:

Promise<void>

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

Deregister a slot notification callback

#### Params:

Name | Type | Attribute | Description
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:

Name | Type | Attribute | Description
to | PublicKey |  |
amount | number |  |

commitment

Commitment

- nullable: true

#### Return:

Promise<TransactionSignature>

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

Name | Type | Attribute | Description
encodedTransaction | string |  |

#### Return:

Promise<TransactionSignature>

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

Name | Type | Attribute | Description
rawTransaction | Buffer | Uint8Array | Array<number> |  |

#### Return:

Promise<TransactionSignature>

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

Sign and send a transaction

#### Params:

Name | Type | Attribute | Description
transaction | Transaction |  |
signers | ...Array<Account> |  |

#### Return:

Promise<TransactionSignature>