surfman-sdk 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,6 +5,8 @@ TypeScript SDK for SurfPool RPC API interaction - A powerful toolkit for Solana
5
5
  [![npm version](https://img.shields.io/npm/v/surfman-sdk.svg)](https://www.npmjs.com/package/surfman-sdk)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
 
8
+ > 📖 **[SurfPool Documentation](https://docs.surfpool.run/)** - Learn more about SurfPool's local development environment
9
+
8
10
  ## Features
9
11
 
10
12
  - 🔧 **Cheatcodes**: Time travel, account manipulation, network control
@@ -232,6 +234,7 @@ surfman --help
232
234
 
233
235
  ## Documentation
234
236
 
237
+ - [SurfPool Documentation](https://docs.surfpool.run/) - Official SurfPool docs
235
238
  - [GitHub Repository](https://github.com/ennea8/surfman)
236
239
  - [CLI Tool](https://www.npmjs.com/package/surfman)
237
240
  - [Report Issues](https://github.com/ennea8/surfman/issues)
package/dist/index.d.mts CHANGED
@@ -65,6 +65,104 @@ interface RpcLogsResponse {
65
65
  slot: number;
66
66
  logs?: string[];
67
67
  }
68
+ interface SupplyUpdate {
69
+ total?: number;
70
+ circulating?: number;
71
+ nonCirculating?: number;
72
+ nonCirculatingAccounts?: string[];
73
+ }
74
+ interface RpcProfileResultConfig {
75
+ encoding?: string;
76
+ depth?: 'full' | 'shallow';
77
+ }
78
+ interface UiKeyedProfileResult {
79
+ uuid: string;
80
+ signature?: string;
81
+ slot: number;
82
+ tag?: string;
83
+ computeUnitsConsumed?: number;
84
+ err?: any;
85
+ logs?: string[];
86
+ preState?: any;
87
+ postState?: any;
88
+ }
89
+ interface Idl {
90
+ address: string;
91
+ metadata: {
92
+ name: string;
93
+ version: string;
94
+ spec: string;
95
+ description?: string;
96
+ };
97
+ instructions: any[];
98
+ accounts: any[];
99
+ types: any[];
100
+ events?: any[];
101
+ errors?: any[];
102
+ constants?: any[];
103
+ state?: any;
104
+ }
105
+ interface ExportSnapshotConfig {
106
+ includeParsedAccounts?: boolean;
107
+ filter?: {
108
+ includeProgramAccounts?: boolean;
109
+ includeAccounts?: string[];
110
+ excludeAccounts?: string[];
111
+ };
112
+ scope?: {
113
+ network?: boolean;
114
+ preTransaction?: string;
115
+ };
116
+ }
117
+ interface AccountSnapshot {
118
+ lamports: number;
119
+ owner: string;
120
+ executable: boolean;
121
+ rentEpoch: number;
122
+ data: string;
123
+ }
124
+ interface StreamAccountConfig {
125
+ includeOwnedAccounts?: boolean;
126
+ }
127
+ interface GetStreamedAccountsResponse {
128
+ accounts: string[];
129
+ }
130
+ interface GetSurfnetInfoResponse {
131
+ runbookExecutions: Array<{
132
+ startedAt: number;
133
+ completedAt?: number;
134
+ runbookId: string;
135
+ }>;
136
+ }
137
+ interface Scenario {
138
+ id: string;
139
+ name: string;
140
+ description: string;
141
+ overrides: OverrideInstance[];
142
+ tags: string[];
143
+ }
144
+ interface OverrideInstance {
145
+ id: string;
146
+ templateId: string;
147
+ values: Record<string, any>;
148
+ scenarioRelativeSlot: number;
149
+ label?: string;
150
+ enabled: boolean;
151
+ fetchBeforeUse: boolean;
152
+ account: AccountAddress;
153
+ }
154
+ interface AccountAddress {
155
+ pubkey?: string;
156
+ pda?: {
157
+ programId: string;
158
+ seeds: any[];
159
+ };
160
+ }
161
+ type UuidOrSignature = {
162
+ Uuid: string;
163
+ } | {
164
+ Signature: string;
165
+ };
68
166
 
69
167
  interface BlockhashResult {
70
168
  blockhash: string;
@@ -216,6 +314,13 @@ type TokenAccountsFilter = {
216
314
  } | {
217
315
  programId: string;
218
316
  };
317
+ interface InflationReward {
318
+ epoch: number;
319
+ effectiveSlot: number;
320
+ amount: number;
321
+ postBalance: number;
322
+ commission?: number | null;
323
+ }
219
324
 
220
325
  declare class SurfmanClient {
221
326
  private url;
@@ -240,6 +345,19 @@ declare class CheatcodesModule {
240
345
  setTokenAccount(owner: string, mint: string, update: TokenAccountUpdate, tokenProgram?: string): Promise<void>;
241
346
  resetAccount(pubkey: string, config?: ResetAccountConfig): Promise<void>;
242
347
  resetNetwork(): Promise<void>;
348
+ cloneProgramAccount(sourceProgramId: string, destinationProgramId: string): Promise<void>;
349
+ profileTransaction(transactionData: string, tag?: string, config?: RpcProfileResultConfig): Promise<UiKeyedProfileResult>;
350
+ getProfileResultsByTag(tag: string, config?: RpcProfileResultConfig): Promise<UiKeyedProfileResult[] | null>;
351
+ setSupply(update: SupplyUpdate): Promise<void>;
352
+ getTransactionProfile(signatureOrUuid: UuidOrSignature, config?: RpcProfileResultConfig): Promise<UiKeyedProfileResult | null>;
353
+ registerIdl(idl: Idl, slot?: number): Promise<void>;
354
+ getIdl(programId: string, slot?: number): Promise<Idl | null>;
355
+ exportSnapshot(config?: ExportSnapshotConfig): Promise<Record<string, AccountSnapshot>>;
356
+ streamAccount(pubkey: string, config?: StreamAccountConfig): Promise<void>;
357
+ getStreamedAccounts(): Promise<GetStreamedAccountsResponse>;
358
+ getSurfnetInfo(): Promise<GetSurfnetInfoResponse>;
359
+ writeProgram(programId: string, data: string, offset: number, authority?: string): Promise<void>;
360
+ registerScenario(scenario: Scenario, slot?: number): Promise<void>;
243
361
  }
244
362
 
245
363
  interface SignatureForAddress {
@@ -298,6 +416,17 @@ declare class NetworkModule {
298
416
  commitment?: string;
299
417
  }): Promise<number | null>;
300
418
  getRecentPrioritizationFees(addresses?: string[]): Promise<PrioritizationFee[]>;
419
+ getInflationReward(addresses: string[], config?: {
420
+ epoch?: number;
421
+ commitment?: string;
422
+ minContextSlot?: number;
423
+ }): Promise<(InflationReward | null)[]>;
424
+ getMaxRetransmitSlot(): Promise<number>;
425
+ getMaxShredInsertSlot(): Promise<number>;
426
+ getStakeMinimumDelegation(config?: {
427
+ commitment?: string;
428
+ minContextSlot?: number;
429
+ }): Promise<number>;
301
430
  }
302
431
 
303
432
  declare class AccountsModule {
@@ -342,4 +471,4 @@ declare class Surfman {
342
471
  getClient(): SurfmanClient;
343
472
  }
344
473
 
345
- export { type AccountBalance, type AccountInfo, type AccountInfoConfig, AccountsModule, type Block, type BlockCommitment, type BlockConfig, type BlockhashResult, CheatcodesModule, type ClusterNode, type JsonRpcError, type JsonRpcRequest, type JsonRpcResponse, type KeyedAccount, NetworkModule, type PerformanceSample, type ProgramAccountsConfig, type ResetAccountConfig, type RpcClientConfig, type RpcLogsResponse, ScanModule, type SendTransactionConfig, type SetAccountUpdate, type SetProgramAuthorityParams, type SetSomeAccount, type SignatureStatus, type SimulateTransactionConfig, type SimulateTransactionResult, type Supply, type SupplyConfig, Surfman, SurfmanClient, type TimeTravelConfig, type TimeTravelResult, type TokenAccountBalance, type TokenAccountUpdate, type TokenAccountsFilter, type TokenAmount, type TransactionConfig, type TransactionResult };
474
+ export { type AccountAddress, type AccountBalance, type AccountInfo, type AccountInfoConfig, type AccountSnapshot, AccountsModule, type Block, type BlockCommitment, type BlockConfig, type BlockhashResult, CheatcodesModule, type ClusterNode, type ExportSnapshotConfig, type GetStreamedAccountsResponse, type GetSurfnetInfoResponse, type Idl, type InflationReward, type JsonRpcError, type JsonRpcRequest, type JsonRpcResponse, type KeyedAccount, NetworkModule, type OverrideInstance, type PerformanceSample, type ProgramAccountsConfig, type ResetAccountConfig, type RpcClientConfig, type RpcLogsResponse, type RpcProfileResultConfig, ScanModule, type Scenario, type SendTransactionConfig, type SetAccountUpdate, type SetProgramAuthorityParams, type SetSomeAccount, type SignatureStatus, type SimulateTransactionConfig, type SimulateTransactionResult, type StreamAccountConfig, type Supply, type SupplyConfig, type SupplyUpdate, Surfman, SurfmanClient, type TimeTravelConfig, type TimeTravelResult, type TokenAccountBalance, type TokenAccountUpdate, type TokenAccountsFilter, type TokenAmount, type TransactionConfig, type TransactionResult, type UiKeyedProfileResult, type UuidOrSignature };
package/dist/index.d.ts CHANGED
@@ -65,6 +65,104 @@ interface RpcLogsResponse {
65
65
  slot: number;
66
66
  logs?: string[];
67
67
  }
68
+ interface SupplyUpdate {
69
+ total?: number;
70
+ circulating?: number;
71
+ nonCirculating?: number;
72
+ nonCirculatingAccounts?: string[];
73
+ }
74
+ interface RpcProfileResultConfig {
75
+ encoding?: string;
76
+ depth?: 'full' | 'shallow';
77
+ }
78
+ interface UiKeyedProfileResult {
79
+ uuid: string;
80
+ signature?: string;
81
+ slot: number;
82
+ tag?: string;
83
+ computeUnitsConsumed?: number;
84
+ err?: any;
85
+ logs?: string[];
86
+ preState?: any;
87
+ postState?: any;
88
+ }
89
+ interface Idl {
90
+ address: string;
91
+ metadata: {
92
+ name: string;
93
+ version: string;
94
+ spec: string;
95
+ description?: string;
96
+ };
97
+ instructions: any[];
98
+ accounts: any[];
99
+ types: any[];
100
+ events?: any[];
101
+ errors?: any[];
102
+ constants?: any[];
103
+ state?: any;
104
+ }
105
+ interface ExportSnapshotConfig {
106
+ includeParsedAccounts?: boolean;
107
+ filter?: {
108
+ includeProgramAccounts?: boolean;
109
+ includeAccounts?: string[];
110
+ excludeAccounts?: string[];
111
+ };
112
+ scope?: {
113
+ network?: boolean;
114
+ preTransaction?: string;
115
+ };
116
+ }
117
+ interface AccountSnapshot {
118
+ lamports: number;
119
+ owner: string;
120
+ executable: boolean;
121
+ rentEpoch: number;
122
+ data: string;
123
+ }
124
+ interface StreamAccountConfig {
125
+ includeOwnedAccounts?: boolean;
126
+ }
127
+ interface GetStreamedAccountsResponse {
128
+ accounts: string[];
129
+ }
130
+ interface GetSurfnetInfoResponse {
131
+ runbookExecutions: Array<{
132
+ startedAt: number;
133
+ completedAt?: number;
134
+ runbookId: string;
135
+ }>;
136
+ }
137
+ interface Scenario {
138
+ id: string;
139
+ name: string;
140
+ description: string;
141
+ overrides: OverrideInstance[];
142
+ tags: string[];
143
+ }
144
+ interface OverrideInstance {
145
+ id: string;
146
+ templateId: string;
147
+ values: Record<string, any>;
148
+ scenarioRelativeSlot: number;
149
+ label?: string;
150
+ enabled: boolean;
151
+ fetchBeforeUse: boolean;
152
+ account: AccountAddress;
153
+ }
154
+ interface AccountAddress {
155
+ pubkey?: string;
156
+ pda?: {
157
+ programId: string;
158
+ seeds: any[];
159
+ };
160
+ }
161
+ type UuidOrSignature = {
162
+ Uuid: string;
163
+ } | {
164
+ Signature: string;
165
+ };
68
166
 
69
167
  interface BlockhashResult {
70
168
  blockhash: string;
@@ -216,6 +314,13 @@ type TokenAccountsFilter = {
216
314
  } | {
217
315
  programId: string;
218
316
  };
317
+ interface InflationReward {
318
+ epoch: number;
319
+ effectiveSlot: number;
320
+ amount: number;
321
+ postBalance: number;
322
+ commission?: number | null;
323
+ }
219
324
 
220
325
  declare class SurfmanClient {
221
326
  private url;
@@ -240,6 +345,19 @@ declare class CheatcodesModule {
240
345
  setTokenAccount(owner: string, mint: string, update: TokenAccountUpdate, tokenProgram?: string): Promise<void>;
241
346
  resetAccount(pubkey: string, config?: ResetAccountConfig): Promise<void>;
242
347
  resetNetwork(): Promise<void>;
348
+ cloneProgramAccount(sourceProgramId: string, destinationProgramId: string): Promise<void>;
349
+ profileTransaction(transactionData: string, tag?: string, config?: RpcProfileResultConfig): Promise<UiKeyedProfileResult>;
350
+ getProfileResultsByTag(tag: string, config?: RpcProfileResultConfig): Promise<UiKeyedProfileResult[] | null>;
351
+ setSupply(update: SupplyUpdate): Promise<void>;
352
+ getTransactionProfile(signatureOrUuid: UuidOrSignature, config?: RpcProfileResultConfig): Promise<UiKeyedProfileResult | null>;
353
+ registerIdl(idl: Idl, slot?: number): Promise<void>;
354
+ getIdl(programId: string, slot?: number): Promise<Idl | null>;
355
+ exportSnapshot(config?: ExportSnapshotConfig): Promise<Record<string, AccountSnapshot>>;
356
+ streamAccount(pubkey: string, config?: StreamAccountConfig): Promise<void>;
357
+ getStreamedAccounts(): Promise<GetStreamedAccountsResponse>;
358
+ getSurfnetInfo(): Promise<GetSurfnetInfoResponse>;
359
+ writeProgram(programId: string, data: string, offset: number, authority?: string): Promise<void>;
360
+ registerScenario(scenario: Scenario, slot?: number): Promise<void>;
243
361
  }
244
362
 
245
363
  interface SignatureForAddress {
@@ -298,6 +416,17 @@ declare class NetworkModule {
298
416
  commitment?: string;
299
417
  }): Promise<number | null>;
300
418
  getRecentPrioritizationFees(addresses?: string[]): Promise<PrioritizationFee[]>;
419
+ getInflationReward(addresses: string[], config?: {
420
+ epoch?: number;
421
+ commitment?: string;
422
+ minContextSlot?: number;
423
+ }): Promise<(InflationReward | null)[]>;
424
+ getMaxRetransmitSlot(): Promise<number>;
425
+ getMaxShredInsertSlot(): Promise<number>;
426
+ getStakeMinimumDelegation(config?: {
427
+ commitment?: string;
428
+ minContextSlot?: number;
429
+ }): Promise<number>;
301
430
  }
302
431
 
303
432
  declare class AccountsModule {
@@ -342,4 +471,4 @@ declare class Surfman {
342
471
  getClient(): SurfmanClient;
343
472
  }
344
473
 
345
- export { type AccountBalance, type AccountInfo, type AccountInfoConfig, AccountsModule, type Block, type BlockCommitment, type BlockConfig, type BlockhashResult, CheatcodesModule, type ClusterNode, type JsonRpcError, type JsonRpcRequest, type JsonRpcResponse, type KeyedAccount, NetworkModule, type PerformanceSample, type ProgramAccountsConfig, type ResetAccountConfig, type RpcClientConfig, type RpcLogsResponse, ScanModule, type SendTransactionConfig, type SetAccountUpdate, type SetProgramAuthorityParams, type SetSomeAccount, type SignatureStatus, type SimulateTransactionConfig, type SimulateTransactionResult, type Supply, type SupplyConfig, Surfman, SurfmanClient, type TimeTravelConfig, type TimeTravelResult, type TokenAccountBalance, type TokenAccountUpdate, type TokenAccountsFilter, type TokenAmount, type TransactionConfig, type TransactionResult };
474
+ export { type AccountAddress, type AccountBalance, type AccountInfo, type AccountInfoConfig, type AccountSnapshot, AccountsModule, type Block, type BlockCommitment, type BlockConfig, type BlockhashResult, CheatcodesModule, type ClusterNode, type ExportSnapshotConfig, type GetStreamedAccountsResponse, type GetSurfnetInfoResponse, type Idl, type InflationReward, type JsonRpcError, type JsonRpcRequest, type JsonRpcResponse, type KeyedAccount, NetworkModule, type OverrideInstance, type PerformanceSample, type ProgramAccountsConfig, type ResetAccountConfig, type RpcClientConfig, type RpcLogsResponse, type RpcProfileResultConfig, ScanModule, type Scenario, type SendTransactionConfig, type SetAccountUpdate, type SetProgramAuthorityParams, type SetSomeAccount, type SignatureStatus, type SimulateTransactionConfig, type SimulateTransactionResult, type StreamAccountConfig, type Supply, type SupplyConfig, type SupplyUpdate, Surfman, SurfmanClient, type TimeTravelConfig, type TimeTravelResult, type TokenAccountBalance, type TokenAccountUpdate, type TokenAccountsFilter, type TokenAmount, type TransactionConfig, type TransactionResult, type UiKeyedProfileResult, type UuidOrSignature };
package/dist/index.js CHANGED
@@ -159,6 +159,110 @@ async function resetNetwork(client) {
159
159
  return client.request("surfnet_resetNetwork", []);
160
160
  }
161
161
 
162
+ // src/modules/cheatcodes/cloneProgramAccount.ts
163
+ async function cloneProgramAccount(client, sourceProgramId, destinationProgramId) {
164
+ return client.request(
165
+ "surfnet_cloneProgramAccount",
166
+ [sourceProgramId, destinationProgramId]
167
+ );
168
+ }
169
+
170
+ // src/modules/cheatcodes/profileTransaction.ts
171
+ async function profileTransaction(client, transactionData, tag, config) {
172
+ return client.request(
173
+ "surfnet_profileTransaction",
174
+ [transactionData, tag, config]
175
+ );
176
+ }
177
+
178
+ // src/modules/cheatcodes/getProfileResultsByTag.ts
179
+ async function getProfileResultsByTag(client, tag, config) {
180
+ return client.request(
181
+ "surfnet_getProfileResultsByTag",
182
+ [tag, config]
183
+ );
184
+ }
185
+
186
+ // src/modules/cheatcodes/setSupply.ts
187
+ async function setSupply(client, update) {
188
+ return client.request(
189
+ "surfnet_setSupply",
190
+ [update]
191
+ );
192
+ }
193
+
194
+ // src/modules/cheatcodes/getTransactionProfile.ts
195
+ async function getTransactionProfile(client, signatureOrUuid, config) {
196
+ return client.request(
197
+ "surfnet_getTransactionProfile",
198
+ [signatureOrUuid, config]
199
+ );
200
+ }
201
+
202
+ // src/modules/cheatcodes/registerIdl.ts
203
+ async function registerIdl(client, idl, slot) {
204
+ return client.request(
205
+ "surfnet_registerIdl",
206
+ [idl, slot]
207
+ );
208
+ }
209
+
210
+ // src/modules/cheatcodes/getIdl.ts
211
+ async function getIdl(client, programId, slot) {
212
+ return client.request(
213
+ "surfnet_getActiveIdl",
214
+ [programId, slot]
215
+ );
216
+ }
217
+
218
+ // src/modules/cheatcodes/exportSnapshot.ts
219
+ async function exportSnapshot(client, config) {
220
+ return client.request(
221
+ "surfnet_exportSnapshot",
222
+ [config]
223
+ );
224
+ }
225
+
226
+ // src/modules/cheatcodes/streamAccount.ts
227
+ async function streamAccount(client, pubkey, config) {
228
+ return client.request(
229
+ "surfnet_streamAccount",
230
+ [pubkey, config]
231
+ );
232
+ }
233
+
234
+ // src/modules/cheatcodes/getStreamedAccounts.ts
235
+ async function getStreamedAccounts(client) {
236
+ return client.request(
237
+ "surfnet_getStreamedAccounts",
238
+ []
239
+ );
240
+ }
241
+
242
+ // src/modules/cheatcodes/getSurfnetInfo.ts
243
+ async function getSurfnetInfo(client) {
244
+ return client.request(
245
+ "surfnet_getSurfnetInfo",
246
+ []
247
+ );
248
+ }
249
+
250
+ // src/modules/cheatcodes/writeProgram.ts
251
+ async function writeProgram(client, programId, data, offset, authority) {
252
+ return client.request(
253
+ "surfnet_writeProgram",
254
+ [programId, data, offset, authority]
255
+ );
256
+ }
257
+
258
+ // src/modules/cheatcodes/registerScenario.ts
259
+ async function registerScenario(client, scenario, slot) {
260
+ return client.request(
261
+ "surfnet_registerScenario",
262
+ [scenario, slot]
263
+ );
264
+ }
265
+
162
266
  // src/modules/cheatcodes/index.ts
163
267
  var CheatcodesModule = class {
164
268
  constructor(client) {
@@ -191,6 +295,45 @@ var CheatcodesModule = class {
191
295
  async resetNetwork() {
192
296
  return resetNetwork(this.client);
193
297
  }
298
+ async cloneProgramAccount(sourceProgramId, destinationProgramId) {
299
+ return cloneProgramAccount(this.client, sourceProgramId, destinationProgramId);
300
+ }
301
+ async profileTransaction(transactionData, tag, config) {
302
+ return profileTransaction(this.client, transactionData, tag, config);
303
+ }
304
+ async getProfileResultsByTag(tag, config) {
305
+ return getProfileResultsByTag(this.client, tag, config);
306
+ }
307
+ async setSupply(update) {
308
+ return setSupply(this.client, update);
309
+ }
310
+ async getTransactionProfile(signatureOrUuid, config) {
311
+ return getTransactionProfile(this.client, signatureOrUuid, config);
312
+ }
313
+ async registerIdl(idl, slot) {
314
+ return registerIdl(this.client, idl, slot);
315
+ }
316
+ async getIdl(programId, slot) {
317
+ return getIdl(this.client, programId, slot);
318
+ }
319
+ async exportSnapshot(config) {
320
+ return exportSnapshot(this.client, config);
321
+ }
322
+ async streamAccount(pubkey, config) {
323
+ return streamAccount(this.client, pubkey, config);
324
+ }
325
+ async getStreamedAccounts() {
326
+ return getStreamedAccounts(this.client);
327
+ }
328
+ async getSurfnetInfo() {
329
+ return getSurfnetInfo(this.client);
330
+ }
331
+ async writeProgram(programId, data, offset, authority) {
332
+ return writeProgram(this.client, programId, data, offset, authority);
333
+ }
334
+ async registerScenario(scenario, slot) {
335
+ return registerScenario(this.client, scenario, slot);
336
+ }
194
337
  };
195
338
 
196
339
  // src/modules/network/getLatestBlockhash.ts
@@ -322,6 +465,30 @@ async function getRecentPrioritizationFees(client, addresses) {
322
465
  );
323
466
  }
324
467
 
468
+ // src/modules/network/getInflationReward.ts
469
+ async function getInflationReward(client, addresses, config) {
470
+ return client.request(
471
+ "getInflationReward",
472
+ [addresses, config]
473
+ );
474
+ }
475
+
476
+ // src/modules/network/getMaxRetransmitSlot.ts
477
+ async function getMaxRetransmitSlot(client) {
478
+ return client.request("getMaxRetransmitSlot", []);
479
+ }
480
+
481
+ // src/modules/network/getMaxShredInsertSlot.ts
482
+ async function getMaxShredInsertSlot(client) {
483
+ return client.request("getMaxShredInsertSlot", []);
484
+ }
485
+
486
+ // src/modules/network/getStakeMinimumDelegation.ts
487
+ async function getStakeMinimumDelegation(client, config) {
488
+ const response = await client.request("getStakeMinimumDelegation", [config]);
489
+ return response.value;
490
+ }
491
+
325
492
  // src/modules/network/index.ts
326
493
  var NetworkModule = class {
327
494
  constructor(client) {
@@ -381,6 +548,18 @@ var NetworkModule = class {
381
548
  async getRecentPrioritizationFees(addresses) {
382
549
  return getRecentPrioritizationFees(this.client, addresses);
383
550
  }
551
+ async getInflationReward(addresses, config) {
552
+ return getInflationReward(this.client, addresses, config);
553
+ }
554
+ async getMaxRetransmitSlot() {
555
+ return getMaxRetransmitSlot(this.client);
556
+ }
557
+ async getMaxShredInsertSlot() {
558
+ return getMaxShredInsertSlot(this.client);
559
+ }
560
+ async getStakeMinimumDelegation(config) {
561
+ return getStakeMinimumDelegation(this.client, config);
562
+ }
384
563
  };
385
564
 
386
565
  // src/modules/accounts/getAccountInfo.ts
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/client/SurfmanClient.ts","../src/modules/cheatcodes/timeTravel.ts","../src/modules/cheatcodes/setAccount.ts","../src/modules/cheatcodes/setProgramAuthority.ts","../src/modules/cheatcodes/pauseClock.ts","../src/modules/cheatcodes/resumeClock.ts","../src/modules/cheatcodes/getLocalSignatures.ts","../src/modules/cheatcodes/setTokenAccount.ts","../src/modules/cheatcodes/resetAccount.ts","../src/modules/cheatcodes/resetNetwork.ts","../src/modules/cheatcodes/index.ts","../src/modules/network/getLatestBlockhash.ts","../src/modules/network/getBlock.ts","../src/modules/network/getBlockTime.ts","../src/modules/network/getFirstAvailableBlock.ts","../src/modules/network/minimumLedgerSlot.ts","../src/modules/network/getTransaction.ts","../src/modules/network/getSignatureStatuses.ts","../src/modules/network/sendTransaction.ts","../src/modules/network/simulateTransaction.ts","../src/modules/network/getClusterNodes.ts","../src/modules/network/getRecentPerformanceSamples.ts","../src/modules/network/requestAirdrop.ts","../src/modules/network/getBlocks.ts","../src/modules/network/getBlocksWithLimit.ts","../src/modules/network/getSignaturesForAddress.ts","../src/modules/network/isBlockhashValid.ts","../src/modules/network/getFeeForMessage.ts","../src/modules/network/getRecentPrioritizationFees.ts","../src/modules/network/index.ts","../src/modules/accounts/getAccountInfo.ts","../src/modules/accounts/getMultipleAccounts.ts","../src/modules/accounts/getBlockCommitment.ts","../src/modules/accounts/getTokenAccountBalance.ts","../src/modules/accounts/getTokenSupply.ts","../src/modules/accounts/index.ts","../src/modules/scan/getProgramAccounts.ts","../src/modules/scan/getLargestAccounts.ts","../src/modules/scan/getSupply.ts","../src/modules/scan/getTokenLargestAccounts.ts","../src/modules/scan/getTokenAccountsByOwner.ts","../src/modules/scan/getTokenAccountsByDelegate.ts","../src/modules/scan/index.ts"],"sourcesContent":["import { SurfmanClient } from './client/SurfmanClient';\nimport { CheatcodesModule } from './modules/cheatcodes';\nimport { NetworkModule } from './modules/network';\nimport { AccountsModule } from './modules/accounts';\nimport { ScanModule } from './modules/scan';\nimport type { RpcClientConfig } from './types';\n\nexport class Surfman {\n public cheatcodes: CheatcodesModule;\n public network: NetworkModule;\n public accounts: AccountsModule;\n public scan: ScanModule;\n\n private client: SurfmanClient;\n\n constructor(config: string | RpcClientConfig) {\n this.client = new SurfmanClient(config);\n this.cheatcodes = new CheatcodesModule(this.client);\n this.network = new NetworkModule(this.client);\n this.accounts = new AccountsModule(this.client);\n this.scan = new ScanModule(this.client);\n }\n\n getClient(): SurfmanClient {\n return this.client;\n }\n}\n\nexport { SurfmanClient } from './client/SurfmanClient';\nexport * from './types';\nexport * from './modules';\n","import type { JsonRpcRequest, JsonRpcResponse, RpcClientConfig } from '../types';\n\nexport class SurfmanClient {\n private url: string;\n private timeout: number;\n private headers: Record<string, string>;\n private requestId = 0;\n\n constructor(config: string | RpcClientConfig) {\n if (typeof config === 'string') {\n this.url = config;\n this.timeout = 30000;\n this.headers = { 'Content-Type': 'application/json' };\n } else {\n this.url = config.url;\n this.timeout = config.timeout ?? 30000;\n this.headers = {\n 'Content-Type': 'application/json',\n ...config.headers,\n };\n }\n }\n\n async request<TParams = any, TResult = any>(\n method: string,\n params: TParams\n ): Promise<TResult> {\n const id = ++this.requestId;\n const body: JsonRpcRequest<TParams> = {\n jsonrpc: '2.0',\n id,\n method,\n params,\n };\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(this.url, {\n method: 'POST',\n headers: this.headers,\n body: JSON.stringify(body),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const result = await response.json() as JsonRpcResponse<TResult>;\n\n if (result.error) {\n throw new Error(\n `RPC error [${result.error.code}]: ${result.error.message}`\n );\n }\n\n return result.result as TResult;\n } catch (error) {\n clearTimeout(timeoutId);\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new Error(`Request timeout after ${this.timeout}ms`);\n }\n throw error;\n }\n throw new Error('Unknown error occurred');\n }\n }\n\n setUrl(url: string): void {\n this.url = url;\n }\n\n getUrl(): string {\n return this.url;\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelConfig, TimeTravelResult } from '../../types';\n\nexport async function timeTravel(\n client: SurfmanClient,\n config: TimeTravelConfig\n): Promise<TimeTravelResult> {\n return client.request<[TimeTravelConfig], TimeTravelResult>(\n 'surfnet_timeTravel',\n [config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SetAccountUpdate } from '../../types';\n\nexport async function setAccount(\n client: SurfmanClient,\n pubkey: string,\n update: SetAccountUpdate\n): Promise<void> {\n return client.request<[string, SetAccountUpdate], void>(\n 'surfnet_setAccount',\n [pubkey, update]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function setProgramAuthority(\n client: SurfmanClient,\n programId: string,\n newAuthority: string | null\n): Promise<void> {\n return client.request<[string, string | null], void>(\n 'surfnet_setProgramAuthority',\n [programId, newAuthority]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function pauseClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_pauseClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function resumeClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_resumeClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcLogsResponse } from '../../types';\n\nexport async function getLocalSignatures(\n client: SurfmanClient,\n limit?: number\n): Promise<RpcLogsResponse[]> {\n return client.request<[number?], RpcLogsResponse[]>(\n 'surfnet_getLocalSignatures',\n [limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountUpdate } from '../../types';\n\nexport async function setTokenAccount(\n client: SurfmanClient,\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n): Promise<void> {\n return client.request<[string, string, TokenAccountUpdate, string?], void>(\n 'surfnet_setTokenAccount',\n [owner, mint, update, tokenProgram]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ResetAccountConfig } from '../../types';\n\nexport async function resetAccount(\n client: SurfmanClient,\n pubkey: string,\n config?: ResetAccountConfig\n): Promise<void> {\n return client.request<[string, ResetAccountConfig?], void>(\n 'surfnet_resetAccount',\n [pubkey, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function resetNetwork(client: SurfmanClient): Promise<void> {\n return client.request<[], void>('surfnet_resetNetwork', []);\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { timeTravel } from './timeTravel';\nimport { setAccount } from './setAccount';\nimport { setProgramAuthority } from './setProgramAuthority';\nimport { pauseClock } from './pauseClock';\nimport { resumeClock } from './resumeClock';\nimport { getLocalSignatures } from './getLocalSignatures';\nimport { setTokenAccount } from './setTokenAccount';\nimport { resetAccount } from './resetAccount';\nimport { resetNetwork } from './resetNetwork';\nimport type {\n TimeTravelConfig,\n TimeTravelResult,\n SetAccountUpdate,\n TokenAccountUpdate,\n ResetAccountConfig,\n RpcLogsResponse,\n} from '../../types';\n\nexport class CheatcodesModule {\n constructor(private client: SurfmanClient) {}\n\n async timeTravel(config: TimeTravelConfig): Promise<TimeTravelResult> {\n return timeTravel(this.client, config);\n }\n\n async setAccount(pubkey: string, update: SetAccountUpdate): Promise<void> {\n return setAccount(this.client, pubkey, update);\n }\n\n async setProgramAuthority(\n programId: string,\n newAuthority: string | null\n ): Promise<void> {\n return setProgramAuthority(this.client, programId, newAuthority);\n }\n\n async pauseClock(): Promise<TimeTravelResult> {\n return pauseClock(this.client);\n }\n\n async resumeClock(): Promise<TimeTravelResult> {\n return resumeClock(this.client);\n }\n\n async getLocalSignatures(limit?: number): Promise<RpcLogsResponse[]> {\n return getLocalSignatures(this.client, limit);\n }\n\n async setTokenAccount(\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n ): Promise<void> {\n return setTokenAccount(this.client, owner, mint, update, tokenProgram);\n }\n\n async resetAccount(\n pubkey: string,\n config?: ResetAccountConfig\n ): Promise<void> {\n return resetAccount(this.client, pubkey, config);\n }\n\n async resetNetwork(): Promise<void> {\n return resetNetwork(this.client);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockhashResult } from '../../types';\n\nexport async function getLatestBlockhash(\n client: SurfmanClient,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<BlockhashResult> {\n return client.request<[any?], BlockhashResult>(\n 'getLatestBlockhash',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Block, BlockConfig } from '../../types';\n\nexport async function getBlock(\n client: SurfmanClient,\n slot: number,\n config?: BlockConfig\n): Promise<Block | null> {\n return client.request<[number, BlockConfig?], Block | null>(\n 'getBlock',\n config ? [slot, config] : [slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlockTime(\n client: SurfmanClient,\n slot: number\n): Promise<number | null> {\n return client.request<[number], number | null>('getBlockTime', [slot]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFirstAvailableBlock(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getFirstAvailableBlock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function minimumLedgerSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('minimumLedgerSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TransactionResult, TransactionConfig } from '../../types';\n\nexport async function getTransaction(\n client: SurfmanClient,\n signature: string,\n config?: TransactionConfig\n): Promise<TransactionResult | null> {\n return client.request<[string, TransactionConfig?], TransactionResult | null>(\n 'getTransaction',\n config ? [signature, config] : [signature]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SignatureStatus } from '../../types';\n\nexport async function getSignatureStatuses(\n client: SurfmanClient,\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n): Promise<(SignatureStatus | null)[]> {\n return client.request<[string[], any?], (SignatureStatus | null)[]>(\n 'getSignatureStatuses',\n config ? [signatures, config] : [signatures]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SendTransactionConfig } from '../../types';\n\nexport async function sendTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SendTransactionConfig\n): Promise<string> {\n return client.request<[string, SendTransactionConfig?], string>(\n 'sendTransaction',\n config ? [transaction, config] : [transaction]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type {\n SimulateTransactionConfig,\n SimulateTransactionResult,\n} from '../../types';\n\nexport async function simulateTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SimulateTransactionConfig\n): Promise<SimulateTransactionResult> {\n return client.request<\n [string, SimulateTransactionConfig?],\n SimulateTransactionResult\n >('simulateTransaction', config ? [transaction, config] : [transaction]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ClusterNode } from '../../types';\n\nexport async function getClusterNodes(\n client: SurfmanClient\n): Promise<ClusterNode[]> {\n return client.request<[], ClusterNode[]>('getClusterNodes', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { PerformanceSample } from '../../types';\n\nexport async function getRecentPerformanceSamples(\n client: SurfmanClient,\n limit?: number\n): Promise<PerformanceSample[]> {\n return client.request<[number?], PerformanceSample[]>(\n 'getRecentPerformanceSamples',\n limit !== undefined ? [limit] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function requestAirdrop(\n client: SurfmanClient,\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n): Promise<string> {\n return client.request<[string, number, any?], string>(\n 'requestAirdrop',\n config ? [pubkey, lamports, config] : [pubkey, lamports]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocks(\n client: SurfmanClient,\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number?, any?], number[]>(\n 'getBlocks',\n endSlot !== undefined\n ? config\n ? [startSlot, endSlot, config]\n : [startSlot, endSlot]\n : [startSlot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocksWithLimit(\n client: SurfmanClient,\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number, any?], number[]>(\n 'getBlocksWithLimit',\n config ? [startSlot, limit, config] : [startSlot, limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface SignatureForAddress {\n signature: string;\n slot: number;\n err: any | null;\n memo: string | null;\n blockTime?: number | null;\n}\n\nexport interface SignaturesForAddressConfig {\n limit?: number;\n before?: string;\n until?: string;\n commitment?: string;\n}\n\nexport async function getSignaturesForAddress(\n client: SurfmanClient,\n address: string,\n config?: SignaturesForAddressConfig\n): Promise<SignatureForAddress[]> {\n return client.request<[string, SignaturesForAddressConfig?], SignatureForAddress[]>(\n 'getSignaturesForAddress',\n config ? [address, config] : [address]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function isBlockhashValid(\n client: SurfmanClient,\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<boolean> {\n return client.request<[string, any?], boolean>(\n 'isBlockhashValid',\n config ? [blockhash, config] : [blockhash]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFeeForMessage(\n client: SurfmanClient,\n message: string,\n config?: { commitment?: string }\n): Promise<number | null> {\n return client.request<[string, any?], number | null>(\n 'getFeeForMessage',\n config ? [message, config] : [message]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface PrioritizationFee {\n slot: number;\n prioritizationFee: number;\n}\n\nexport async function getRecentPrioritizationFees(\n client: SurfmanClient,\n addresses?: string[]\n): Promise<PrioritizationFee[]> {\n return client.request<[string[]?], PrioritizationFee[]>(\n 'getRecentPrioritizationFees',\n addresses ? [addresses] : []\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getLatestBlockhash } from './getLatestBlockhash';\nimport { getBlock } from './getBlock';\nimport { getBlockTime } from './getBlockTime';\nimport { getFirstAvailableBlock } from './getFirstAvailableBlock';\nimport { minimumLedgerSlot } from './minimumLedgerSlot';\nimport { getTransaction } from './getTransaction';\nimport { getSignatureStatuses } from './getSignatureStatuses';\nimport { sendTransaction } from './sendTransaction';\nimport { simulateTransaction } from './simulateTransaction';\nimport { getClusterNodes } from './getClusterNodes';\nimport { getRecentPerformanceSamples } from './getRecentPerformanceSamples';\nimport { requestAirdrop } from './requestAirdrop';\nimport { getBlocks } from './getBlocks';\nimport { getBlocksWithLimit } from './getBlocksWithLimit';\nimport {\n getSignaturesForAddress,\n type SignatureForAddress,\n type SignaturesForAddressConfig,\n} from './getSignaturesForAddress';\nimport { isBlockhashValid } from './isBlockhashValid';\nimport { getFeeForMessage } from './getFeeForMessage';\nimport {\n getRecentPrioritizationFees,\n type PrioritizationFee,\n} from './getRecentPrioritizationFees';\nimport type {\n BlockhashResult,\n Block,\n BlockConfig,\n TransactionResult,\n TransactionConfig,\n SignatureStatus,\n SendTransactionConfig,\n SimulateTransactionConfig,\n SimulateTransactionResult,\n ClusterNode,\n PerformanceSample,\n} from '../../types';\n\nexport class NetworkModule {\n constructor(private client: SurfmanClient) {}\n\n async getLatestBlockhash(config?: {\n commitment?: string;\n minContextSlot?: number;\n }): Promise<BlockhashResult> {\n return getLatestBlockhash(this.client, config);\n }\n\n async getBlock(\n slot: number,\n config?: BlockConfig\n ): Promise<Block | null> {\n return getBlock(this.client, slot, config);\n }\n\n async getBlockTime(slot: number): Promise<number | null> {\n return getBlockTime(this.client, slot);\n }\n\n async getFirstAvailableBlock(): Promise<number> {\n return getFirstAvailableBlock(this.client);\n }\n\n async minimumLedgerSlot(): Promise<number> {\n return minimumLedgerSlot(this.client);\n }\n\n async getTransaction(\n signature: string,\n config?: TransactionConfig\n ): Promise<TransactionResult | null> {\n return getTransaction(this.client, signature, config);\n }\n\n async getSignatureStatuses(\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n ): Promise<(SignatureStatus | null)[]> {\n return getSignatureStatuses(this.client, signatures, config);\n }\n\n async sendTransaction(\n transaction: string,\n config?: SendTransactionConfig\n ): Promise<string> {\n return sendTransaction(this.client, transaction, config);\n }\n\n async simulateTransaction(\n transaction: string,\n config?: SimulateTransactionConfig\n ): Promise<SimulateTransactionResult> {\n return simulateTransaction(this.client, transaction, config);\n }\n\n async getClusterNodes(): Promise<ClusterNode[]> {\n return getClusterNodes(this.client);\n }\n\n async getRecentPerformanceSamples(\n limit?: number\n ): Promise<PerformanceSample[]> {\n return getRecentPerformanceSamples(this.client, limit);\n }\n\n async requestAirdrop(\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n ): Promise<string> {\n return requestAirdrop(this.client, pubkey, lamports, config);\n }\n\n async getBlocks(\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocks(this.client, startSlot, endSlot, config);\n }\n\n async getBlocksWithLimit(\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocksWithLimit(this.client, startSlot, limit, config);\n }\n\n async getSignaturesForAddress(\n address: string,\n config?: SignaturesForAddressConfig\n ): Promise<SignatureForAddress[]> {\n return getSignaturesForAddress(this.client, address, config);\n }\n\n async isBlockhashValid(\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n ): Promise<boolean> {\n return isBlockhashValid(this.client, blockhash, config);\n }\n\n async getFeeForMessage(\n message: string,\n config?: { commitment?: string }\n ): Promise<number | null> {\n return getFeeForMessage(this.client, message, config);\n }\n\n async getRecentPrioritizationFees(\n addresses?: string[]\n ): Promise<PrioritizationFee[]> {\n return getRecentPrioritizationFees(this.client, addresses);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getAccountInfo(\n client: SurfmanClient,\n pubkey: string,\n config?: AccountInfoConfig\n): Promise<AccountInfo | null> {\n return client.request<[string, AccountInfoConfig?], AccountInfo | null>(\n 'getAccountInfo',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getMultipleAccounts(\n client: SurfmanClient,\n pubkeys: string[],\n config?: AccountInfoConfig\n): Promise<(AccountInfo | null)[]> {\n return client.request<[string[], AccountInfoConfig?], (AccountInfo | null)[]>(\n 'getMultipleAccounts',\n config ? [pubkeys, config] : [pubkeys]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockCommitment } from '../../types';\n\nexport async function getBlockCommitment(\n client: SurfmanClient,\n slot: number\n): Promise<BlockCommitment> {\n return client.request<[number], BlockCommitment>('getBlockCommitment', [\n slot,\n ]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenAccountBalance(\n client: SurfmanClient,\n pubkey: string,\n config?: { commitment?: string }\n): Promise<TokenAmount | null> {\n return client.request<[string, any?], TokenAmount | null>(\n 'getTokenAccountBalance',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenSupply(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAmount> {\n return client.request<[string, any?], TokenAmount>(\n 'getTokenSupply',\n config ? [mint, config] : [mint]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getAccountInfo } from './getAccountInfo';\nimport { getMultipleAccounts } from './getMultipleAccounts';\nimport { getBlockCommitment } from './getBlockCommitment';\nimport { getTokenAccountBalance } from './getTokenAccountBalance';\nimport { getTokenSupply } from './getTokenSupply';\nimport type {\n AccountInfo,\n AccountInfoConfig,\n BlockCommitment,\n TokenAmount,\n} from '../../types';\n\nexport class AccountsModule {\n constructor(private client: SurfmanClient) {}\n\n async getAccountInfo(\n pubkey: string,\n config?: AccountInfoConfig\n ): Promise<AccountInfo | null> {\n return getAccountInfo(this.client, pubkey, config);\n }\n\n async getMultipleAccounts(\n pubkeys: string[],\n config?: AccountInfoConfig\n ): Promise<(AccountInfo | null)[]> {\n return getMultipleAccounts(this.client, pubkeys, config);\n }\n\n async getBlockCommitment(slot: number): Promise<BlockCommitment> {\n return getBlockCommitment(this.client, slot);\n }\n\n async getTokenAccountBalance(\n pubkey: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount | null> {\n return getTokenAccountBalance(this.client, pubkey, config);\n }\n\n async getTokenSupply(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount> {\n return getTokenSupply(this.client, mint, config);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, ProgramAccountsConfig } from '../../types';\n\nexport async function getProgramAccounts(\n client: SurfmanClient,\n programId: string,\n config?: ProgramAccountsConfig\n): Promise<KeyedAccount[]> {\n const result = await client.request<\n [string, ProgramAccountsConfig?],\n KeyedAccount[] | { context: any; value: KeyedAccount[] }\n >('getProgramAccounts', config ? [programId, config] : [programId]);\n\n if (result && typeof result === 'object' && 'value' in result) {\n return result.value;\n }\n return result as KeyedAccount[];\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountBalance } from '../../types';\n\nexport interface LargestAccountsConfig {\n commitment?: string;\n filter?: 'circulating' | 'nonCirculating';\n}\n\nexport async function getLargestAccounts(\n client: SurfmanClient,\n config?: LargestAccountsConfig\n): Promise<AccountBalance[]> {\n return client.request<[LargestAccountsConfig?], AccountBalance[]>(\n 'getLargestAccounts',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Supply, SupplyConfig } from '../../types';\n\nexport async function getSupply(\n client: SurfmanClient,\n config?: SupplyConfig\n): Promise<Supply> {\n return client.request<[SupplyConfig?], Supply>(\n 'getSupply',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountBalance } from '../../types';\n\nexport async function getTokenLargestAccounts(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAccountBalance[]> {\n return client.request<[string, any?], TokenAccountBalance[]>(\n 'getTokenLargestAccounts',\n config ? [mint, config] : [mint]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByOwner(\n client: SurfmanClient,\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByOwner',\n config ? [owner, filter, config] : [owner, filter]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByDelegate(\n client: SurfmanClient,\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByDelegate',\n config ? [delegate, filter, config] : [delegate, filter]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getProgramAccounts } from './getProgramAccounts';\nimport { getLargestAccounts, type LargestAccountsConfig } from './getLargestAccounts';\nimport { getSupply } from './getSupply';\nimport { getTokenLargestAccounts } from './getTokenLargestAccounts';\nimport { getTokenAccountsByOwner } from './getTokenAccountsByOwner';\nimport { getTokenAccountsByDelegate } from './getTokenAccountsByDelegate';\nimport type {\n KeyedAccount,\n ProgramAccountsConfig,\n AccountBalance,\n Supply,\n SupplyConfig,\n TokenAccountBalance,\n TokenAccountsFilter,\n AccountInfoConfig,\n} from '../../types';\n\nexport class ScanModule {\n constructor(private client: SurfmanClient) {}\n\n async getProgramAccounts(\n programId: string,\n config?: ProgramAccountsConfig\n ): Promise<KeyedAccount[]> {\n return getProgramAccounts(this.client, programId, config);\n }\n\n async getLargestAccounts(\n config?: LargestAccountsConfig\n ): Promise<AccountBalance[]> {\n return getLargestAccounts(this.client, config);\n }\n\n async getSupply(config?: SupplyConfig): Promise<Supply> {\n return getSupply(this.client, config);\n }\n\n async getTokenLargestAccounts(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAccountBalance[]> {\n return getTokenLargestAccounts(this.client, mint, config);\n }\n\n async getTokenAccountsByOwner(\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByOwner(this.client, owner, filter, config);\n }\n\n async getTokenAccountsByDelegate(\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByDelegate(this.client, delegate, filter, config);\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/client/SurfmanClient.ts","../src/modules/cheatcodes/timeTravel.ts","../src/modules/cheatcodes/setAccount.ts","../src/modules/cheatcodes/setProgramAuthority.ts","../src/modules/cheatcodes/pauseClock.ts","../src/modules/cheatcodes/resumeClock.ts","../src/modules/cheatcodes/getLocalSignatures.ts","../src/modules/cheatcodes/setTokenAccount.ts","../src/modules/cheatcodes/resetAccount.ts","../src/modules/cheatcodes/resetNetwork.ts","../src/modules/cheatcodes/cloneProgramAccount.ts","../src/modules/cheatcodes/profileTransaction.ts","../src/modules/cheatcodes/getProfileResultsByTag.ts","../src/modules/cheatcodes/setSupply.ts","../src/modules/cheatcodes/getTransactionProfile.ts","../src/modules/cheatcodes/registerIdl.ts","../src/modules/cheatcodes/getIdl.ts","../src/modules/cheatcodes/exportSnapshot.ts","../src/modules/cheatcodes/streamAccount.ts","../src/modules/cheatcodes/getStreamedAccounts.ts","../src/modules/cheatcodes/getSurfnetInfo.ts","../src/modules/cheatcodes/writeProgram.ts","../src/modules/cheatcodes/registerScenario.ts","../src/modules/cheatcodes/index.ts","../src/modules/network/getLatestBlockhash.ts","../src/modules/network/getBlock.ts","../src/modules/network/getBlockTime.ts","../src/modules/network/getFirstAvailableBlock.ts","../src/modules/network/minimumLedgerSlot.ts","../src/modules/network/getTransaction.ts","../src/modules/network/getSignatureStatuses.ts","../src/modules/network/sendTransaction.ts","../src/modules/network/simulateTransaction.ts","../src/modules/network/getClusterNodes.ts","../src/modules/network/getRecentPerformanceSamples.ts","../src/modules/network/requestAirdrop.ts","../src/modules/network/getBlocks.ts","../src/modules/network/getBlocksWithLimit.ts","../src/modules/network/getSignaturesForAddress.ts","../src/modules/network/isBlockhashValid.ts","../src/modules/network/getFeeForMessage.ts","../src/modules/network/getRecentPrioritizationFees.ts","../src/modules/network/getInflationReward.ts","../src/modules/network/getMaxRetransmitSlot.ts","../src/modules/network/getMaxShredInsertSlot.ts","../src/modules/network/getStakeMinimumDelegation.ts","../src/modules/network/index.ts","../src/modules/accounts/getAccountInfo.ts","../src/modules/accounts/getMultipleAccounts.ts","../src/modules/accounts/getBlockCommitment.ts","../src/modules/accounts/getTokenAccountBalance.ts","../src/modules/accounts/getTokenSupply.ts","../src/modules/accounts/index.ts","../src/modules/scan/getProgramAccounts.ts","../src/modules/scan/getLargestAccounts.ts","../src/modules/scan/getSupply.ts","../src/modules/scan/getTokenLargestAccounts.ts","../src/modules/scan/getTokenAccountsByOwner.ts","../src/modules/scan/getTokenAccountsByDelegate.ts","../src/modules/scan/index.ts"],"sourcesContent":["import { SurfmanClient } from './client/SurfmanClient';\nimport { CheatcodesModule } from './modules/cheatcodes';\nimport { NetworkModule } from './modules/network';\nimport { AccountsModule } from './modules/accounts';\nimport { ScanModule } from './modules/scan';\nimport type { RpcClientConfig } from './types';\n\nexport class Surfman {\n public cheatcodes: CheatcodesModule;\n public network: NetworkModule;\n public accounts: AccountsModule;\n public scan: ScanModule;\n\n private client: SurfmanClient;\n\n constructor(config: string | RpcClientConfig) {\n this.client = new SurfmanClient(config);\n this.cheatcodes = new CheatcodesModule(this.client);\n this.network = new NetworkModule(this.client);\n this.accounts = new AccountsModule(this.client);\n this.scan = new ScanModule(this.client);\n }\n\n getClient(): SurfmanClient {\n return this.client;\n }\n}\n\nexport { SurfmanClient } from './client/SurfmanClient';\nexport * from './types';\nexport * from './modules';\n","import type { JsonRpcRequest, JsonRpcResponse, RpcClientConfig } from '../types';\n\nexport class SurfmanClient {\n private url: string;\n private timeout: number;\n private headers: Record<string, string>;\n private requestId = 0;\n\n constructor(config: string | RpcClientConfig) {\n if (typeof config === 'string') {\n this.url = config;\n this.timeout = 30000;\n this.headers = { 'Content-Type': 'application/json' };\n } else {\n this.url = config.url;\n this.timeout = config.timeout ?? 30000;\n this.headers = {\n 'Content-Type': 'application/json',\n ...config.headers,\n };\n }\n }\n\n async request<TParams = any, TResult = any>(\n method: string,\n params: TParams\n ): Promise<TResult> {\n const id = ++this.requestId;\n const body: JsonRpcRequest<TParams> = {\n jsonrpc: '2.0',\n id,\n method,\n params,\n };\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(this.url, {\n method: 'POST',\n headers: this.headers,\n body: JSON.stringify(body),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const result = await response.json() as JsonRpcResponse<TResult>;\n\n if (result.error) {\n throw new Error(\n `RPC error [${result.error.code}]: ${result.error.message}`\n );\n }\n\n return result.result as TResult;\n } catch (error) {\n clearTimeout(timeoutId);\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new Error(`Request timeout after ${this.timeout}ms`);\n }\n throw error;\n }\n throw new Error('Unknown error occurred');\n }\n }\n\n setUrl(url: string): void {\n this.url = url;\n }\n\n getUrl(): string {\n return this.url;\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelConfig, TimeTravelResult } from '../../types';\n\nexport async function timeTravel(\n client: SurfmanClient,\n config: TimeTravelConfig\n): Promise<TimeTravelResult> {\n return client.request<[TimeTravelConfig], TimeTravelResult>(\n 'surfnet_timeTravel',\n [config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SetAccountUpdate } from '../../types';\n\nexport async function setAccount(\n client: SurfmanClient,\n pubkey: string,\n update: SetAccountUpdate\n): Promise<void> {\n return client.request<[string, SetAccountUpdate], void>(\n 'surfnet_setAccount',\n [pubkey, update]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function setProgramAuthority(\n client: SurfmanClient,\n programId: string,\n newAuthority: string | null\n): Promise<void> {\n return client.request<[string, string | null], void>(\n 'surfnet_setProgramAuthority',\n [programId, newAuthority]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function pauseClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_pauseClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function resumeClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_resumeClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcLogsResponse } from '../../types';\n\nexport async function getLocalSignatures(\n client: SurfmanClient,\n limit?: number\n): Promise<RpcLogsResponse[]> {\n return client.request<[number?], RpcLogsResponse[]>(\n 'surfnet_getLocalSignatures',\n [limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountUpdate } from '../../types';\n\nexport async function setTokenAccount(\n client: SurfmanClient,\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n): Promise<void> {\n return client.request<[string, string, TokenAccountUpdate, string?], void>(\n 'surfnet_setTokenAccount',\n [owner, mint, update, tokenProgram]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ResetAccountConfig } from '../../types';\n\nexport async function resetAccount(\n client: SurfmanClient,\n pubkey: string,\n config?: ResetAccountConfig\n): Promise<void> {\n return client.request<[string, ResetAccountConfig?], void>(\n 'surfnet_resetAccount',\n [pubkey, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function resetNetwork(client: SurfmanClient): Promise<void> {\n return client.request<[], void>('surfnet_resetNetwork', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function cloneProgramAccount(\n client: SurfmanClient,\n sourceProgramId: string,\n destinationProgramId: string\n): Promise<void> {\n return client.request<[string, string], void>(\n 'surfnet_cloneProgramAccount',\n [sourceProgramId, destinationProgramId]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcProfileResultConfig, UiKeyedProfileResult } from '../../types';\n\nexport async function profileTransaction(\n client: SurfmanClient,\n transactionData: string,\n tag?: string,\n config?: RpcProfileResultConfig\n): Promise<UiKeyedProfileResult> {\n return client.request<[string, string | undefined, RpcProfileResultConfig | undefined], UiKeyedProfileResult>(\n 'surfnet_profileTransaction',\n [transactionData, tag, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcProfileResultConfig, UiKeyedProfileResult } from '../../types';\n\nexport async function getProfileResultsByTag(\n client: SurfmanClient,\n tag: string,\n config?: RpcProfileResultConfig\n): Promise<UiKeyedProfileResult[] | null> {\n return client.request<[string, RpcProfileResultConfig | undefined], UiKeyedProfileResult[] | null>(\n 'surfnet_getProfileResultsByTag',\n [tag, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SupplyUpdate } from '../../types';\n\nexport async function setSupply(\n client: SurfmanClient,\n update: SupplyUpdate\n): Promise<void> {\n return client.request<[SupplyUpdate], void>(\n 'surfnet_setSupply',\n [update]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcProfileResultConfig, UiKeyedProfileResult, UuidOrSignature } from '../../types';\n\nexport async function getTransactionProfile(\n client: SurfmanClient,\n signatureOrUuid: UuidOrSignature,\n config?: RpcProfileResultConfig\n): Promise<UiKeyedProfileResult | null> {\n return client.request<[UuidOrSignature, RpcProfileResultConfig | undefined], UiKeyedProfileResult | null>(\n 'surfnet_getTransactionProfile',\n [signatureOrUuid, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Idl } from '../../types';\n\nexport async function registerIdl(\n client: SurfmanClient,\n idl: Idl,\n slot?: number\n): Promise<void> {\n return client.request<[Idl, number | undefined], void>(\n 'surfnet_registerIdl',\n [idl, slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Idl } from '../../types';\n\nexport async function getIdl(\n client: SurfmanClient,\n programId: string,\n slot?: number\n): Promise<Idl | null> {\n return client.request<[string, number | undefined], Idl | null>(\n 'surfnet_getActiveIdl',\n [programId, slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ExportSnapshotConfig, AccountSnapshot } from '../../types';\n\nexport async function exportSnapshot(\n client: SurfmanClient,\n config?: ExportSnapshotConfig\n): Promise<Record<string, AccountSnapshot>> {\n return client.request<[ExportSnapshotConfig | undefined], Record<string, AccountSnapshot>>(\n 'surfnet_exportSnapshot',\n [config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { StreamAccountConfig } from '../../types';\n\nexport async function streamAccount(\n client: SurfmanClient,\n pubkey: string,\n config?: StreamAccountConfig\n): Promise<void> {\n return client.request<[string, StreamAccountConfig | undefined], void>(\n 'surfnet_streamAccount',\n [pubkey, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { GetStreamedAccountsResponse } from '../../types';\n\nexport async function getStreamedAccounts(\n client: SurfmanClient\n): Promise<GetStreamedAccountsResponse> {\n return client.request<[], GetStreamedAccountsResponse>(\n 'surfnet_getStreamedAccounts',\n []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { GetSurfnetInfoResponse } from '../../types';\n\nexport async function getSurfnetInfo(\n client: SurfmanClient\n): Promise<GetSurfnetInfoResponse> {\n return client.request<[], GetSurfnetInfoResponse>(\n 'surfnet_getSurfnetInfo',\n []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function writeProgram(\n client: SurfmanClient,\n programId: string,\n data: string,\n offset: number,\n authority?: string\n): Promise<void> {\n return client.request<[string, string, number, string | undefined], void>(\n 'surfnet_writeProgram',\n [programId, data, offset, authority]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Scenario } from '../../types';\n\nexport async function registerScenario(\n client: SurfmanClient,\n scenario: Scenario,\n slot?: number\n): Promise<void> {\n return client.request<[Scenario, number | undefined], void>(\n 'surfnet_registerScenario',\n [scenario, slot]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { timeTravel } from './timeTravel';\nimport { setAccount } from './setAccount';\nimport { setProgramAuthority } from './setProgramAuthority';\nimport { pauseClock } from './pauseClock';\nimport { resumeClock } from './resumeClock';\nimport { getLocalSignatures } from './getLocalSignatures';\nimport { setTokenAccount } from './setTokenAccount';\nimport { resetAccount } from './resetAccount';\nimport { resetNetwork } from './resetNetwork';\nimport { cloneProgramAccount } from './cloneProgramAccount';\nimport { profileTransaction } from './profileTransaction';\nimport { getProfileResultsByTag } from './getProfileResultsByTag';\nimport { setSupply } from './setSupply';\nimport { getTransactionProfile } from './getTransactionProfile';\nimport { registerIdl } from './registerIdl';\nimport { getIdl } from './getIdl';\nimport { exportSnapshot } from './exportSnapshot';\nimport { streamAccount } from './streamAccount';\nimport { getStreamedAccounts } from './getStreamedAccounts';\nimport { getSurfnetInfo } from './getSurfnetInfo';\nimport { writeProgram } from './writeProgram';\nimport { registerScenario } from './registerScenario';\nimport type {\n TimeTravelConfig,\n TimeTravelResult,\n SetAccountUpdate,\n TokenAccountUpdate,\n ResetAccountConfig,\n RpcLogsResponse,\n SupplyUpdate,\n RpcProfileResultConfig,\n UiKeyedProfileResult,\n UuidOrSignature,\n Idl,\n ExportSnapshotConfig,\n AccountSnapshot,\n StreamAccountConfig,\n GetStreamedAccountsResponse,\n GetSurfnetInfoResponse,\n Scenario,\n} from '../../types';\n\nexport class CheatcodesModule {\n constructor(private client: SurfmanClient) {}\n\n async timeTravel(config: TimeTravelConfig): Promise<TimeTravelResult> {\n return timeTravel(this.client, config);\n }\n\n async setAccount(pubkey: string, update: SetAccountUpdate): Promise<void> {\n return setAccount(this.client, pubkey, update);\n }\n\n async setProgramAuthority(\n programId: string,\n newAuthority: string | null\n ): Promise<void> {\n return setProgramAuthority(this.client, programId, newAuthority);\n }\n\n async pauseClock(): Promise<TimeTravelResult> {\n return pauseClock(this.client);\n }\n\n async resumeClock(): Promise<TimeTravelResult> {\n return resumeClock(this.client);\n }\n\n async getLocalSignatures(limit?: number): Promise<RpcLogsResponse[]> {\n return getLocalSignatures(this.client, limit);\n }\n\n async setTokenAccount(\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n ): Promise<void> {\n return setTokenAccount(this.client, owner, mint, update, tokenProgram);\n }\n\n async resetAccount(\n pubkey: string,\n config?: ResetAccountConfig\n ): Promise<void> {\n return resetAccount(this.client, pubkey, config);\n }\n\n async resetNetwork(): Promise<void> {\n return resetNetwork(this.client);\n }\n\n async cloneProgramAccount(\n sourceProgramId: string,\n destinationProgramId: string\n ): Promise<void> {\n return cloneProgramAccount(this.client, sourceProgramId, destinationProgramId);\n }\n\n async profileTransaction(\n transactionData: string,\n tag?: string,\n config?: RpcProfileResultConfig\n ): Promise<UiKeyedProfileResult> {\n return profileTransaction(this.client, transactionData, tag, config);\n }\n\n async getProfileResultsByTag(\n tag: string,\n config?: RpcProfileResultConfig\n ): Promise<UiKeyedProfileResult[] | null> {\n return getProfileResultsByTag(this.client, tag, config);\n }\n\n async setSupply(update: SupplyUpdate): Promise<void> {\n return setSupply(this.client, update);\n }\n\n async getTransactionProfile(\n signatureOrUuid: UuidOrSignature,\n config?: RpcProfileResultConfig\n ): Promise<UiKeyedProfileResult | null> {\n return getTransactionProfile(this.client, signatureOrUuid, config);\n }\n\n async registerIdl(idl: Idl, slot?: number): Promise<void> {\n return registerIdl(this.client, idl, slot);\n }\n\n async getIdl(programId: string, slot?: number): Promise<Idl | null> {\n return getIdl(this.client, programId, slot);\n }\n\n async exportSnapshot(\n config?: ExportSnapshotConfig\n ): Promise<Record<string, AccountSnapshot>> {\n return exportSnapshot(this.client, config);\n }\n\n async streamAccount(\n pubkey: string,\n config?: StreamAccountConfig\n ): Promise<void> {\n return streamAccount(this.client, pubkey, config);\n }\n\n async getStreamedAccounts(): Promise<GetStreamedAccountsResponse> {\n return getStreamedAccounts(this.client);\n }\n\n async getSurfnetInfo(): Promise<GetSurfnetInfoResponse> {\n return getSurfnetInfo(this.client);\n }\n\n async writeProgram(\n programId: string,\n data: string,\n offset: number,\n authority?: string\n ): Promise<void> {\n return writeProgram(this.client, programId, data, offset, authority);\n }\n\n async registerScenario(scenario: Scenario, slot?: number): Promise<void> {\n return registerScenario(this.client, scenario, slot);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockhashResult } from '../../types';\n\nexport async function getLatestBlockhash(\n client: SurfmanClient,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<BlockhashResult> {\n return client.request<[any?], BlockhashResult>(\n 'getLatestBlockhash',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Block, BlockConfig } from '../../types';\n\nexport async function getBlock(\n client: SurfmanClient,\n slot: number,\n config?: BlockConfig\n): Promise<Block | null> {\n return client.request<[number, BlockConfig?], Block | null>(\n 'getBlock',\n config ? [slot, config] : [slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlockTime(\n client: SurfmanClient,\n slot: number\n): Promise<number | null> {\n return client.request<[number], number | null>('getBlockTime', [slot]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFirstAvailableBlock(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getFirstAvailableBlock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function minimumLedgerSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('minimumLedgerSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TransactionResult, TransactionConfig } from '../../types';\n\nexport async function getTransaction(\n client: SurfmanClient,\n signature: string,\n config?: TransactionConfig\n): Promise<TransactionResult | null> {\n return client.request<[string, TransactionConfig?], TransactionResult | null>(\n 'getTransaction',\n config ? [signature, config] : [signature]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SignatureStatus } from '../../types';\n\nexport async function getSignatureStatuses(\n client: SurfmanClient,\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n): Promise<(SignatureStatus | null)[]> {\n return client.request<[string[], any?], (SignatureStatus | null)[]>(\n 'getSignatureStatuses',\n config ? [signatures, config] : [signatures]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SendTransactionConfig } from '../../types';\n\nexport async function sendTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SendTransactionConfig\n): Promise<string> {\n return client.request<[string, SendTransactionConfig?], string>(\n 'sendTransaction',\n config ? [transaction, config] : [transaction]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type {\n SimulateTransactionConfig,\n SimulateTransactionResult,\n} from '../../types';\n\nexport async function simulateTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SimulateTransactionConfig\n): Promise<SimulateTransactionResult> {\n return client.request<\n [string, SimulateTransactionConfig?],\n SimulateTransactionResult\n >('simulateTransaction', config ? [transaction, config] : [transaction]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ClusterNode } from '../../types';\n\nexport async function getClusterNodes(\n client: SurfmanClient\n): Promise<ClusterNode[]> {\n return client.request<[], ClusterNode[]>('getClusterNodes', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { PerformanceSample } from '../../types';\n\nexport async function getRecentPerformanceSamples(\n client: SurfmanClient,\n limit?: number\n): Promise<PerformanceSample[]> {\n return client.request<[number?], PerformanceSample[]>(\n 'getRecentPerformanceSamples',\n limit !== undefined ? [limit] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function requestAirdrop(\n client: SurfmanClient,\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n): Promise<string> {\n return client.request<[string, number, any?], string>(\n 'requestAirdrop',\n config ? [pubkey, lamports, config] : [pubkey, lamports]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocks(\n client: SurfmanClient,\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number?, any?], number[]>(\n 'getBlocks',\n endSlot !== undefined\n ? config\n ? [startSlot, endSlot, config]\n : [startSlot, endSlot]\n : [startSlot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocksWithLimit(\n client: SurfmanClient,\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number, any?], number[]>(\n 'getBlocksWithLimit',\n config ? [startSlot, limit, config] : [startSlot, limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface SignatureForAddress {\n signature: string;\n slot: number;\n err: any | null;\n memo: string | null;\n blockTime?: number | null;\n}\n\nexport interface SignaturesForAddressConfig {\n limit?: number;\n before?: string;\n until?: string;\n commitment?: string;\n}\n\nexport async function getSignaturesForAddress(\n client: SurfmanClient,\n address: string,\n config?: SignaturesForAddressConfig\n): Promise<SignatureForAddress[]> {\n return client.request<[string, SignaturesForAddressConfig?], SignatureForAddress[]>(\n 'getSignaturesForAddress',\n config ? [address, config] : [address]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function isBlockhashValid(\n client: SurfmanClient,\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<boolean> {\n return client.request<[string, any?], boolean>(\n 'isBlockhashValid',\n config ? [blockhash, config] : [blockhash]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFeeForMessage(\n client: SurfmanClient,\n message: string,\n config?: { commitment?: string }\n): Promise<number | null> {\n return client.request<[string, any?], number | null>(\n 'getFeeForMessage',\n config ? [message, config] : [message]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface PrioritizationFee {\n slot: number;\n prioritizationFee: number;\n}\n\nexport async function getRecentPrioritizationFees(\n client: SurfmanClient,\n addresses?: string[]\n): Promise<PrioritizationFee[]> {\n return client.request<[string[]?], PrioritizationFee[]>(\n 'getRecentPrioritizationFees',\n addresses ? [addresses] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { InflationReward } from '../../types';\n\nexport async function getInflationReward(\n client: SurfmanClient,\n addresses: string[],\n config?: { epoch?: number; commitment?: string; minContextSlot?: number }\n): Promise<(InflationReward | null)[]> {\n return client.request<[string[], { epoch?: number; commitment?: string; minContextSlot?: number } | undefined], (InflationReward | null)[]>(\n 'getInflationReward',\n [addresses, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getMaxRetransmitSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getMaxRetransmitSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getMaxShredInsertSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getMaxShredInsertSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getStakeMinimumDelegation(\n client: SurfmanClient,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<number> {\n const response = await client.request<\n [{ commitment?: string; minContextSlot?: number } | undefined],\n { context: { slot: number }; value: number }\n >('getStakeMinimumDelegation', [config]);\n return response.value;\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getLatestBlockhash } from './getLatestBlockhash';\nimport { getBlock } from './getBlock';\nimport { getBlockTime } from './getBlockTime';\nimport { getFirstAvailableBlock } from './getFirstAvailableBlock';\nimport { minimumLedgerSlot } from './minimumLedgerSlot';\nimport { getTransaction } from './getTransaction';\nimport { getSignatureStatuses } from './getSignatureStatuses';\nimport { sendTransaction } from './sendTransaction';\nimport { simulateTransaction } from './simulateTransaction';\nimport { getClusterNodes } from './getClusterNodes';\nimport { getRecentPerformanceSamples } from './getRecentPerformanceSamples';\nimport { requestAirdrop } from './requestAirdrop';\nimport { getBlocks } from './getBlocks';\nimport { getBlocksWithLimit } from './getBlocksWithLimit';\nimport {\n getSignaturesForAddress,\n type SignatureForAddress,\n type SignaturesForAddressConfig,\n} from './getSignaturesForAddress';\nimport { isBlockhashValid } from './isBlockhashValid';\nimport { getFeeForMessage } from './getFeeForMessage';\nimport {\n getRecentPrioritizationFees,\n type PrioritizationFee,\n} from './getRecentPrioritizationFees';\nimport { getInflationReward } from './getInflationReward';\nimport { getMaxRetransmitSlot } from './getMaxRetransmitSlot';\nimport { getMaxShredInsertSlot } from './getMaxShredInsertSlot';\nimport { getStakeMinimumDelegation } from './getStakeMinimumDelegation';\nimport type {\n BlockhashResult,\n Block,\n BlockConfig,\n TransactionResult,\n TransactionConfig,\n SignatureStatus,\n SendTransactionConfig,\n SimulateTransactionConfig,\n SimulateTransactionResult,\n ClusterNode,\n PerformanceSample,\n InflationReward,\n} from '../../types';\n\nexport class NetworkModule {\n constructor(private client: SurfmanClient) {}\n\n async getLatestBlockhash(config?: {\n commitment?: string;\n minContextSlot?: number;\n }): Promise<BlockhashResult> {\n return getLatestBlockhash(this.client, config);\n }\n\n async getBlock(\n slot: number,\n config?: BlockConfig\n ): Promise<Block | null> {\n return getBlock(this.client, slot, config);\n }\n\n async getBlockTime(slot: number): Promise<number | null> {\n return getBlockTime(this.client, slot);\n }\n\n async getFirstAvailableBlock(): Promise<number> {\n return getFirstAvailableBlock(this.client);\n }\n\n async minimumLedgerSlot(): Promise<number> {\n return minimumLedgerSlot(this.client);\n }\n\n async getTransaction(\n signature: string,\n config?: TransactionConfig\n ): Promise<TransactionResult | null> {\n return getTransaction(this.client, signature, config);\n }\n\n async getSignatureStatuses(\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n ): Promise<(SignatureStatus | null)[]> {\n return getSignatureStatuses(this.client, signatures, config);\n }\n\n async sendTransaction(\n transaction: string,\n config?: SendTransactionConfig\n ): Promise<string> {\n return sendTransaction(this.client, transaction, config);\n }\n\n async simulateTransaction(\n transaction: string,\n config?: SimulateTransactionConfig\n ): Promise<SimulateTransactionResult> {\n return simulateTransaction(this.client, transaction, config);\n }\n\n async getClusterNodes(): Promise<ClusterNode[]> {\n return getClusterNodes(this.client);\n }\n\n async getRecentPerformanceSamples(\n limit?: number\n ): Promise<PerformanceSample[]> {\n return getRecentPerformanceSamples(this.client, limit);\n }\n\n async requestAirdrop(\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n ): Promise<string> {\n return requestAirdrop(this.client, pubkey, lamports, config);\n }\n\n async getBlocks(\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocks(this.client, startSlot, endSlot, config);\n }\n\n async getBlocksWithLimit(\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocksWithLimit(this.client, startSlot, limit, config);\n }\n\n async getSignaturesForAddress(\n address: string,\n config?: SignaturesForAddressConfig\n ): Promise<SignatureForAddress[]> {\n return getSignaturesForAddress(this.client, address, config);\n }\n\n async isBlockhashValid(\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n ): Promise<boolean> {\n return isBlockhashValid(this.client, blockhash, config);\n }\n\n async getFeeForMessage(\n message: string,\n config?: { commitment?: string }\n ): Promise<number | null> {\n return getFeeForMessage(this.client, message, config);\n }\n\n async getRecentPrioritizationFees(\n addresses?: string[]\n ): Promise<PrioritizationFee[]> {\n return getRecentPrioritizationFees(this.client, addresses);\n }\n\n async getInflationReward(\n addresses: string[],\n config?: { epoch?: number; commitment?: string; minContextSlot?: number }\n ): Promise<(InflationReward | null)[]> {\n return getInflationReward(this.client, addresses, config);\n }\n\n async getMaxRetransmitSlot(): Promise<number> {\n return getMaxRetransmitSlot(this.client);\n }\n\n async getMaxShredInsertSlot(): Promise<number> {\n return getMaxShredInsertSlot(this.client);\n }\n\n async getStakeMinimumDelegation(\n config?: { commitment?: string; minContextSlot?: number }\n ): Promise<number> {\n return getStakeMinimumDelegation(this.client, config);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getAccountInfo(\n client: SurfmanClient,\n pubkey: string,\n config?: AccountInfoConfig\n): Promise<AccountInfo | null> {\n return client.request<[string, AccountInfoConfig?], AccountInfo | null>(\n 'getAccountInfo',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getMultipleAccounts(\n client: SurfmanClient,\n pubkeys: string[],\n config?: AccountInfoConfig\n): Promise<(AccountInfo | null)[]> {\n return client.request<[string[], AccountInfoConfig?], (AccountInfo | null)[]>(\n 'getMultipleAccounts',\n config ? [pubkeys, config] : [pubkeys]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockCommitment } from '../../types';\n\nexport async function getBlockCommitment(\n client: SurfmanClient,\n slot: number\n): Promise<BlockCommitment> {\n return client.request<[number], BlockCommitment>('getBlockCommitment', [\n slot,\n ]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenAccountBalance(\n client: SurfmanClient,\n pubkey: string,\n config?: { commitment?: string }\n): Promise<TokenAmount | null> {\n return client.request<[string, any?], TokenAmount | null>(\n 'getTokenAccountBalance',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenSupply(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAmount> {\n return client.request<[string, any?], TokenAmount>(\n 'getTokenSupply',\n config ? [mint, config] : [mint]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getAccountInfo } from './getAccountInfo';\nimport { getMultipleAccounts } from './getMultipleAccounts';\nimport { getBlockCommitment } from './getBlockCommitment';\nimport { getTokenAccountBalance } from './getTokenAccountBalance';\nimport { getTokenSupply } from './getTokenSupply';\nimport type {\n AccountInfo,\n AccountInfoConfig,\n BlockCommitment,\n TokenAmount,\n} from '../../types';\n\nexport class AccountsModule {\n constructor(private client: SurfmanClient) {}\n\n async getAccountInfo(\n pubkey: string,\n config?: AccountInfoConfig\n ): Promise<AccountInfo | null> {\n return getAccountInfo(this.client, pubkey, config);\n }\n\n async getMultipleAccounts(\n pubkeys: string[],\n config?: AccountInfoConfig\n ): Promise<(AccountInfo | null)[]> {\n return getMultipleAccounts(this.client, pubkeys, config);\n }\n\n async getBlockCommitment(slot: number): Promise<BlockCommitment> {\n return getBlockCommitment(this.client, slot);\n }\n\n async getTokenAccountBalance(\n pubkey: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount | null> {\n return getTokenAccountBalance(this.client, pubkey, config);\n }\n\n async getTokenSupply(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount> {\n return getTokenSupply(this.client, mint, config);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, ProgramAccountsConfig } from '../../types';\n\nexport async function getProgramAccounts(\n client: SurfmanClient,\n programId: string,\n config?: ProgramAccountsConfig\n): Promise<KeyedAccount[]> {\n const result = await client.request<\n [string, ProgramAccountsConfig?],\n KeyedAccount[] | { context: any; value: KeyedAccount[] }\n >('getProgramAccounts', config ? [programId, config] : [programId]);\n\n if (result && typeof result === 'object' && 'value' in result) {\n return result.value;\n }\n return result as KeyedAccount[];\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountBalance } from '../../types';\n\nexport interface LargestAccountsConfig {\n commitment?: string;\n filter?: 'circulating' | 'nonCirculating';\n}\n\nexport async function getLargestAccounts(\n client: SurfmanClient,\n config?: LargestAccountsConfig\n): Promise<AccountBalance[]> {\n return client.request<[LargestAccountsConfig?], AccountBalance[]>(\n 'getLargestAccounts',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Supply, SupplyConfig } from '../../types';\n\nexport async function getSupply(\n client: SurfmanClient,\n config?: SupplyConfig\n): Promise<Supply> {\n return client.request<[SupplyConfig?], Supply>(\n 'getSupply',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountBalance } from '../../types';\n\nexport async function getTokenLargestAccounts(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAccountBalance[]> {\n return client.request<[string, any?], TokenAccountBalance[]>(\n 'getTokenLargestAccounts',\n config ? [mint, config] : [mint]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByOwner(\n client: SurfmanClient,\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByOwner',\n config ? [owner, filter, config] : [owner, filter]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByDelegate(\n client: SurfmanClient,\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByDelegate',\n config ? [delegate, filter, config] : [delegate, filter]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getProgramAccounts } from './getProgramAccounts';\nimport { getLargestAccounts, type LargestAccountsConfig } from './getLargestAccounts';\nimport { getSupply } from './getSupply';\nimport { getTokenLargestAccounts } from './getTokenLargestAccounts';\nimport { getTokenAccountsByOwner } from './getTokenAccountsByOwner';\nimport { getTokenAccountsByDelegate } from './getTokenAccountsByDelegate';\nimport type {\n KeyedAccount,\n ProgramAccountsConfig,\n AccountBalance,\n Supply,\n SupplyConfig,\n TokenAccountBalance,\n TokenAccountsFilter,\n AccountInfoConfig,\n} from '../../types';\n\nexport class ScanModule {\n constructor(private client: SurfmanClient) {}\n\n async getProgramAccounts(\n programId: string,\n config?: ProgramAccountsConfig\n ): Promise<KeyedAccount[]> {\n return getProgramAccounts(this.client, programId, config);\n }\n\n async getLargestAccounts(\n config?: LargestAccountsConfig\n ): Promise<AccountBalance[]> {\n return getLargestAccounts(this.client, config);\n }\n\n async getSupply(config?: SupplyConfig): Promise<Supply> {\n return getSupply(this.client, config);\n }\n\n async getTokenLargestAccounts(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAccountBalance[]> {\n return getTokenLargestAccounts(this.client, mint, config);\n }\n\n async getTokenAccountsByOwner(\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByOwner(this.client, owner, filter, config);\n }\n\n async getTokenAccountsByDelegate(\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByDelegate(this.client, delegate, filter, config);\n }\n}\n"],"mappings":"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","names":[]}
package/dist/index.mjs CHANGED
@@ -128,6 +128,110 @@ async function resetNetwork(client) {
128
128
  return client.request("surfnet_resetNetwork", []);
129
129
  }
130
130
 
131
+ // src/modules/cheatcodes/cloneProgramAccount.ts
132
+ async function cloneProgramAccount(client, sourceProgramId, destinationProgramId) {
133
+ return client.request(
134
+ "surfnet_cloneProgramAccount",
135
+ [sourceProgramId, destinationProgramId]
136
+ );
137
+ }
138
+
139
+ // src/modules/cheatcodes/profileTransaction.ts
140
+ async function profileTransaction(client, transactionData, tag, config) {
141
+ return client.request(
142
+ "surfnet_profileTransaction",
143
+ [transactionData, tag, config]
144
+ );
145
+ }
146
+
147
+ // src/modules/cheatcodes/getProfileResultsByTag.ts
148
+ async function getProfileResultsByTag(client, tag, config) {
149
+ return client.request(
150
+ "surfnet_getProfileResultsByTag",
151
+ [tag, config]
152
+ );
153
+ }
154
+
155
+ // src/modules/cheatcodes/setSupply.ts
156
+ async function setSupply(client, update) {
157
+ return client.request(
158
+ "surfnet_setSupply",
159
+ [update]
160
+ );
161
+ }
162
+
163
+ // src/modules/cheatcodes/getTransactionProfile.ts
164
+ async function getTransactionProfile(client, signatureOrUuid, config) {
165
+ return client.request(
166
+ "surfnet_getTransactionProfile",
167
+ [signatureOrUuid, config]
168
+ );
169
+ }
170
+
171
+ // src/modules/cheatcodes/registerIdl.ts
172
+ async function registerIdl(client, idl, slot) {
173
+ return client.request(
174
+ "surfnet_registerIdl",
175
+ [idl, slot]
176
+ );
177
+ }
178
+
179
+ // src/modules/cheatcodes/getIdl.ts
180
+ async function getIdl(client, programId, slot) {
181
+ return client.request(
182
+ "surfnet_getActiveIdl",
183
+ [programId, slot]
184
+ );
185
+ }
186
+
187
+ // src/modules/cheatcodes/exportSnapshot.ts
188
+ async function exportSnapshot(client, config) {
189
+ return client.request(
190
+ "surfnet_exportSnapshot",
191
+ [config]
192
+ );
193
+ }
194
+
195
+ // src/modules/cheatcodes/streamAccount.ts
196
+ async function streamAccount(client, pubkey, config) {
197
+ return client.request(
198
+ "surfnet_streamAccount",
199
+ [pubkey, config]
200
+ );
201
+ }
202
+
203
+ // src/modules/cheatcodes/getStreamedAccounts.ts
204
+ async function getStreamedAccounts(client) {
205
+ return client.request(
206
+ "surfnet_getStreamedAccounts",
207
+ []
208
+ );
209
+ }
210
+
211
+ // src/modules/cheatcodes/getSurfnetInfo.ts
212
+ async function getSurfnetInfo(client) {
213
+ return client.request(
214
+ "surfnet_getSurfnetInfo",
215
+ []
216
+ );
217
+ }
218
+
219
+ // src/modules/cheatcodes/writeProgram.ts
220
+ async function writeProgram(client, programId, data, offset, authority) {
221
+ return client.request(
222
+ "surfnet_writeProgram",
223
+ [programId, data, offset, authority]
224
+ );
225
+ }
226
+
227
+ // src/modules/cheatcodes/registerScenario.ts
228
+ async function registerScenario(client, scenario, slot) {
229
+ return client.request(
230
+ "surfnet_registerScenario",
231
+ [scenario, slot]
232
+ );
233
+ }
234
+
131
235
  // src/modules/cheatcodes/index.ts
132
236
  var CheatcodesModule = class {
133
237
  constructor(client) {
@@ -160,6 +264,45 @@ var CheatcodesModule = class {
160
264
  async resetNetwork() {
161
265
  return resetNetwork(this.client);
162
266
  }
267
+ async cloneProgramAccount(sourceProgramId, destinationProgramId) {
268
+ return cloneProgramAccount(this.client, sourceProgramId, destinationProgramId);
269
+ }
270
+ async profileTransaction(transactionData, tag, config) {
271
+ return profileTransaction(this.client, transactionData, tag, config);
272
+ }
273
+ async getProfileResultsByTag(tag, config) {
274
+ return getProfileResultsByTag(this.client, tag, config);
275
+ }
276
+ async setSupply(update) {
277
+ return setSupply(this.client, update);
278
+ }
279
+ async getTransactionProfile(signatureOrUuid, config) {
280
+ return getTransactionProfile(this.client, signatureOrUuid, config);
281
+ }
282
+ async registerIdl(idl, slot) {
283
+ return registerIdl(this.client, idl, slot);
284
+ }
285
+ async getIdl(programId, slot) {
286
+ return getIdl(this.client, programId, slot);
287
+ }
288
+ async exportSnapshot(config) {
289
+ return exportSnapshot(this.client, config);
290
+ }
291
+ async streamAccount(pubkey, config) {
292
+ return streamAccount(this.client, pubkey, config);
293
+ }
294
+ async getStreamedAccounts() {
295
+ return getStreamedAccounts(this.client);
296
+ }
297
+ async getSurfnetInfo() {
298
+ return getSurfnetInfo(this.client);
299
+ }
300
+ async writeProgram(programId, data, offset, authority) {
301
+ return writeProgram(this.client, programId, data, offset, authority);
302
+ }
303
+ async registerScenario(scenario, slot) {
304
+ return registerScenario(this.client, scenario, slot);
305
+ }
163
306
  };
164
307
 
165
308
  // src/modules/network/getLatestBlockhash.ts
@@ -291,6 +434,30 @@ async function getRecentPrioritizationFees(client, addresses) {
291
434
  );
292
435
  }
293
436
 
437
+ // src/modules/network/getInflationReward.ts
438
+ async function getInflationReward(client, addresses, config) {
439
+ return client.request(
440
+ "getInflationReward",
441
+ [addresses, config]
442
+ );
443
+ }
444
+
445
+ // src/modules/network/getMaxRetransmitSlot.ts
446
+ async function getMaxRetransmitSlot(client) {
447
+ return client.request("getMaxRetransmitSlot", []);
448
+ }
449
+
450
+ // src/modules/network/getMaxShredInsertSlot.ts
451
+ async function getMaxShredInsertSlot(client) {
452
+ return client.request("getMaxShredInsertSlot", []);
453
+ }
454
+
455
+ // src/modules/network/getStakeMinimumDelegation.ts
456
+ async function getStakeMinimumDelegation(client, config) {
457
+ const response = await client.request("getStakeMinimumDelegation", [config]);
458
+ return response.value;
459
+ }
460
+
294
461
  // src/modules/network/index.ts
295
462
  var NetworkModule = class {
296
463
  constructor(client) {
@@ -350,6 +517,18 @@ var NetworkModule = class {
350
517
  async getRecentPrioritizationFees(addresses) {
351
518
  return getRecentPrioritizationFees(this.client, addresses);
352
519
  }
520
+ async getInflationReward(addresses, config) {
521
+ return getInflationReward(this.client, addresses, config);
522
+ }
523
+ async getMaxRetransmitSlot() {
524
+ return getMaxRetransmitSlot(this.client);
525
+ }
526
+ async getMaxShredInsertSlot() {
527
+ return getMaxShredInsertSlot(this.client);
528
+ }
529
+ async getStakeMinimumDelegation(config) {
530
+ return getStakeMinimumDelegation(this.client, config);
531
+ }
353
532
  };
354
533
 
355
534
  // src/modules/accounts/getAccountInfo.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client/SurfmanClient.ts","../src/modules/cheatcodes/timeTravel.ts","../src/modules/cheatcodes/setAccount.ts","../src/modules/cheatcodes/setProgramAuthority.ts","../src/modules/cheatcodes/pauseClock.ts","../src/modules/cheatcodes/resumeClock.ts","../src/modules/cheatcodes/getLocalSignatures.ts","../src/modules/cheatcodes/setTokenAccount.ts","../src/modules/cheatcodes/resetAccount.ts","../src/modules/cheatcodes/resetNetwork.ts","../src/modules/cheatcodes/index.ts","../src/modules/network/getLatestBlockhash.ts","../src/modules/network/getBlock.ts","../src/modules/network/getBlockTime.ts","../src/modules/network/getFirstAvailableBlock.ts","../src/modules/network/minimumLedgerSlot.ts","../src/modules/network/getTransaction.ts","../src/modules/network/getSignatureStatuses.ts","../src/modules/network/sendTransaction.ts","../src/modules/network/simulateTransaction.ts","../src/modules/network/getClusterNodes.ts","../src/modules/network/getRecentPerformanceSamples.ts","../src/modules/network/requestAirdrop.ts","../src/modules/network/getBlocks.ts","../src/modules/network/getBlocksWithLimit.ts","../src/modules/network/getSignaturesForAddress.ts","../src/modules/network/isBlockhashValid.ts","../src/modules/network/getFeeForMessage.ts","../src/modules/network/getRecentPrioritizationFees.ts","../src/modules/network/index.ts","../src/modules/accounts/getAccountInfo.ts","../src/modules/accounts/getMultipleAccounts.ts","../src/modules/accounts/getBlockCommitment.ts","../src/modules/accounts/getTokenAccountBalance.ts","../src/modules/accounts/getTokenSupply.ts","../src/modules/accounts/index.ts","../src/modules/scan/getProgramAccounts.ts","../src/modules/scan/getLargestAccounts.ts","../src/modules/scan/getSupply.ts","../src/modules/scan/getTokenLargestAccounts.ts","../src/modules/scan/getTokenAccountsByOwner.ts","../src/modules/scan/getTokenAccountsByDelegate.ts","../src/modules/scan/index.ts","../src/index.ts"],"sourcesContent":["import type { JsonRpcRequest, JsonRpcResponse, RpcClientConfig } from '../types';\n\nexport class SurfmanClient {\n private url: string;\n private timeout: number;\n private headers: Record<string, string>;\n private requestId = 0;\n\n constructor(config: string | RpcClientConfig) {\n if (typeof config === 'string') {\n this.url = config;\n this.timeout = 30000;\n this.headers = { 'Content-Type': 'application/json' };\n } else {\n this.url = config.url;\n this.timeout = config.timeout ?? 30000;\n this.headers = {\n 'Content-Type': 'application/json',\n ...config.headers,\n };\n }\n }\n\n async request<TParams = any, TResult = any>(\n method: string,\n params: TParams\n ): Promise<TResult> {\n const id = ++this.requestId;\n const body: JsonRpcRequest<TParams> = {\n jsonrpc: '2.0',\n id,\n method,\n params,\n };\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(this.url, {\n method: 'POST',\n headers: this.headers,\n body: JSON.stringify(body),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const result = await response.json() as JsonRpcResponse<TResult>;\n\n if (result.error) {\n throw new Error(\n `RPC error [${result.error.code}]: ${result.error.message}`\n );\n }\n\n return result.result as TResult;\n } catch (error) {\n clearTimeout(timeoutId);\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new Error(`Request timeout after ${this.timeout}ms`);\n }\n throw error;\n }\n throw new Error('Unknown error occurred');\n }\n }\n\n setUrl(url: string): void {\n this.url = url;\n }\n\n getUrl(): string {\n return this.url;\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelConfig, TimeTravelResult } from '../../types';\n\nexport async function timeTravel(\n client: SurfmanClient,\n config: TimeTravelConfig\n): Promise<TimeTravelResult> {\n return client.request<[TimeTravelConfig], TimeTravelResult>(\n 'surfnet_timeTravel',\n [config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SetAccountUpdate } from '../../types';\n\nexport async function setAccount(\n client: SurfmanClient,\n pubkey: string,\n update: SetAccountUpdate\n): Promise<void> {\n return client.request<[string, SetAccountUpdate], void>(\n 'surfnet_setAccount',\n [pubkey, update]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function setProgramAuthority(\n client: SurfmanClient,\n programId: string,\n newAuthority: string | null\n): Promise<void> {\n return client.request<[string, string | null], void>(\n 'surfnet_setProgramAuthority',\n [programId, newAuthority]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function pauseClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_pauseClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function resumeClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_resumeClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcLogsResponse } from '../../types';\n\nexport async function getLocalSignatures(\n client: SurfmanClient,\n limit?: number\n): Promise<RpcLogsResponse[]> {\n return client.request<[number?], RpcLogsResponse[]>(\n 'surfnet_getLocalSignatures',\n [limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountUpdate } from '../../types';\n\nexport async function setTokenAccount(\n client: SurfmanClient,\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n): Promise<void> {\n return client.request<[string, string, TokenAccountUpdate, string?], void>(\n 'surfnet_setTokenAccount',\n [owner, mint, update, tokenProgram]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ResetAccountConfig } from '../../types';\n\nexport async function resetAccount(\n client: SurfmanClient,\n pubkey: string,\n config?: ResetAccountConfig\n): Promise<void> {\n return client.request<[string, ResetAccountConfig?], void>(\n 'surfnet_resetAccount',\n [pubkey, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function resetNetwork(client: SurfmanClient): Promise<void> {\n return client.request<[], void>('surfnet_resetNetwork', []);\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { timeTravel } from './timeTravel';\nimport { setAccount } from './setAccount';\nimport { setProgramAuthority } from './setProgramAuthority';\nimport { pauseClock } from './pauseClock';\nimport { resumeClock } from './resumeClock';\nimport { getLocalSignatures } from './getLocalSignatures';\nimport { setTokenAccount } from './setTokenAccount';\nimport { resetAccount } from './resetAccount';\nimport { resetNetwork } from './resetNetwork';\nimport type {\n TimeTravelConfig,\n TimeTravelResult,\n SetAccountUpdate,\n TokenAccountUpdate,\n ResetAccountConfig,\n RpcLogsResponse,\n} from '../../types';\n\nexport class CheatcodesModule {\n constructor(private client: SurfmanClient) {}\n\n async timeTravel(config: TimeTravelConfig): Promise<TimeTravelResult> {\n return timeTravel(this.client, config);\n }\n\n async setAccount(pubkey: string, update: SetAccountUpdate): Promise<void> {\n return setAccount(this.client, pubkey, update);\n }\n\n async setProgramAuthority(\n programId: string,\n newAuthority: string | null\n ): Promise<void> {\n return setProgramAuthority(this.client, programId, newAuthority);\n }\n\n async pauseClock(): Promise<TimeTravelResult> {\n return pauseClock(this.client);\n }\n\n async resumeClock(): Promise<TimeTravelResult> {\n return resumeClock(this.client);\n }\n\n async getLocalSignatures(limit?: number): Promise<RpcLogsResponse[]> {\n return getLocalSignatures(this.client, limit);\n }\n\n async setTokenAccount(\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n ): Promise<void> {\n return setTokenAccount(this.client, owner, mint, update, tokenProgram);\n }\n\n async resetAccount(\n pubkey: string,\n config?: ResetAccountConfig\n ): Promise<void> {\n return resetAccount(this.client, pubkey, config);\n }\n\n async resetNetwork(): Promise<void> {\n return resetNetwork(this.client);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockhashResult } from '../../types';\n\nexport async function getLatestBlockhash(\n client: SurfmanClient,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<BlockhashResult> {\n return client.request<[any?], BlockhashResult>(\n 'getLatestBlockhash',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Block, BlockConfig } from '../../types';\n\nexport async function getBlock(\n client: SurfmanClient,\n slot: number,\n config?: BlockConfig\n): Promise<Block | null> {\n return client.request<[number, BlockConfig?], Block | null>(\n 'getBlock',\n config ? [slot, config] : [slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlockTime(\n client: SurfmanClient,\n slot: number\n): Promise<number | null> {\n return client.request<[number], number | null>('getBlockTime', [slot]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFirstAvailableBlock(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getFirstAvailableBlock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function minimumLedgerSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('minimumLedgerSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TransactionResult, TransactionConfig } from '../../types';\n\nexport async function getTransaction(\n client: SurfmanClient,\n signature: string,\n config?: TransactionConfig\n): Promise<TransactionResult | null> {\n return client.request<[string, TransactionConfig?], TransactionResult | null>(\n 'getTransaction',\n config ? [signature, config] : [signature]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SignatureStatus } from '../../types';\n\nexport async function getSignatureStatuses(\n client: SurfmanClient,\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n): Promise<(SignatureStatus | null)[]> {\n return client.request<[string[], any?], (SignatureStatus | null)[]>(\n 'getSignatureStatuses',\n config ? [signatures, config] : [signatures]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SendTransactionConfig } from '../../types';\n\nexport async function sendTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SendTransactionConfig\n): Promise<string> {\n return client.request<[string, SendTransactionConfig?], string>(\n 'sendTransaction',\n config ? [transaction, config] : [transaction]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type {\n SimulateTransactionConfig,\n SimulateTransactionResult,\n} from '../../types';\n\nexport async function simulateTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SimulateTransactionConfig\n): Promise<SimulateTransactionResult> {\n return client.request<\n [string, SimulateTransactionConfig?],\n SimulateTransactionResult\n >('simulateTransaction', config ? [transaction, config] : [transaction]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ClusterNode } from '../../types';\n\nexport async function getClusterNodes(\n client: SurfmanClient\n): Promise<ClusterNode[]> {\n return client.request<[], ClusterNode[]>('getClusterNodes', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { PerformanceSample } from '../../types';\n\nexport async function getRecentPerformanceSamples(\n client: SurfmanClient,\n limit?: number\n): Promise<PerformanceSample[]> {\n return client.request<[number?], PerformanceSample[]>(\n 'getRecentPerformanceSamples',\n limit !== undefined ? [limit] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function requestAirdrop(\n client: SurfmanClient,\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n): Promise<string> {\n return client.request<[string, number, any?], string>(\n 'requestAirdrop',\n config ? [pubkey, lamports, config] : [pubkey, lamports]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocks(\n client: SurfmanClient,\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number?, any?], number[]>(\n 'getBlocks',\n endSlot !== undefined\n ? config\n ? [startSlot, endSlot, config]\n : [startSlot, endSlot]\n : [startSlot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocksWithLimit(\n client: SurfmanClient,\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number, any?], number[]>(\n 'getBlocksWithLimit',\n config ? [startSlot, limit, config] : [startSlot, limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface SignatureForAddress {\n signature: string;\n slot: number;\n err: any | null;\n memo: string | null;\n blockTime?: number | null;\n}\n\nexport interface SignaturesForAddressConfig {\n limit?: number;\n before?: string;\n until?: string;\n commitment?: string;\n}\n\nexport async function getSignaturesForAddress(\n client: SurfmanClient,\n address: string,\n config?: SignaturesForAddressConfig\n): Promise<SignatureForAddress[]> {\n return client.request<[string, SignaturesForAddressConfig?], SignatureForAddress[]>(\n 'getSignaturesForAddress',\n config ? [address, config] : [address]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function isBlockhashValid(\n client: SurfmanClient,\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<boolean> {\n return client.request<[string, any?], boolean>(\n 'isBlockhashValid',\n config ? [blockhash, config] : [blockhash]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFeeForMessage(\n client: SurfmanClient,\n message: string,\n config?: { commitment?: string }\n): Promise<number | null> {\n return client.request<[string, any?], number | null>(\n 'getFeeForMessage',\n config ? [message, config] : [message]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface PrioritizationFee {\n slot: number;\n prioritizationFee: number;\n}\n\nexport async function getRecentPrioritizationFees(\n client: SurfmanClient,\n addresses?: string[]\n): Promise<PrioritizationFee[]> {\n return client.request<[string[]?], PrioritizationFee[]>(\n 'getRecentPrioritizationFees',\n addresses ? [addresses] : []\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getLatestBlockhash } from './getLatestBlockhash';\nimport { getBlock } from './getBlock';\nimport { getBlockTime } from './getBlockTime';\nimport { getFirstAvailableBlock } from './getFirstAvailableBlock';\nimport { minimumLedgerSlot } from './minimumLedgerSlot';\nimport { getTransaction } from './getTransaction';\nimport { getSignatureStatuses } from './getSignatureStatuses';\nimport { sendTransaction } from './sendTransaction';\nimport { simulateTransaction } from './simulateTransaction';\nimport { getClusterNodes } from './getClusterNodes';\nimport { getRecentPerformanceSamples } from './getRecentPerformanceSamples';\nimport { requestAirdrop } from './requestAirdrop';\nimport { getBlocks } from './getBlocks';\nimport { getBlocksWithLimit } from './getBlocksWithLimit';\nimport {\n getSignaturesForAddress,\n type SignatureForAddress,\n type SignaturesForAddressConfig,\n} from './getSignaturesForAddress';\nimport { isBlockhashValid } from './isBlockhashValid';\nimport { getFeeForMessage } from './getFeeForMessage';\nimport {\n getRecentPrioritizationFees,\n type PrioritizationFee,\n} from './getRecentPrioritizationFees';\nimport type {\n BlockhashResult,\n Block,\n BlockConfig,\n TransactionResult,\n TransactionConfig,\n SignatureStatus,\n SendTransactionConfig,\n SimulateTransactionConfig,\n SimulateTransactionResult,\n ClusterNode,\n PerformanceSample,\n} from '../../types';\n\nexport class NetworkModule {\n constructor(private client: SurfmanClient) {}\n\n async getLatestBlockhash(config?: {\n commitment?: string;\n minContextSlot?: number;\n }): Promise<BlockhashResult> {\n return getLatestBlockhash(this.client, config);\n }\n\n async getBlock(\n slot: number,\n config?: BlockConfig\n ): Promise<Block | null> {\n return getBlock(this.client, slot, config);\n }\n\n async getBlockTime(slot: number): Promise<number | null> {\n return getBlockTime(this.client, slot);\n }\n\n async getFirstAvailableBlock(): Promise<number> {\n return getFirstAvailableBlock(this.client);\n }\n\n async minimumLedgerSlot(): Promise<number> {\n return minimumLedgerSlot(this.client);\n }\n\n async getTransaction(\n signature: string,\n config?: TransactionConfig\n ): Promise<TransactionResult | null> {\n return getTransaction(this.client, signature, config);\n }\n\n async getSignatureStatuses(\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n ): Promise<(SignatureStatus | null)[]> {\n return getSignatureStatuses(this.client, signatures, config);\n }\n\n async sendTransaction(\n transaction: string,\n config?: SendTransactionConfig\n ): Promise<string> {\n return sendTransaction(this.client, transaction, config);\n }\n\n async simulateTransaction(\n transaction: string,\n config?: SimulateTransactionConfig\n ): Promise<SimulateTransactionResult> {\n return simulateTransaction(this.client, transaction, config);\n }\n\n async getClusterNodes(): Promise<ClusterNode[]> {\n return getClusterNodes(this.client);\n }\n\n async getRecentPerformanceSamples(\n limit?: number\n ): Promise<PerformanceSample[]> {\n return getRecentPerformanceSamples(this.client, limit);\n }\n\n async requestAirdrop(\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n ): Promise<string> {\n return requestAirdrop(this.client, pubkey, lamports, config);\n }\n\n async getBlocks(\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocks(this.client, startSlot, endSlot, config);\n }\n\n async getBlocksWithLimit(\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocksWithLimit(this.client, startSlot, limit, config);\n }\n\n async getSignaturesForAddress(\n address: string,\n config?: SignaturesForAddressConfig\n ): Promise<SignatureForAddress[]> {\n return getSignaturesForAddress(this.client, address, config);\n }\n\n async isBlockhashValid(\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n ): Promise<boolean> {\n return isBlockhashValid(this.client, blockhash, config);\n }\n\n async getFeeForMessage(\n message: string,\n config?: { commitment?: string }\n ): Promise<number | null> {\n return getFeeForMessage(this.client, message, config);\n }\n\n async getRecentPrioritizationFees(\n addresses?: string[]\n ): Promise<PrioritizationFee[]> {\n return getRecentPrioritizationFees(this.client, addresses);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getAccountInfo(\n client: SurfmanClient,\n pubkey: string,\n config?: AccountInfoConfig\n): Promise<AccountInfo | null> {\n return client.request<[string, AccountInfoConfig?], AccountInfo | null>(\n 'getAccountInfo',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getMultipleAccounts(\n client: SurfmanClient,\n pubkeys: string[],\n config?: AccountInfoConfig\n): Promise<(AccountInfo | null)[]> {\n return client.request<[string[], AccountInfoConfig?], (AccountInfo | null)[]>(\n 'getMultipleAccounts',\n config ? [pubkeys, config] : [pubkeys]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockCommitment } from '../../types';\n\nexport async function getBlockCommitment(\n client: SurfmanClient,\n slot: number\n): Promise<BlockCommitment> {\n return client.request<[number], BlockCommitment>('getBlockCommitment', [\n slot,\n ]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenAccountBalance(\n client: SurfmanClient,\n pubkey: string,\n config?: { commitment?: string }\n): Promise<TokenAmount | null> {\n return client.request<[string, any?], TokenAmount | null>(\n 'getTokenAccountBalance',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenSupply(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAmount> {\n return client.request<[string, any?], TokenAmount>(\n 'getTokenSupply',\n config ? [mint, config] : [mint]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getAccountInfo } from './getAccountInfo';\nimport { getMultipleAccounts } from './getMultipleAccounts';\nimport { getBlockCommitment } from './getBlockCommitment';\nimport { getTokenAccountBalance } from './getTokenAccountBalance';\nimport { getTokenSupply } from './getTokenSupply';\nimport type {\n AccountInfo,\n AccountInfoConfig,\n BlockCommitment,\n TokenAmount,\n} from '../../types';\n\nexport class AccountsModule {\n constructor(private client: SurfmanClient) {}\n\n async getAccountInfo(\n pubkey: string,\n config?: AccountInfoConfig\n ): Promise<AccountInfo | null> {\n return getAccountInfo(this.client, pubkey, config);\n }\n\n async getMultipleAccounts(\n pubkeys: string[],\n config?: AccountInfoConfig\n ): Promise<(AccountInfo | null)[]> {\n return getMultipleAccounts(this.client, pubkeys, config);\n }\n\n async getBlockCommitment(slot: number): Promise<BlockCommitment> {\n return getBlockCommitment(this.client, slot);\n }\n\n async getTokenAccountBalance(\n pubkey: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount | null> {\n return getTokenAccountBalance(this.client, pubkey, config);\n }\n\n async getTokenSupply(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount> {\n return getTokenSupply(this.client, mint, config);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, ProgramAccountsConfig } from '../../types';\n\nexport async function getProgramAccounts(\n client: SurfmanClient,\n programId: string,\n config?: ProgramAccountsConfig\n): Promise<KeyedAccount[]> {\n const result = await client.request<\n [string, ProgramAccountsConfig?],\n KeyedAccount[] | { context: any; value: KeyedAccount[] }\n >('getProgramAccounts', config ? [programId, config] : [programId]);\n\n if (result && typeof result === 'object' && 'value' in result) {\n return result.value;\n }\n return result as KeyedAccount[];\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountBalance } from '../../types';\n\nexport interface LargestAccountsConfig {\n commitment?: string;\n filter?: 'circulating' | 'nonCirculating';\n}\n\nexport async function getLargestAccounts(\n client: SurfmanClient,\n config?: LargestAccountsConfig\n): Promise<AccountBalance[]> {\n return client.request<[LargestAccountsConfig?], AccountBalance[]>(\n 'getLargestAccounts',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Supply, SupplyConfig } from '../../types';\n\nexport async function getSupply(\n client: SurfmanClient,\n config?: SupplyConfig\n): Promise<Supply> {\n return client.request<[SupplyConfig?], Supply>(\n 'getSupply',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountBalance } from '../../types';\n\nexport async function getTokenLargestAccounts(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAccountBalance[]> {\n return client.request<[string, any?], TokenAccountBalance[]>(\n 'getTokenLargestAccounts',\n config ? [mint, config] : [mint]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByOwner(\n client: SurfmanClient,\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByOwner',\n config ? [owner, filter, config] : [owner, filter]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByDelegate(\n client: SurfmanClient,\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByDelegate',\n config ? [delegate, filter, config] : [delegate, filter]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getProgramAccounts } from './getProgramAccounts';\nimport { getLargestAccounts, type LargestAccountsConfig } from './getLargestAccounts';\nimport { getSupply } from './getSupply';\nimport { getTokenLargestAccounts } from './getTokenLargestAccounts';\nimport { getTokenAccountsByOwner } from './getTokenAccountsByOwner';\nimport { getTokenAccountsByDelegate } from './getTokenAccountsByDelegate';\nimport type {\n KeyedAccount,\n ProgramAccountsConfig,\n AccountBalance,\n Supply,\n SupplyConfig,\n TokenAccountBalance,\n TokenAccountsFilter,\n AccountInfoConfig,\n} from '../../types';\n\nexport class ScanModule {\n constructor(private client: SurfmanClient) {}\n\n async getProgramAccounts(\n programId: string,\n config?: ProgramAccountsConfig\n ): Promise<KeyedAccount[]> {\n return getProgramAccounts(this.client, programId, config);\n }\n\n async getLargestAccounts(\n config?: LargestAccountsConfig\n ): Promise<AccountBalance[]> {\n return getLargestAccounts(this.client, config);\n }\n\n async getSupply(config?: SupplyConfig): Promise<Supply> {\n return getSupply(this.client, config);\n }\n\n async getTokenLargestAccounts(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAccountBalance[]> {\n return getTokenLargestAccounts(this.client, mint, config);\n }\n\n async getTokenAccountsByOwner(\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByOwner(this.client, owner, filter, config);\n }\n\n async getTokenAccountsByDelegate(\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByDelegate(this.client, delegate, filter, config);\n }\n}\n","import { SurfmanClient } from './client/SurfmanClient';\nimport { CheatcodesModule } from './modules/cheatcodes';\nimport { NetworkModule } from './modules/network';\nimport { AccountsModule } from './modules/accounts';\nimport { ScanModule } from './modules/scan';\nimport type { RpcClientConfig } from './types';\n\nexport class Surfman {\n public cheatcodes: CheatcodesModule;\n public network: NetworkModule;\n public accounts: AccountsModule;\n public scan: ScanModule;\n\n private client: SurfmanClient;\n\n constructor(config: string | RpcClientConfig) {\n this.client = new SurfmanClient(config);\n this.cheatcodes = new CheatcodesModule(this.client);\n this.network = new NetworkModule(this.client);\n this.accounts = new AccountsModule(this.client);\n this.scan = new ScanModule(this.client);\n }\n\n getClient(): SurfmanClient {\n return this.client;\n }\n}\n\nexport { SurfmanClient } from './client/SurfmanClient';\nexport * from './types';\nexport * from './modules';\n"],"mappings":";AAEO,IAAM,gBAAN,MAAoB;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EAEpB,YAAY,QAAkC;AAC5C,QAAI,OAAO,WAAW,UAAU;AAC9B,WAAK,MAAM;AACX,WAAK,UAAU;AACf,WAAK,UAAU,EAAE,gBAAgB,mBAAmB;AAAA,IACtD,OAAO;AACL,WAAK,MAAM,OAAO;AAClB,WAAK,UAAU,OAAO,WAAW;AACjC,WAAK,UAAU;AAAA,QACb,gBAAgB;AAAA,QAChB,GAAG,OAAO;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,QACJ,QACA,QACkB;AAClB,UAAM,KAAK,EAAE,KAAK;AAClB,UAAM,OAAgC;AAAA,MACpC,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,YAAY,WAAW,MAAM,WAAW,MAAM,GAAG,KAAK,OAAO;AAEnE,QAAI;AACF,YAAM,WAAW,MAAM,MAAM,KAAK,KAAK;AAAA,QACrC,QAAQ;AAAA,QACR,SAAS,KAAK;AAAA,QACd,MAAM,KAAK,UAAU,IAAI;AAAA,QACzB,QAAQ,WAAW;AAAA,MACrB,CAAC;AAED,mBAAa,SAAS;AAEtB,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,EAAE;AAAA,MAC1D;AAEA,YAAM,SAAS,MAAM,SAAS,KAAK;AAEnC,UAAI,OAAO,OAAO;AAChB,cAAM,IAAI;AAAA,UACR,cAAc,OAAO,MAAM,IAAI,MAAM,OAAO,MAAM,OAAO;AAAA,QAC3D;AAAA,MACF;AAEA,aAAO,OAAO;AAAA,IAChB,SAAS,OAAO;AACd,mBAAa,SAAS;AACtB,UAAI,iBAAiB,OAAO;AAC1B,YAAI,MAAM,SAAS,cAAc;AAC/B,gBAAM,IAAI,MAAM,yBAAyB,KAAK,OAAO,IAAI;AAAA,QAC3D;AACA,cAAM;AAAA,MACR;AACA,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,OAAO,KAAmB;AACxB,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,SAAiB;AACf,WAAO,KAAK;AAAA,EACd;AACF;;;AC7EA,eAAsB,WACpB,QACA,QAC2B;AAC3B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AACF;;;ACRA,eAAsB,WACpB,QACA,QACA,QACe;AACf,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,CAAC,QAAQ,MAAM;AAAA,EACjB;AACF;;;ACVA,eAAsB,oBACpB,QACA,WACA,cACe;AACf,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,CAAC,WAAW,YAAY;AAAA,EAC1B;AACF;;;ACRA,eAAsB,WACpB,QAC2B;AAC3B,SAAO,OAAO,QAA8B,sBAAsB,CAAC,CAAC;AACtE;;;ACJA,eAAsB,YACpB,QAC2B;AAC3B,SAAO,OAAO,QAA8B,uBAAuB,CAAC,CAAC;AACvE;;;ACJA,eAAsB,mBACpB,QACA,OAC4B;AAC5B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AACF;;;ACRA,eAAsB,gBACpB,QACA,OACA,MACA,QACA,cACe;AACf,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,CAAC,OAAO,MAAM,QAAQ,YAAY;AAAA,EACpC;AACF;;;ACXA,eAAsB,aACpB,QACA,QACA,QACe;AACf,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,CAAC,QAAQ,MAAM;AAAA,EACjB;AACF;;;ACVA,eAAsB,aAAa,QAAsC;AACvE,SAAO,OAAO,QAAkB,wBAAwB,CAAC,CAAC;AAC5D;;;ACeO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAAoB,QAAuB;AAAvB;AAAA,EAAwB;AAAA,EAE5C,MAAM,WAAW,QAAqD;AACpE,WAAO,WAAW,KAAK,QAAQ,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,WAAW,QAAgB,QAAyC;AACxE,WAAO,WAAW,KAAK,QAAQ,QAAQ,MAAM;AAAA,EAC/C;AAAA,EAEA,MAAM,oBACJ,WACA,cACe;AACf,WAAO,oBAAoB,KAAK,QAAQ,WAAW,YAAY;AAAA,EACjE;AAAA,EAEA,MAAM,aAAwC;AAC5C,WAAO,WAAW,KAAK,MAAM;AAAA,EAC/B;AAAA,EAEA,MAAM,cAAyC;AAC7C,WAAO,YAAY,KAAK,MAAM;AAAA,EAChC;AAAA,EAEA,MAAM,mBAAmB,OAA4C;AACnE,WAAO,mBAAmB,KAAK,QAAQ,KAAK;AAAA,EAC9C;AAAA,EAEA,MAAM,gBACJ,OACA,MACA,QACA,cACe;AACf,WAAO,gBAAgB,KAAK,QAAQ,OAAO,MAAM,QAAQ,YAAY;AAAA,EACvE;AAAA,EAEA,MAAM,aACJ,QACA,QACe;AACf,WAAO,aAAa,KAAK,QAAQ,QAAQ,MAAM;AAAA,EACjD;AAAA,EAEA,MAAM,eAA8B;AAClC,WAAO,aAAa,KAAK,MAAM;AAAA,EACjC;AACF;;;ACjEA,eAAsB,mBACpB,QACA,QAC0B;AAC1B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,EACvB;AACF;;;ACRA,eAAsB,SACpB,QACA,MACA,QACuB;AACvB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI;AAAA,EACjC;AACF;;;ACVA,eAAsB,aACpB,QACA,MACwB;AACxB,SAAO,OAAO,QAAiC,gBAAgB,CAAC,IAAI,CAAC;AACvE;;;ACLA,eAAsB,uBACpB,QACiB;AACjB,SAAO,OAAO,QAAoB,0BAA0B,CAAC,CAAC;AAChE;;;ACJA,eAAsB,kBACpB,QACiB;AACjB,SAAO,OAAO,QAAoB,qBAAqB,CAAC,CAAC;AAC3D;;;ACHA,eAAsB,eACpB,QACA,WACA,QACmC;AACnC,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,WAAW,MAAM,IAAI,CAAC,SAAS;AAAA,EAC3C;AACF;;;ACTA,eAAsB,qBACpB,QACA,YACA,QACqC;AACrC,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,YAAY,MAAM,IAAI,CAAC,UAAU;AAAA,EAC7C;AACF;;;ACTA,eAAsB,gBACpB,QACA,aACA,QACiB;AACjB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,aAAa,MAAM,IAAI,CAAC,WAAW;AAAA,EAC/C;AACF;;;ACNA,eAAsB,oBACpB,QACA,aACA,QACoC;AACpC,SAAO,OAAO,QAGZ,uBAAuB,SAAS,CAAC,aAAa,MAAM,IAAI,CAAC,WAAW,CAAC;AACzE;;;ACZA,eAAsB,gBACpB,QACwB;AACxB,SAAO,OAAO,QAA2B,mBAAmB,CAAC,CAAC;AAChE;;;ACJA,eAAsB,4BACpB,QACA,OAC8B;AAC9B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,UAAU,SAAY,CAAC,KAAK,IAAI,CAAC;AAAA,EACnC;AACF;;;ACTA,eAAsB,eACpB,QACA,QACA,UACA,QACiB;AACjB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,QAAQ,UAAU,MAAM,IAAI,CAAC,QAAQ,QAAQ;AAAA,EACzD;AACF;;;ACVA,eAAsB,UACpB,QACA,WACA,SACA,QACmB;AACnB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,YAAY,SACR,SACE,CAAC,WAAW,SAAS,MAAM,IAC3B,CAAC,WAAW,OAAO,IACrB,CAAC,SAAS;AAAA,EAChB;AACF;;;ACdA,eAAsB,mBACpB,QACA,WACA,OACA,QACmB;AACnB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,WAAW,OAAO,MAAM,IAAI,CAAC,WAAW,KAAK;AAAA,EACzD;AACF;;;ACKA,eAAsB,wBACpB,QACA,SACA,QACgC;AAChC,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO;AAAA,EACvC;AACF;;;ACxBA,eAAsB,iBACpB,QACA,WACA,QACkB;AAClB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,WAAW,MAAM,IAAI,CAAC,SAAS;AAAA,EAC3C;AACF;;;ACTA,eAAsB,iBACpB,QACA,SACA,QACwB;AACxB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO;AAAA,EACvC;AACF;;;ACJA,eAAsB,4BACpB,QACA,WAC8B;AAC9B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,YAAY,CAAC,SAAS,IAAI,CAAC;AAAA,EAC7B;AACF;;;ACyBO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAoB,QAAuB;AAAvB;AAAA,EAAwB;AAAA,EAE5C,MAAM,mBAAmB,QAGI;AAC3B,WAAO,mBAAmB,KAAK,QAAQ,MAAM;AAAA,EAC/C;AAAA,EAEA,MAAM,SACJ,MACA,QACuB;AACvB,WAAO,SAAS,KAAK,QAAQ,MAAM,MAAM;AAAA,EAC3C;AAAA,EAEA,MAAM,aAAa,MAAsC;AACvD,WAAO,aAAa,KAAK,QAAQ,IAAI;AAAA,EACvC;AAAA,EAEA,MAAM,yBAA0C;AAC9C,WAAO,uBAAuB,KAAK,MAAM;AAAA,EAC3C;AAAA,EAEA,MAAM,oBAAqC;AACzC,WAAO,kBAAkB,KAAK,MAAM;AAAA,EACtC;AAAA,EAEA,MAAM,eACJ,WACA,QACmC;AACnC,WAAO,eAAe,KAAK,QAAQ,WAAW,MAAM;AAAA,EACtD;AAAA,EAEA,MAAM,qBACJ,YACA,QACqC;AACrC,WAAO,qBAAqB,KAAK,QAAQ,YAAY,MAAM;AAAA,EAC7D;AAAA,EAEA,MAAM,gBACJ,aACA,QACiB;AACjB,WAAO,gBAAgB,KAAK,QAAQ,aAAa,MAAM;AAAA,EACzD;AAAA,EAEA,MAAM,oBACJ,aACA,QACoC;AACpC,WAAO,oBAAoB,KAAK,QAAQ,aAAa,MAAM;AAAA,EAC7D;AAAA,EAEA,MAAM,kBAA0C;AAC9C,WAAO,gBAAgB,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,MAAM,4BACJ,OAC8B;AAC9B,WAAO,4BAA4B,KAAK,QAAQ,KAAK;AAAA,EACvD;AAAA,EAEA,MAAM,eACJ,QACA,UACA,QACiB;AACjB,WAAO,eAAe,KAAK,QAAQ,QAAQ,UAAU,MAAM;AAAA,EAC7D;AAAA,EAEA,MAAM,UACJ,WACA,SACA,QACmB;AACnB,WAAO,UAAU,KAAK,QAAQ,WAAW,SAAS,MAAM;AAAA,EAC1D;AAAA,EAEA,MAAM,mBACJ,WACA,OACA,QACmB;AACnB,WAAO,mBAAmB,KAAK,QAAQ,WAAW,OAAO,MAAM;AAAA,EACjE;AAAA,EAEA,MAAM,wBACJ,SACA,QACgC;AAChC,WAAO,wBAAwB,KAAK,QAAQ,SAAS,MAAM;AAAA,EAC7D;AAAA,EAEA,MAAM,iBACJ,WACA,QACkB;AAClB,WAAO,iBAAiB,KAAK,QAAQ,WAAW,MAAM;AAAA,EACxD;AAAA,EAEA,MAAM,iBACJ,SACA,QACwB;AACxB,WAAO,iBAAiB,KAAK,QAAQ,SAAS,MAAM;AAAA,EACtD;AAAA,EAEA,MAAM,4BACJ,WAC8B;AAC9B,WAAO,4BAA4B,KAAK,QAAQ,SAAS;AAAA,EAC3D;AACF;;;AC1JA,eAAsB,eACpB,QACA,QACA,QAC6B;AAC7B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,QAAQ,MAAM,IAAI,CAAC,MAAM;AAAA,EACrC;AACF;;;ACTA,eAAsB,oBACpB,QACA,SACA,QACiC;AACjC,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO;AAAA,EACvC;AACF;;;ACTA,eAAsB,mBACpB,QACA,MAC0B;AAC1B,SAAO,OAAO,QAAmC,sBAAsB;AAAA,IACrE;AAAA,EACF,CAAC;AACH;;;ACPA,eAAsB,uBACpB,QACA,QACA,QAC6B;AAC7B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,QAAQ,MAAM,IAAI,CAAC,MAAM;AAAA,EACrC;AACF;;;ACTA,eAAsB,eACpB,QACA,MACA,QACsB;AACtB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI;AAAA,EACjC;AACF;;;ACCO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAAoB,QAAuB;AAAvB;AAAA,EAAwB;AAAA,EAE5C,MAAM,eACJ,QACA,QAC6B;AAC7B,WAAO,eAAe,KAAK,QAAQ,QAAQ,MAAM;AAAA,EACnD;AAAA,EAEA,MAAM,oBACJ,SACA,QACiC;AACjC,WAAO,oBAAoB,KAAK,QAAQ,SAAS,MAAM;AAAA,EACzD;AAAA,EAEA,MAAM,mBAAmB,MAAwC;AAC/D,WAAO,mBAAmB,KAAK,QAAQ,IAAI;AAAA,EAC7C;AAAA,EAEA,MAAM,uBACJ,QACA,QAC6B;AAC7B,WAAO,uBAAuB,KAAK,QAAQ,QAAQ,MAAM;AAAA,EAC3D;AAAA,EAEA,MAAM,eACJ,MACA,QACsB;AACtB,WAAO,eAAe,KAAK,QAAQ,MAAM,MAAM;AAAA,EACjD;AACF;;;AC5CA,eAAsB,mBACpB,QACA,WACA,QACyB;AACzB,QAAM,SAAS,MAAM,OAAO,QAG1B,sBAAsB,SAAS,CAAC,WAAW,MAAM,IAAI,CAAC,SAAS,CAAC;AAElE,MAAI,UAAU,OAAO,WAAW,YAAY,WAAW,QAAQ;AAC7D,WAAO,OAAO;AAAA,EAChB;AACA,SAAO;AACT;;;ACTA,eAAsB,mBACpB,QACA,QAC2B;AAC3B,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,EACvB;AACF;;;ACbA,eAAsB,UACpB,QACA,QACiB;AACjB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,EACvB;AACF;;;ACRA,eAAsB,wBACpB,QACA,MACA,QACgC;AAChC,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,MAAM,MAAM,IAAI,CAAC,IAAI;AAAA,EACjC;AACF;;;ACTA,eAAsB,wBACpB,QACA,OACA,QACA,QACyB;AACzB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,OAAO,QAAQ,MAAM,IAAI,CAAC,OAAO,MAAM;AAAA,EACnD;AACF;;;ACVA,eAAsB,2BACpB,QACA,UACA,QACA,QACyB;AACzB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA,SAAS,CAAC,UAAU,QAAQ,MAAM,IAAI,CAAC,UAAU,MAAM;AAAA,EACzD;AACF;;;ACKO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAAoB,QAAuB;AAAvB;AAAA,EAAwB;AAAA,EAE5C,MAAM,mBACJ,WACA,QACyB;AACzB,WAAO,mBAAmB,KAAK,QAAQ,WAAW,MAAM;AAAA,EAC1D;AAAA,EAEA,MAAM,mBACJ,QAC2B;AAC3B,WAAO,mBAAmB,KAAK,QAAQ,MAAM;AAAA,EAC/C;AAAA,EAEA,MAAM,UAAU,QAAwC;AACtD,WAAO,UAAU,KAAK,QAAQ,MAAM;AAAA,EACtC;AAAA,EAEA,MAAM,wBACJ,MACA,QACgC;AAChC,WAAO,wBAAwB,KAAK,QAAQ,MAAM,MAAM;AAAA,EAC1D;AAAA,EAEA,MAAM,wBACJ,OACA,QACA,QACyB;AACzB,WAAO,wBAAwB,KAAK,QAAQ,OAAO,QAAQ,MAAM;AAAA,EACnE;AAAA,EAEA,MAAM,2BACJ,UACA,QACA,QACyB;AACzB,WAAO,2BAA2B,KAAK,QAAQ,UAAU,QAAQ,MAAM;AAAA,EACzE;AACF;;;ACrDO,IAAM,UAAN,MAAc;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEC;AAAA,EAER,YAAY,QAAkC;AAC5C,SAAK,SAAS,IAAI,cAAc,MAAM;AACtC,SAAK,aAAa,IAAI,iBAAiB,KAAK,MAAM;AAClD,SAAK,UAAU,IAAI,cAAc,KAAK,MAAM;AAC5C,SAAK,WAAW,IAAI,eAAe,KAAK,MAAM;AAC9C,SAAK,OAAO,IAAI,WAAW,KAAK,MAAM;AAAA,EACxC;AAAA,EAEA,YAA2B;AACzB,WAAO,KAAK;AAAA,EACd;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/client/SurfmanClient.ts","../src/modules/cheatcodes/timeTravel.ts","../src/modules/cheatcodes/setAccount.ts","../src/modules/cheatcodes/setProgramAuthority.ts","../src/modules/cheatcodes/pauseClock.ts","../src/modules/cheatcodes/resumeClock.ts","../src/modules/cheatcodes/getLocalSignatures.ts","../src/modules/cheatcodes/setTokenAccount.ts","../src/modules/cheatcodes/resetAccount.ts","../src/modules/cheatcodes/resetNetwork.ts","../src/modules/cheatcodes/cloneProgramAccount.ts","../src/modules/cheatcodes/profileTransaction.ts","../src/modules/cheatcodes/getProfileResultsByTag.ts","../src/modules/cheatcodes/setSupply.ts","../src/modules/cheatcodes/getTransactionProfile.ts","../src/modules/cheatcodes/registerIdl.ts","../src/modules/cheatcodes/getIdl.ts","../src/modules/cheatcodes/exportSnapshot.ts","../src/modules/cheatcodes/streamAccount.ts","../src/modules/cheatcodes/getStreamedAccounts.ts","../src/modules/cheatcodes/getSurfnetInfo.ts","../src/modules/cheatcodes/writeProgram.ts","../src/modules/cheatcodes/registerScenario.ts","../src/modules/cheatcodes/index.ts","../src/modules/network/getLatestBlockhash.ts","../src/modules/network/getBlock.ts","../src/modules/network/getBlockTime.ts","../src/modules/network/getFirstAvailableBlock.ts","../src/modules/network/minimumLedgerSlot.ts","../src/modules/network/getTransaction.ts","../src/modules/network/getSignatureStatuses.ts","../src/modules/network/sendTransaction.ts","../src/modules/network/simulateTransaction.ts","../src/modules/network/getClusterNodes.ts","../src/modules/network/getRecentPerformanceSamples.ts","../src/modules/network/requestAirdrop.ts","../src/modules/network/getBlocks.ts","../src/modules/network/getBlocksWithLimit.ts","../src/modules/network/getSignaturesForAddress.ts","../src/modules/network/isBlockhashValid.ts","../src/modules/network/getFeeForMessage.ts","../src/modules/network/getRecentPrioritizationFees.ts","../src/modules/network/getInflationReward.ts","../src/modules/network/getMaxRetransmitSlot.ts","../src/modules/network/getMaxShredInsertSlot.ts","../src/modules/network/getStakeMinimumDelegation.ts","../src/modules/network/index.ts","../src/modules/accounts/getAccountInfo.ts","../src/modules/accounts/getMultipleAccounts.ts","../src/modules/accounts/getBlockCommitment.ts","../src/modules/accounts/getTokenAccountBalance.ts","../src/modules/accounts/getTokenSupply.ts","../src/modules/accounts/index.ts","../src/modules/scan/getProgramAccounts.ts","../src/modules/scan/getLargestAccounts.ts","../src/modules/scan/getSupply.ts","../src/modules/scan/getTokenLargestAccounts.ts","../src/modules/scan/getTokenAccountsByOwner.ts","../src/modules/scan/getTokenAccountsByDelegate.ts","../src/modules/scan/index.ts","../src/index.ts"],"sourcesContent":["import type { JsonRpcRequest, JsonRpcResponse, RpcClientConfig } from '../types';\n\nexport class SurfmanClient {\n private url: string;\n private timeout: number;\n private headers: Record<string, string>;\n private requestId = 0;\n\n constructor(config: string | RpcClientConfig) {\n if (typeof config === 'string') {\n this.url = config;\n this.timeout = 30000;\n this.headers = { 'Content-Type': 'application/json' };\n } else {\n this.url = config.url;\n this.timeout = config.timeout ?? 30000;\n this.headers = {\n 'Content-Type': 'application/json',\n ...config.headers,\n };\n }\n }\n\n async request<TParams = any, TResult = any>(\n method: string,\n params: TParams\n ): Promise<TResult> {\n const id = ++this.requestId;\n const body: JsonRpcRequest<TParams> = {\n jsonrpc: '2.0',\n id,\n method,\n params,\n };\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), this.timeout);\n\n try {\n const response = await fetch(this.url, {\n method: 'POST',\n headers: this.headers,\n body: JSON.stringify(body),\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const result = await response.json() as JsonRpcResponse<TResult>;\n\n if (result.error) {\n throw new Error(\n `RPC error [${result.error.code}]: ${result.error.message}`\n );\n }\n\n return result.result as TResult;\n } catch (error) {\n clearTimeout(timeoutId);\n if (error instanceof Error) {\n if (error.name === 'AbortError') {\n throw new Error(`Request timeout after ${this.timeout}ms`);\n }\n throw error;\n }\n throw new Error('Unknown error occurred');\n }\n }\n\n setUrl(url: string): void {\n this.url = url;\n }\n\n getUrl(): string {\n return this.url;\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelConfig, TimeTravelResult } from '../../types';\n\nexport async function timeTravel(\n client: SurfmanClient,\n config: TimeTravelConfig\n): Promise<TimeTravelResult> {\n return client.request<[TimeTravelConfig], TimeTravelResult>(\n 'surfnet_timeTravel',\n [config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SetAccountUpdate } from '../../types';\n\nexport async function setAccount(\n client: SurfmanClient,\n pubkey: string,\n update: SetAccountUpdate\n): Promise<void> {\n return client.request<[string, SetAccountUpdate], void>(\n 'surfnet_setAccount',\n [pubkey, update]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function setProgramAuthority(\n client: SurfmanClient,\n programId: string,\n newAuthority: string | null\n): Promise<void> {\n return client.request<[string, string | null], void>(\n 'surfnet_setProgramAuthority',\n [programId, newAuthority]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function pauseClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_pauseClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TimeTravelResult } from '../../types';\n\nexport async function resumeClock(\n client: SurfmanClient\n): Promise<TimeTravelResult> {\n return client.request<[], TimeTravelResult>('surfnet_resumeClock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcLogsResponse } from '../../types';\n\nexport async function getLocalSignatures(\n client: SurfmanClient,\n limit?: number\n): Promise<RpcLogsResponse[]> {\n return client.request<[number?], RpcLogsResponse[]>(\n 'surfnet_getLocalSignatures',\n [limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountUpdate } from '../../types';\n\nexport async function setTokenAccount(\n client: SurfmanClient,\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n): Promise<void> {\n return client.request<[string, string, TokenAccountUpdate, string?], void>(\n 'surfnet_setTokenAccount',\n [owner, mint, update, tokenProgram]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ResetAccountConfig } from '../../types';\n\nexport async function resetAccount(\n client: SurfmanClient,\n pubkey: string,\n config?: ResetAccountConfig\n): Promise<void> {\n return client.request<[string, ResetAccountConfig?], void>(\n 'surfnet_resetAccount',\n [pubkey, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function resetNetwork(client: SurfmanClient): Promise<void> {\n return client.request<[], void>('surfnet_resetNetwork', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function cloneProgramAccount(\n client: SurfmanClient,\n sourceProgramId: string,\n destinationProgramId: string\n): Promise<void> {\n return client.request<[string, string], void>(\n 'surfnet_cloneProgramAccount',\n [sourceProgramId, destinationProgramId]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcProfileResultConfig, UiKeyedProfileResult } from '../../types';\n\nexport async function profileTransaction(\n client: SurfmanClient,\n transactionData: string,\n tag?: string,\n config?: RpcProfileResultConfig\n): Promise<UiKeyedProfileResult> {\n return client.request<[string, string | undefined, RpcProfileResultConfig | undefined], UiKeyedProfileResult>(\n 'surfnet_profileTransaction',\n [transactionData, tag, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcProfileResultConfig, UiKeyedProfileResult } from '../../types';\n\nexport async function getProfileResultsByTag(\n client: SurfmanClient,\n tag: string,\n config?: RpcProfileResultConfig\n): Promise<UiKeyedProfileResult[] | null> {\n return client.request<[string, RpcProfileResultConfig | undefined], UiKeyedProfileResult[] | null>(\n 'surfnet_getProfileResultsByTag',\n [tag, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SupplyUpdate } from '../../types';\n\nexport async function setSupply(\n client: SurfmanClient,\n update: SupplyUpdate\n): Promise<void> {\n return client.request<[SupplyUpdate], void>(\n 'surfnet_setSupply',\n [update]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { RpcProfileResultConfig, UiKeyedProfileResult, UuidOrSignature } from '../../types';\n\nexport async function getTransactionProfile(\n client: SurfmanClient,\n signatureOrUuid: UuidOrSignature,\n config?: RpcProfileResultConfig\n): Promise<UiKeyedProfileResult | null> {\n return client.request<[UuidOrSignature, RpcProfileResultConfig | undefined], UiKeyedProfileResult | null>(\n 'surfnet_getTransactionProfile',\n [signatureOrUuid, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Idl } from '../../types';\n\nexport async function registerIdl(\n client: SurfmanClient,\n idl: Idl,\n slot?: number\n): Promise<void> {\n return client.request<[Idl, number | undefined], void>(\n 'surfnet_registerIdl',\n [idl, slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Idl } from '../../types';\n\nexport async function getIdl(\n client: SurfmanClient,\n programId: string,\n slot?: number\n): Promise<Idl | null> {\n return client.request<[string, number | undefined], Idl | null>(\n 'surfnet_getActiveIdl',\n [programId, slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ExportSnapshotConfig, AccountSnapshot } from '../../types';\n\nexport async function exportSnapshot(\n client: SurfmanClient,\n config?: ExportSnapshotConfig\n): Promise<Record<string, AccountSnapshot>> {\n return client.request<[ExportSnapshotConfig | undefined], Record<string, AccountSnapshot>>(\n 'surfnet_exportSnapshot',\n [config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { StreamAccountConfig } from '../../types';\n\nexport async function streamAccount(\n client: SurfmanClient,\n pubkey: string,\n config?: StreamAccountConfig\n): Promise<void> {\n return client.request<[string, StreamAccountConfig | undefined], void>(\n 'surfnet_streamAccount',\n [pubkey, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { GetStreamedAccountsResponse } from '../../types';\n\nexport async function getStreamedAccounts(\n client: SurfmanClient\n): Promise<GetStreamedAccountsResponse> {\n return client.request<[], GetStreamedAccountsResponse>(\n 'surfnet_getStreamedAccounts',\n []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { GetSurfnetInfoResponse } from '../../types';\n\nexport async function getSurfnetInfo(\n client: SurfmanClient\n): Promise<GetSurfnetInfoResponse> {\n return client.request<[], GetSurfnetInfoResponse>(\n 'surfnet_getSurfnetInfo',\n []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function writeProgram(\n client: SurfmanClient,\n programId: string,\n data: string,\n offset: number,\n authority?: string\n): Promise<void> {\n return client.request<[string, string, number, string | undefined], void>(\n 'surfnet_writeProgram',\n [programId, data, offset, authority]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Scenario } from '../../types';\n\nexport async function registerScenario(\n client: SurfmanClient,\n scenario: Scenario,\n slot?: number\n): Promise<void> {\n return client.request<[Scenario, number | undefined], void>(\n 'surfnet_registerScenario',\n [scenario, slot]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { timeTravel } from './timeTravel';\nimport { setAccount } from './setAccount';\nimport { setProgramAuthority } from './setProgramAuthority';\nimport { pauseClock } from './pauseClock';\nimport { resumeClock } from './resumeClock';\nimport { getLocalSignatures } from './getLocalSignatures';\nimport { setTokenAccount } from './setTokenAccount';\nimport { resetAccount } from './resetAccount';\nimport { resetNetwork } from './resetNetwork';\nimport { cloneProgramAccount } from './cloneProgramAccount';\nimport { profileTransaction } from './profileTransaction';\nimport { getProfileResultsByTag } from './getProfileResultsByTag';\nimport { setSupply } from './setSupply';\nimport { getTransactionProfile } from './getTransactionProfile';\nimport { registerIdl } from './registerIdl';\nimport { getIdl } from './getIdl';\nimport { exportSnapshot } from './exportSnapshot';\nimport { streamAccount } from './streamAccount';\nimport { getStreamedAccounts } from './getStreamedAccounts';\nimport { getSurfnetInfo } from './getSurfnetInfo';\nimport { writeProgram } from './writeProgram';\nimport { registerScenario } from './registerScenario';\nimport type {\n TimeTravelConfig,\n TimeTravelResult,\n SetAccountUpdate,\n TokenAccountUpdate,\n ResetAccountConfig,\n RpcLogsResponse,\n SupplyUpdate,\n RpcProfileResultConfig,\n UiKeyedProfileResult,\n UuidOrSignature,\n Idl,\n ExportSnapshotConfig,\n AccountSnapshot,\n StreamAccountConfig,\n GetStreamedAccountsResponse,\n GetSurfnetInfoResponse,\n Scenario,\n} from '../../types';\n\nexport class CheatcodesModule {\n constructor(private client: SurfmanClient) {}\n\n async timeTravel(config: TimeTravelConfig): Promise<TimeTravelResult> {\n return timeTravel(this.client, config);\n }\n\n async setAccount(pubkey: string, update: SetAccountUpdate): Promise<void> {\n return setAccount(this.client, pubkey, update);\n }\n\n async setProgramAuthority(\n programId: string,\n newAuthority: string | null\n ): Promise<void> {\n return setProgramAuthority(this.client, programId, newAuthority);\n }\n\n async pauseClock(): Promise<TimeTravelResult> {\n return pauseClock(this.client);\n }\n\n async resumeClock(): Promise<TimeTravelResult> {\n return resumeClock(this.client);\n }\n\n async getLocalSignatures(limit?: number): Promise<RpcLogsResponse[]> {\n return getLocalSignatures(this.client, limit);\n }\n\n async setTokenAccount(\n owner: string,\n mint: string,\n update: TokenAccountUpdate,\n tokenProgram?: string\n ): Promise<void> {\n return setTokenAccount(this.client, owner, mint, update, tokenProgram);\n }\n\n async resetAccount(\n pubkey: string,\n config?: ResetAccountConfig\n ): Promise<void> {\n return resetAccount(this.client, pubkey, config);\n }\n\n async resetNetwork(): Promise<void> {\n return resetNetwork(this.client);\n }\n\n async cloneProgramAccount(\n sourceProgramId: string,\n destinationProgramId: string\n ): Promise<void> {\n return cloneProgramAccount(this.client, sourceProgramId, destinationProgramId);\n }\n\n async profileTransaction(\n transactionData: string,\n tag?: string,\n config?: RpcProfileResultConfig\n ): Promise<UiKeyedProfileResult> {\n return profileTransaction(this.client, transactionData, tag, config);\n }\n\n async getProfileResultsByTag(\n tag: string,\n config?: RpcProfileResultConfig\n ): Promise<UiKeyedProfileResult[] | null> {\n return getProfileResultsByTag(this.client, tag, config);\n }\n\n async setSupply(update: SupplyUpdate): Promise<void> {\n return setSupply(this.client, update);\n }\n\n async getTransactionProfile(\n signatureOrUuid: UuidOrSignature,\n config?: RpcProfileResultConfig\n ): Promise<UiKeyedProfileResult | null> {\n return getTransactionProfile(this.client, signatureOrUuid, config);\n }\n\n async registerIdl(idl: Idl, slot?: number): Promise<void> {\n return registerIdl(this.client, idl, slot);\n }\n\n async getIdl(programId: string, slot?: number): Promise<Idl | null> {\n return getIdl(this.client, programId, slot);\n }\n\n async exportSnapshot(\n config?: ExportSnapshotConfig\n ): Promise<Record<string, AccountSnapshot>> {\n return exportSnapshot(this.client, config);\n }\n\n async streamAccount(\n pubkey: string,\n config?: StreamAccountConfig\n ): Promise<void> {\n return streamAccount(this.client, pubkey, config);\n }\n\n async getStreamedAccounts(): Promise<GetStreamedAccountsResponse> {\n return getStreamedAccounts(this.client);\n }\n\n async getSurfnetInfo(): Promise<GetSurfnetInfoResponse> {\n return getSurfnetInfo(this.client);\n }\n\n async writeProgram(\n programId: string,\n data: string,\n offset: number,\n authority?: string\n ): Promise<void> {\n return writeProgram(this.client, programId, data, offset, authority);\n }\n\n async registerScenario(scenario: Scenario, slot?: number): Promise<void> {\n return registerScenario(this.client, scenario, slot);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockhashResult } from '../../types';\n\nexport async function getLatestBlockhash(\n client: SurfmanClient,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<BlockhashResult> {\n return client.request<[any?], BlockhashResult>(\n 'getLatestBlockhash',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Block, BlockConfig } from '../../types';\n\nexport async function getBlock(\n client: SurfmanClient,\n slot: number,\n config?: BlockConfig\n): Promise<Block | null> {\n return client.request<[number, BlockConfig?], Block | null>(\n 'getBlock',\n config ? [slot, config] : [slot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlockTime(\n client: SurfmanClient,\n slot: number\n): Promise<number | null> {\n return client.request<[number], number | null>('getBlockTime', [slot]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFirstAvailableBlock(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getFirstAvailableBlock', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function minimumLedgerSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('minimumLedgerSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TransactionResult, TransactionConfig } from '../../types';\n\nexport async function getTransaction(\n client: SurfmanClient,\n signature: string,\n config?: TransactionConfig\n): Promise<TransactionResult | null> {\n return client.request<[string, TransactionConfig?], TransactionResult | null>(\n 'getTransaction',\n config ? [signature, config] : [signature]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SignatureStatus } from '../../types';\n\nexport async function getSignatureStatuses(\n client: SurfmanClient,\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n): Promise<(SignatureStatus | null)[]> {\n return client.request<[string[], any?], (SignatureStatus | null)[]>(\n 'getSignatureStatuses',\n config ? [signatures, config] : [signatures]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { SendTransactionConfig } from '../../types';\n\nexport async function sendTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SendTransactionConfig\n): Promise<string> {\n return client.request<[string, SendTransactionConfig?], string>(\n 'sendTransaction',\n config ? [transaction, config] : [transaction]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type {\n SimulateTransactionConfig,\n SimulateTransactionResult,\n} from '../../types';\n\nexport async function simulateTransaction(\n client: SurfmanClient,\n transaction: string,\n config?: SimulateTransactionConfig\n): Promise<SimulateTransactionResult> {\n return client.request<\n [string, SimulateTransactionConfig?],\n SimulateTransactionResult\n >('simulateTransaction', config ? [transaction, config] : [transaction]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { ClusterNode } from '../../types';\n\nexport async function getClusterNodes(\n client: SurfmanClient\n): Promise<ClusterNode[]> {\n return client.request<[], ClusterNode[]>('getClusterNodes', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { PerformanceSample } from '../../types';\n\nexport async function getRecentPerformanceSamples(\n client: SurfmanClient,\n limit?: number\n): Promise<PerformanceSample[]> {\n return client.request<[number?], PerformanceSample[]>(\n 'getRecentPerformanceSamples',\n limit !== undefined ? [limit] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function requestAirdrop(\n client: SurfmanClient,\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n): Promise<string> {\n return client.request<[string, number, any?], string>(\n 'requestAirdrop',\n config ? [pubkey, lamports, config] : [pubkey, lamports]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocks(\n client: SurfmanClient,\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number?, any?], number[]>(\n 'getBlocks',\n endSlot !== undefined\n ? config\n ? [startSlot, endSlot, config]\n : [startSlot, endSlot]\n : [startSlot]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getBlocksWithLimit(\n client: SurfmanClient,\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n): Promise<number[]> {\n return client.request<[number, number, any?], number[]>(\n 'getBlocksWithLimit',\n config ? [startSlot, limit, config] : [startSlot, limit]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface SignatureForAddress {\n signature: string;\n slot: number;\n err: any | null;\n memo: string | null;\n blockTime?: number | null;\n}\n\nexport interface SignaturesForAddressConfig {\n limit?: number;\n before?: string;\n until?: string;\n commitment?: string;\n}\n\nexport async function getSignaturesForAddress(\n client: SurfmanClient,\n address: string,\n config?: SignaturesForAddressConfig\n): Promise<SignatureForAddress[]> {\n return client.request<[string, SignaturesForAddressConfig?], SignatureForAddress[]>(\n 'getSignaturesForAddress',\n config ? [address, config] : [address]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function isBlockhashValid(\n client: SurfmanClient,\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<boolean> {\n return client.request<[string, any?], boolean>(\n 'isBlockhashValid',\n config ? [blockhash, config] : [blockhash]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getFeeForMessage(\n client: SurfmanClient,\n message: string,\n config?: { commitment?: string }\n): Promise<number | null> {\n return client.request<[string, any?], number | null>(\n 'getFeeForMessage',\n config ? [message, config] : [message]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport interface PrioritizationFee {\n slot: number;\n prioritizationFee: number;\n}\n\nexport async function getRecentPrioritizationFees(\n client: SurfmanClient,\n addresses?: string[]\n): Promise<PrioritizationFee[]> {\n return client.request<[string[]?], PrioritizationFee[]>(\n 'getRecentPrioritizationFees',\n addresses ? [addresses] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { InflationReward } from '../../types';\n\nexport async function getInflationReward(\n client: SurfmanClient,\n addresses: string[],\n config?: { epoch?: number; commitment?: string; minContextSlot?: number }\n): Promise<(InflationReward | null)[]> {\n return client.request<[string[], { epoch?: number; commitment?: string; minContextSlot?: number } | undefined], (InflationReward | null)[]>(\n 'getInflationReward',\n [addresses, config]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getMaxRetransmitSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getMaxRetransmitSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getMaxShredInsertSlot(\n client: SurfmanClient\n): Promise<number> {\n return client.request<[], number>('getMaxShredInsertSlot', []);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\n\nexport async function getStakeMinimumDelegation(\n client: SurfmanClient,\n config?: { commitment?: string; minContextSlot?: number }\n): Promise<number> {\n const response = await client.request<\n [{ commitment?: string; minContextSlot?: number } | undefined],\n { context: { slot: number }; value: number }\n >('getStakeMinimumDelegation', [config]);\n return response.value;\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getLatestBlockhash } from './getLatestBlockhash';\nimport { getBlock } from './getBlock';\nimport { getBlockTime } from './getBlockTime';\nimport { getFirstAvailableBlock } from './getFirstAvailableBlock';\nimport { minimumLedgerSlot } from './minimumLedgerSlot';\nimport { getTransaction } from './getTransaction';\nimport { getSignatureStatuses } from './getSignatureStatuses';\nimport { sendTransaction } from './sendTransaction';\nimport { simulateTransaction } from './simulateTransaction';\nimport { getClusterNodes } from './getClusterNodes';\nimport { getRecentPerformanceSamples } from './getRecentPerformanceSamples';\nimport { requestAirdrop } from './requestAirdrop';\nimport { getBlocks } from './getBlocks';\nimport { getBlocksWithLimit } from './getBlocksWithLimit';\nimport {\n getSignaturesForAddress,\n type SignatureForAddress,\n type SignaturesForAddressConfig,\n} from './getSignaturesForAddress';\nimport { isBlockhashValid } from './isBlockhashValid';\nimport { getFeeForMessage } from './getFeeForMessage';\nimport {\n getRecentPrioritizationFees,\n type PrioritizationFee,\n} from './getRecentPrioritizationFees';\nimport { getInflationReward } from './getInflationReward';\nimport { getMaxRetransmitSlot } from './getMaxRetransmitSlot';\nimport { getMaxShredInsertSlot } from './getMaxShredInsertSlot';\nimport { getStakeMinimumDelegation } from './getStakeMinimumDelegation';\nimport type {\n BlockhashResult,\n Block,\n BlockConfig,\n TransactionResult,\n TransactionConfig,\n SignatureStatus,\n SendTransactionConfig,\n SimulateTransactionConfig,\n SimulateTransactionResult,\n ClusterNode,\n PerformanceSample,\n InflationReward,\n} from '../../types';\n\nexport class NetworkModule {\n constructor(private client: SurfmanClient) {}\n\n async getLatestBlockhash(config?: {\n commitment?: string;\n minContextSlot?: number;\n }): Promise<BlockhashResult> {\n return getLatestBlockhash(this.client, config);\n }\n\n async getBlock(\n slot: number,\n config?: BlockConfig\n ): Promise<Block | null> {\n return getBlock(this.client, slot, config);\n }\n\n async getBlockTime(slot: number): Promise<number | null> {\n return getBlockTime(this.client, slot);\n }\n\n async getFirstAvailableBlock(): Promise<number> {\n return getFirstAvailableBlock(this.client);\n }\n\n async minimumLedgerSlot(): Promise<number> {\n return minimumLedgerSlot(this.client);\n }\n\n async getTransaction(\n signature: string,\n config?: TransactionConfig\n ): Promise<TransactionResult | null> {\n return getTransaction(this.client, signature, config);\n }\n\n async getSignatureStatuses(\n signatures: string[],\n config?: { searchTransactionHistory?: boolean }\n ): Promise<(SignatureStatus | null)[]> {\n return getSignatureStatuses(this.client, signatures, config);\n }\n\n async sendTransaction(\n transaction: string,\n config?: SendTransactionConfig\n ): Promise<string> {\n return sendTransaction(this.client, transaction, config);\n }\n\n async simulateTransaction(\n transaction: string,\n config?: SimulateTransactionConfig\n ): Promise<SimulateTransactionResult> {\n return simulateTransaction(this.client, transaction, config);\n }\n\n async getClusterNodes(): Promise<ClusterNode[]> {\n return getClusterNodes(this.client);\n }\n\n async getRecentPerformanceSamples(\n limit?: number\n ): Promise<PerformanceSample[]> {\n return getRecentPerformanceSamples(this.client, limit);\n }\n\n async requestAirdrop(\n pubkey: string,\n lamports: number,\n config?: { commitment?: string }\n ): Promise<string> {\n return requestAirdrop(this.client, pubkey, lamports, config);\n }\n\n async getBlocks(\n startSlot: number,\n endSlot?: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocks(this.client, startSlot, endSlot, config);\n }\n\n async getBlocksWithLimit(\n startSlot: number,\n limit: number,\n config?: { commitment?: string }\n ): Promise<number[]> {\n return getBlocksWithLimit(this.client, startSlot, limit, config);\n }\n\n async getSignaturesForAddress(\n address: string,\n config?: SignaturesForAddressConfig\n ): Promise<SignatureForAddress[]> {\n return getSignaturesForAddress(this.client, address, config);\n }\n\n async isBlockhashValid(\n blockhash: string,\n config?: { commitment?: string; minContextSlot?: number }\n ): Promise<boolean> {\n return isBlockhashValid(this.client, blockhash, config);\n }\n\n async getFeeForMessage(\n message: string,\n config?: { commitment?: string }\n ): Promise<number | null> {\n return getFeeForMessage(this.client, message, config);\n }\n\n async getRecentPrioritizationFees(\n addresses?: string[]\n ): Promise<PrioritizationFee[]> {\n return getRecentPrioritizationFees(this.client, addresses);\n }\n\n async getInflationReward(\n addresses: string[],\n config?: { epoch?: number; commitment?: string; minContextSlot?: number }\n ): Promise<(InflationReward | null)[]> {\n return getInflationReward(this.client, addresses, config);\n }\n\n async getMaxRetransmitSlot(): Promise<number> {\n return getMaxRetransmitSlot(this.client);\n }\n\n async getMaxShredInsertSlot(): Promise<number> {\n return getMaxShredInsertSlot(this.client);\n }\n\n async getStakeMinimumDelegation(\n config?: { commitment?: string; minContextSlot?: number }\n ): Promise<number> {\n return getStakeMinimumDelegation(this.client, config);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getAccountInfo(\n client: SurfmanClient,\n pubkey: string,\n config?: AccountInfoConfig\n): Promise<AccountInfo | null> {\n return client.request<[string, AccountInfoConfig?], AccountInfo | null>(\n 'getAccountInfo',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountInfo, AccountInfoConfig } from '../../types';\n\nexport async function getMultipleAccounts(\n client: SurfmanClient,\n pubkeys: string[],\n config?: AccountInfoConfig\n): Promise<(AccountInfo | null)[]> {\n return client.request<[string[], AccountInfoConfig?], (AccountInfo | null)[]>(\n 'getMultipleAccounts',\n config ? [pubkeys, config] : [pubkeys]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { BlockCommitment } from '../../types';\n\nexport async function getBlockCommitment(\n client: SurfmanClient,\n slot: number\n): Promise<BlockCommitment> {\n return client.request<[number], BlockCommitment>('getBlockCommitment', [\n slot,\n ]);\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenAccountBalance(\n client: SurfmanClient,\n pubkey: string,\n config?: { commitment?: string }\n): Promise<TokenAmount | null> {\n return client.request<[string, any?], TokenAmount | null>(\n 'getTokenAccountBalance',\n config ? [pubkey, config] : [pubkey]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAmount } from '../../types';\n\nexport async function getTokenSupply(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAmount> {\n return client.request<[string, any?], TokenAmount>(\n 'getTokenSupply',\n config ? [mint, config] : [mint]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getAccountInfo } from './getAccountInfo';\nimport { getMultipleAccounts } from './getMultipleAccounts';\nimport { getBlockCommitment } from './getBlockCommitment';\nimport { getTokenAccountBalance } from './getTokenAccountBalance';\nimport { getTokenSupply } from './getTokenSupply';\nimport type {\n AccountInfo,\n AccountInfoConfig,\n BlockCommitment,\n TokenAmount,\n} from '../../types';\n\nexport class AccountsModule {\n constructor(private client: SurfmanClient) {}\n\n async getAccountInfo(\n pubkey: string,\n config?: AccountInfoConfig\n ): Promise<AccountInfo | null> {\n return getAccountInfo(this.client, pubkey, config);\n }\n\n async getMultipleAccounts(\n pubkeys: string[],\n config?: AccountInfoConfig\n ): Promise<(AccountInfo | null)[]> {\n return getMultipleAccounts(this.client, pubkeys, config);\n }\n\n async getBlockCommitment(slot: number): Promise<BlockCommitment> {\n return getBlockCommitment(this.client, slot);\n }\n\n async getTokenAccountBalance(\n pubkey: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount | null> {\n return getTokenAccountBalance(this.client, pubkey, config);\n }\n\n async getTokenSupply(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAmount> {\n return getTokenSupply(this.client, mint, config);\n }\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, ProgramAccountsConfig } from '../../types';\n\nexport async function getProgramAccounts(\n client: SurfmanClient,\n programId: string,\n config?: ProgramAccountsConfig\n): Promise<KeyedAccount[]> {\n const result = await client.request<\n [string, ProgramAccountsConfig?],\n KeyedAccount[] | { context: any; value: KeyedAccount[] }\n >('getProgramAccounts', config ? [programId, config] : [programId]);\n\n if (result && typeof result === 'object' && 'value' in result) {\n return result.value;\n }\n return result as KeyedAccount[];\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { AccountBalance } from '../../types';\n\nexport interface LargestAccountsConfig {\n commitment?: string;\n filter?: 'circulating' | 'nonCirculating';\n}\n\nexport async function getLargestAccounts(\n client: SurfmanClient,\n config?: LargestAccountsConfig\n): Promise<AccountBalance[]> {\n return client.request<[LargestAccountsConfig?], AccountBalance[]>(\n 'getLargestAccounts',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { Supply, SupplyConfig } from '../../types';\n\nexport async function getSupply(\n client: SurfmanClient,\n config?: SupplyConfig\n): Promise<Supply> {\n return client.request<[SupplyConfig?], Supply>(\n 'getSupply',\n config ? [config] : []\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { TokenAccountBalance } from '../../types';\n\nexport async function getTokenLargestAccounts(\n client: SurfmanClient,\n mint: string,\n config?: { commitment?: string }\n): Promise<TokenAccountBalance[]> {\n return client.request<[string, any?], TokenAccountBalance[]>(\n 'getTokenLargestAccounts',\n config ? [mint, config] : [mint]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByOwner(\n client: SurfmanClient,\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByOwner',\n config ? [owner, filter, config] : [owner, filter]\n );\n}\n","import type { SurfmanClient } from '../../client/SurfmanClient';\nimport type { KeyedAccount, TokenAccountsFilter, AccountInfoConfig } from '../../types';\n\nexport async function getTokenAccountsByDelegate(\n client: SurfmanClient,\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n): Promise<KeyedAccount[]> {\n return client.request<[string, TokenAccountsFilter, AccountInfoConfig?], KeyedAccount[]>(\n 'getTokenAccountsByDelegate',\n config ? [delegate, filter, config] : [delegate, filter]\n );\n}\n","import { SurfmanClient } from '../../client/SurfmanClient';\nimport { getProgramAccounts } from './getProgramAccounts';\nimport { getLargestAccounts, type LargestAccountsConfig } from './getLargestAccounts';\nimport { getSupply } from './getSupply';\nimport { getTokenLargestAccounts } from './getTokenLargestAccounts';\nimport { getTokenAccountsByOwner } from './getTokenAccountsByOwner';\nimport { getTokenAccountsByDelegate } from './getTokenAccountsByDelegate';\nimport type {\n KeyedAccount,\n ProgramAccountsConfig,\n AccountBalance,\n Supply,\n SupplyConfig,\n TokenAccountBalance,\n TokenAccountsFilter,\n AccountInfoConfig,\n} from '../../types';\n\nexport class ScanModule {\n constructor(private client: SurfmanClient) {}\n\n async getProgramAccounts(\n programId: string,\n config?: ProgramAccountsConfig\n ): Promise<KeyedAccount[]> {\n return getProgramAccounts(this.client, programId, config);\n }\n\n async getLargestAccounts(\n config?: LargestAccountsConfig\n ): Promise<AccountBalance[]> {\n return getLargestAccounts(this.client, config);\n }\n\n async getSupply(config?: SupplyConfig): Promise<Supply> {\n return getSupply(this.client, config);\n }\n\n async getTokenLargestAccounts(\n mint: string,\n config?: { commitment?: string }\n ): Promise<TokenAccountBalance[]> {\n return getTokenLargestAccounts(this.client, mint, config);\n }\n\n async getTokenAccountsByOwner(\n owner: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByOwner(this.client, owner, filter, config);\n }\n\n async getTokenAccountsByDelegate(\n delegate: string,\n filter: TokenAccountsFilter,\n config?: AccountInfoConfig\n ): Promise<KeyedAccount[]> {\n return getTokenAccountsByDelegate(this.client, delegate, filter, config);\n }\n}\n","import { SurfmanClient } from './client/SurfmanClient';\nimport { CheatcodesModule } from './modules/cheatcodes';\nimport { NetworkModule } from './modules/network';\nimport { AccountsModule } from './modules/accounts';\nimport { ScanModule } from './modules/scan';\nimport type { RpcClientConfig } from './types';\n\nexport class Surfman {\n public cheatcodes: CheatcodesModule;\n public network: NetworkModule;\n public accounts: AccountsModule;\n public scan: ScanModule;\n\n private client: SurfmanClient;\n\n constructor(config: string | RpcClientConfig) {\n this.client = new SurfmanClient(config);\n this.cheatcodes = new CheatcodesModule(this.client);\n this.network = new NetworkModule(this.client);\n this.accounts = new AccountsModule(this.client);\n this.scan = new ScanModule(this.client);\n }\n\n getClient(): SurfmanClient {\n return this.client;\n }\n}\n\nexport { SurfmanClient } from './client/SurfmanClient';\nexport * from './types';\nexport * from './modules';\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "surfman-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "TypeScript SDK for SurfPool RPC API interaction",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",