Expose `getTotalSupply` RPC method (#370)
This commit is contained in:
parent
fd2ddef520
commit
034f31d3bc
|
@ -93,6 +93,7 @@ declare module '@solana/web3.js' {
|
||||||
signature: TransactionSignature,
|
signature: TransactionSignature,
|
||||||
): Promise<SignatureSuccess | TransactionError | null>;
|
): Promise<SignatureSuccess | TransactionError | null>;
|
||||||
getTransactionCount(): Promise<number>;
|
getTransactionCount(): Promise<number>;
|
||||||
|
getTotalSupply(): Promise<number>;
|
||||||
getRecentBlockhash(): Promise<[Blockhash, FeeCalculator]>;
|
getRecentBlockhash(): Promise<[Blockhash, FeeCalculator]>;
|
||||||
requestAirdrop(
|
requestAirdrop(
|
||||||
to: PublicKey,
|
to: PublicKey,
|
||||||
|
|
|
@ -214,6 +214,11 @@ const GetSignatureStatusRpcResult = jsonRpcResult(
|
||||||
*/
|
*/
|
||||||
const GetTransactionCountRpcResult = jsonRpcResult('number');
|
const GetTransactionCountRpcResult = jsonRpcResult('number');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Expected JSON RPC response for the "getTotalSupply" message
|
||||||
|
*/
|
||||||
|
const GetTotalSupplyRpcResult = jsonRpcResult('number');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expected JSON RPC response for the "getRecentBlockhash" message
|
* Expected JSON RPC response for the "getRecentBlockhash" message
|
||||||
*/
|
*/
|
||||||
|
@ -524,6 +529,19 @@ export class Connection {
|
||||||
return Number(res.result);
|
return Number(res.result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch the current total currency supply of the cluster
|
||||||
|
*/
|
||||||
|
async getTotalSupply(): Promise<number> {
|
||||||
|
const unsafeRes = await this._rpcRequest('getTotalSupply', []);
|
||||||
|
const res = GetTotalSupplyRpcResult(unsafeRes);
|
||||||
|
if (res.error) {
|
||||||
|
throw new Error(res.error.message);
|
||||||
|
}
|
||||||
|
assert(typeof res.result !== 'undefined');
|
||||||
|
return Number(res.result);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch a recent blockhash from the cluster
|
* Fetch a recent blockhash from the cluster
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -199,6 +199,25 @@ test('get transaction count', async () => {
|
||||||
expect(count).toBeGreaterThanOrEqual(0);
|
expect(count).toBeGreaterThanOrEqual(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('get total supply', async () => {
|
||||||
|
const connection = new Connection(url);
|
||||||
|
|
||||||
|
mockRpc.push([
|
||||||
|
url,
|
||||||
|
{
|
||||||
|
method: 'getTotalSupply',
|
||||||
|
params: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
error: null,
|
||||||
|
result: 1000000,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const count = await connection.getTotalSupply();
|
||||||
|
expect(count).toBeGreaterThanOrEqual(0);
|
||||||
|
});
|
||||||
|
|
||||||
test('get recent blockhash', async () => {
|
test('get recent blockhash', async () => {
|
||||||
const connection = new Connection(url);
|
const connection = new Connection(url);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue