1
- import { createJsonRpcTransport } from '@solana/rpc-transport' ;
2
- import type { SolanaJsonRpcErrorCode } from '@solana/rpc-transport/dist/types/json-rpc-transport/json-rpc- errors' ;
3
- import type { Transport } from '@solana/rpc-transport/dist/types/json-rpc-transport/json-rpc-transport -types' ;
1
+ import { createHttpTransport , createJsonRpc } from '@solana/rpc-transport' ;
2
+ import type { SolanaJsonRpcErrorCode } from '@solana/rpc-transport/dist/types/json-rpc-errors' ;
3
+ import type { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types' ;
4
4
import fetchMock from 'jest-fetch-mock-fork' ;
5
5
import { createSolanaRpcApi , SolanaRpcMethods } from '../../index' ;
6
6
import { Commitment } from '../common' ;
7
7
import { Base58EncodedAddress } from '@solana/keys' ;
8
8
9
- describe ( 'getBalance ' , ( ) => {
10
- let transport : Transport < SolanaRpcMethods > ;
9
+ describe ( 'getBlockProduction ' , ( ) => {
10
+ let rpc : Rpc < SolanaRpcMethods > ;
11
11
beforeEach ( ( ) => {
12
12
fetchMock . resetMocks ( ) ;
13
13
fetchMock . dontMock ( ) ;
14
- transport = createJsonRpcTransport ( {
14
+ rpc = createJsonRpc < SolanaRpcMethods > ( {
15
15
api : createSolanaRpcApi ( ) ,
16
- url : 'http://127.0.0.1:8899' ,
16
+ transport : createHttpTransport ( { url : 'http://127.0.0.1:8899' } ) ,
17
17
} ) ;
18
18
} ) ;
19
19
20
20
( [ 'confirmed' , 'finalized' , 'processed' ] as Commitment [ ] ) . forEach ( commitment => {
21
21
describe ( `when called with \`${ commitment } \` commitment` , ( ) => {
22
22
it ( 'returns block production data' , async ( ) => {
23
23
expect . assertions ( 1 ) ;
24
- const blockProductionPromise = transport . getBlockProduction ( { commitment } ) . send ( ) ;
24
+ const blockProductionPromise = rpc . getBlockProduction ( { commitment } ) . send ( ) ;
25
25
await expect ( blockProductionPromise ) . resolves . toMatchObject ( {
26
26
value : expect . objectContaining ( {
27
27
byIdentity : expect . toBeObject ( ) ,
@@ -35,10 +35,8 @@ describe('getBalance', () => {
35
35
36
36
it ( 'has the latest context slot as the last slot' , async ( ) => {
37
37
expect . assertions ( 1 ) ;
38
- const blockProductionPromise = transport . getBlockProduction ( { commitment } ) . send ( ) ;
39
- await expect ( blockProductionPromise ) . resolves . toSatisfy (
40
- rpcResponse => rpcResponse . context . slot === rpcResponse . value . range . lastSlot
41
- ) ;
38
+ const blockProduction = await rpc . getBlockProduction ( { commitment } ) . send ( ) ;
39
+ expect ( blockProduction . value . range . lastSlot ) . toBe ( blockProduction . context . slot ) ;
42
40
} ) ;
43
41
} ) ;
44
42
} ) ;
@@ -51,7 +49,7 @@ describe('getBalance', () => {
51
49
expect . assertions ( 1 ) ;
52
50
// Randomly generated address, assumed not to be a block producer
53
51
const identity = '9NmqDDZa7mH1DBM4zeq9cm7VcRn2un1i2TwuMvjBoVhU' as Base58EncodedAddress ;
54
- const blockProductionPromise = transport . getBlockProduction ( { identity } ) . send ( ) ;
52
+ const blockProductionPromise = rpc . getBlockProduction ( { identity } ) . send ( ) ;
55
53
await expect ( blockProductionPromise ) . resolves . toMatchObject ( {
56
54
value : expect . objectContaining ( {
57
55
byIdentity : expect . toBeEmptyObject ( ) ,
@@ -63,7 +61,7 @@ describe('getBalance', () => {
63
61
describe ( 'when called with a `lastSlot` higher than the highest slot available' , ( ) => {
64
62
it ( 'throws an error' , async ( ) => {
65
63
expect . assertions ( 1 ) ;
66
- const blockProductionPromise = transport
64
+ const blockProductionPromise = rpc
67
65
. getBlockProduction ( {
68
66
range : {
69
67
firstSlot : 0n ,
@@ -72,7 +70,7 @@ describe('getBalance', () => {
72
70
} )
73
71
. send ( ) ;
74
72
await expect ( blockProductionPromise ) . rejects . toMatchObject ( {
75
- code : - 32602 satisfies ( typeof SolanaJsonRpcErrorCode ) [ 'JSON_RPC_SERVER_ERROR_LAST_SLOT_TOO_LARGE ' ] ,
73
+ code : - 32602 satisfies ( typeof SolanaJsonRpcErrorCode ) [ 'JSON_RPC_INVALID_PARAMS ' ] ,
76
74
message : expect . any ( String ) ,
77
75
name : 'SolanaJsonRpcError' ,
78
76
} ) ;
0 commit comments