pub struct Client { /* private fields */ }Expand description
The Client.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(sender: RpcChannel) -> Self
pub fn new(sender: RpcChannel) -> Self
Creates a new Client.
Sourcepub fn set_account(
&self,
pubkey: String,
update: AccountUpdate,
) -> impl Future<Output = RpcResult<RpcResponse<()>>>
pub fn set_account( &self, pubkey: String, update: AccountUpdate, ) -> impl Future<Output = RpcResult<RpcResponse<()>>>
A “cheat code” method for developers to set or update an account in Surfpool.
This method allows developers to set or update the lamports, data, owner, executable status, and rent epoch of a given account.
§Parameters
meta: Metadata passed with the request, such as the client’s request context.pubkey: The public key of the account to be updated, as a base-58 encoded string.update: TheAccountUpdatestruct containing the fields to update the account.
§Returns
A RpcResponse<()> indicating whether the account update was successful.
§Example Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "surfnet_setAccount",
"params": ["account_pubkey", {"lamports": 1000, "data": "base58string", "owner": "program_pubkey"}]
}§Example Response
{
"jsonrpc": "2.0",
"result": {},
"id": 1
}§Notes
This method is designed to help developers set or modify account properties within Surfpool. Developers can quickly test or update account attributes, such as lamports, program ownership, and executable status.
§See Also
getAccount,getAccountInfo,getAccountBalance
Sourcepub fn set_token_account(
&self,
owner: String,
mint: String,
update: TokenAccountUpdate,
token_program: Option<String>,
) -> impl Future<Output = RpcResult<RpcResponse<()>>>
pub fn set_token_account( &self, owner: String, mint: String, update: TokenAccountUpdate, token_program: Option<String>, ) -> impl Future<Output = RpcResult<RpcResponse<()>>>
A “cheat code” method for developers to set or update a token account in Surfpool.
This method allows developers to set or update various properties of a token account, including the token amount, delegate, state, delegated amount, and close authority.
§Parameters
meta: Metadata passed with the request, such as the client’s request context.owner: The base-58 encoded public key of the token account’s owner.mint: The base-58 encoded public key of the token mint (e.g., the token type).update: TheTokenAccountUpdatestruct containing the fields to update the token account.token_program: The optional base-58 encoded address of the token program (defaults to the system token program).
§Returns
A RpcResponse<()> indicating whether the token account update was successful.
§Example Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "surfnet_setTokenAccount",
"params": ["owner_pubkey", "mint_pubkey", {"amount": 1000, "state": "initialized"}]
}§Example Response
{
"jsonrpc": "2.0",
"result": {},
"id": 1
}§Notes
This method is designed to help developers quickly test or modify token account properties in Surfpool. Developers can update attributes such as token amounts, delegates, and authorities for specific token accounts.
§See Also
getTokenAccountInfo,getTokenAccountBalance,getTokenAccountDelegate
pub fn clone_program_account( &self, source_program_id: String, destination_program_id: String, ) -> impl Future<Output = RpcResult<RpcResponse<()>>>
Sourcepub fn profile_transaction(
&self,
transaction_data: String,
tag: Option<String>,
encoding: Option<UiAccountEncoding>,
) -> impl Future<Output = RpcResult<RpcResponse<ProfileResult>>>
pub fn profile_transaction( &self, transaction_data: String, tag: Option<String>, encoding: Option<UiAccountEncoding>, ) -> impl Future<Output = RpcResult<RpcResponse<ProfileResult>>>
Estimates the compute units that a given transaction will consume.
This method simulates the transaction without committing its state changes and returns an estimation of the compute units used, along with logs and potential errors.
§Parameters
meta: Metadata passed with the request.transaction_data: A base64 encoded string of theVersionedTransaction.tag: An optional tag for the transaction.encoding: An optional encoding for returned account data.
§Returns
A RpcResponse<ProfileResult> containing the estimation details and a snapshot of the accounts before and after execution.
§Example Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "surfnet_profileTransaction",
"params": ["base64_encoded_transaction_string", "optional_tag"]
}Sourcepub fn get_profile_results_by_tag(
&self,
tag: String,
) -> impl Future<Output = RpcResult<RpcResponse<Option<Vec<ProfileResult>>>>>
pub fn get_profile_results_by_tag( &self, tag: String, ) -> impl Future<Output = RpcResult<RpcResponse<Option<Vec<ProfileResult>>>>>
Sourcepub fn set_supply(
&self,
update: SupplyUpdate,
) -> impl Future<Output = RpcResult<RpcResponse<()>>>
pub fn set_supply( &self, update: SupplyUpdate, ) -> impl Future<Output = RpcResult<RpcResponse<()>>>
A “cheat code” method for developers to set or update the network supply information in Surfpool.
This method allows developers to configure the total supply, circulating supply,
non-circulating supply, and non-circulating accounts list that will be returned
by the getSupply RPC method.
§Parameters
meta: Metadata passed with the request, such as the client’s request context.update: TheSupplyUpdatestruct containing the optional fields to update:total: Optional total supply in lamportscirculating: Optional circulating supply in lamportsnon_circulating: Optional non-circulating supply in lamportsnon_circulating_accounts: Optional list of non-circulating account addresses
§Returns
A RpcResponse<()> indicating whether the supply update was successful.
§Example Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "surfnet_setSupply",
"params": [{
"total": 1000000000000000,
"circulating": 800000000000000,
"non_circulating": 200000000000000,
"non_circulating_accounts": ["Account1...", "Account2..."]
}]
}§Example Response
{
"jsonrpc": "2.0",
"result": {},
"id": 1
}§Notes
This method is designed to help developers test supply-related functionality by
allowing them to configure the values returned by getSupply without needing
to connect to a real network or manipulate actual token supplies.
§See Also
getSupply
A cheat code to set the upgrade authority of a program’s ProgramData account.
This method allows developers to directly patch the upgrade authority of a program’s ProgramData account.
§Parameters
meta: Metadata passed with the request, such as the client’s request context.program_id: The base-58 encoded public key of the program.new_authority: The base-58 encoded public key of the new authority. If omitted, the program will have no upgrade authority.
§Returns
A RpcResponse<()> indicating whether the authority update was successful.
§Example Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "surfnet_setProgramAuthority",
"params": [
"PROGRAM_ID_BASE58",
"NEW_AUTHORITY_BASE58"
]
}§Example Response
{
"jsonrpc": "2.0",
"result": {},
"id": 1
}pub fn get_transaction_profile( &self, signature_or_uuid: UuidOrSignature, ) -> impl Future<Output = RpcResult<RpcResponse<Option<ProfileResult>>>>
Trait Implementations§
Source§impl From<RpcChannel> for Client
impl From<RpcChannel> for Client
Source§fn from(channel: RpcChannel) -> Self
fn from(channel: RpcChannel) -> Self
Auto Trait Implementations§
impl Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more