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 +3 -0
- package/dist/index.d.mts +130 -1
- package/dist/index.d.ts +130 -1
- package/dist/index.js +179 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +179 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,6 +5,8 @@ TypeScript SDK for SurfPool RPC API interaction - A powerful toolkit for Solana
|
|
|
5
5
|
[](https://www.npmjs.com/package/surfman-sdk)
|
|
6
6
|
[](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
|
package/dist/index.mjs.map
CHANGED
|
@@ -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":"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","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":[]}
|