pub struct CallBuilder { /* private fields */ }Expand description
Builder for configuring a function call within a transaction.
Created via TransactionBuilder::call. Allows setting args, gas, and deposit
before continuing to chain more actions or sending.
Implementations§
Source§impl CallBuilder
impl CallBuilder
Sourcepub fn args_borsh<A: BorshSerialize>(self, args: A) -> Self
pub fn args_borsh<A: BorshSerialize>(self, args: A) -> Self
Set Borsh-encoded arguments.
Sourcepub fn deposit(self, amount: impl IntoNearToken) -> Self
pub fn deposit(self, amount: impl IntoNearToken) -> Self
Sourcepub fn into_action(self) -> Action
pub fn into_action(self) -> Action
Convert this call into a standalone Action, discarding the
underlying transaction builder.
This is useful for extracting a typed contract call so it can be composed into a different transaction.
§Example
// Extract actions from the fluent builder
let action = near.transaction("contract.testnet")
.call("method")
.args(serde_json::json!({"key": "value"}))
.gas(Gas::from_tgas(50))
.into_action();
// Compose into a different transaction
near.transaction("contract.testnet")
.add_action(action)
.send()
.await?;§Panics
Panics if the underlying transaction builder already has accumulated
actions, since those would be silently dropped. Use finish
instead when chaining multiple actions on the same transaction.
Sourcepub fn finish(self) -> TransactionBuilder
pub fn finish(self) -> TransactionBuilder
Finish this call and return to the transaction builder.
This is useful when you need to conditionally add actions to a
transaction, since it gives back the TransactionBuilder so you can
branch on runtime state before starting the next action.
Sourcepub fn add_action(self, action: impl Into<Action>) -> TransactionBuilder
pub fn add_action(self, action: impl Into<Action>) -> TransactionBuilder
Add a pre-built action to the transaction.
Finishes this function call, then adds the given action.
See TransactionBuilder::add_action for details.
Sourcepub fn call(self, method: &str) -> CallBuilder
pub fn call(self, method: &str) -> CallBuilder
Add another function call.
Sourcepub fn create_account(self) -> TransactionBuilder
pub fn create_account(self) -> TransactionBuilder
Add a create account action.
Sourcepub fn transfer(self, amount: impl IntoNearToken) -> TransactionBuilder
pub fn transfer(self, amount: impl IntoNearToken) -> TransactionBuilder
Add a transfer action.
Sourcepub fn deploy(self, code: impl Into<Vec<u8>>) -> TransactionBuilder
pub fn deploy(self, code: impl Into<Vec<u8>>) -> TransactionBuilder
Add a deploy contract action.
Sourcepub fn add_full_access_key(self, public_key: PublicKey) -> TransactionBuilder
pub fn add_full_access_key(self, public_key: PublicKey) -> TransactionBuilder
Add a full access key.
Sourcepub fn add_function_call_key(
self,
public_key: PublicKey,
receiver_id: impl TryIntoAccountId,
method_names: Vec<String>,
allowance: Option<NearToken>,
) -> TransactionBuilder
pub fn add_function_call_key( self, public_key: PublicKey, receiver_id: impl TryIntoAccountId, method_names: Vec<String>, allowance: Option<NearToken>, ) -> TransactionBuilder
Add a function call access key.
Sourcepub fn delete_key(self, public_key: PublicKey) -> TransactionBuilder
pub fn delete_key(self, public_key: PublicKey) -> TransactionBuilder
Delete an access key.
Sourcepub fn delete_account(
self,
beneficiary_id: impl TryIntoAccountId,
) -> TransactionBuilder
pub fn delete_account( self, beneficiary_id: impl TryIntoAccountId, ) -> TransactionBuilder
Delete the account.
Sourcepub fn stake(
self,
amount: impl IntoNearToken,
public_key: PublicKey,
) -> TransactionBuilder
pub fn stake( self, amount: impl IntoNearToken, public_key: PublicKey, ) -> TransactionBuilder
Add a stake action.
Sourcepub fn publish(
self,
code: impl Into<Vec<u8>>,
mode: PublishMode,
) -> TransactionBuilder
pub fn publish( self, code: impl Into<Vec<u8>>, mode: PublishMode, ) -> TransactionBuilder
Publish a contract to the global registry.
Sourcepub fn deploy_from(
self,
contract_ref: impl GlobalContractRef,
) -> TransactionBuilder
pub fn deploy_from( self, contract_ref: impl GlobalContractRef, ) -> TransactionBuilder
Deploy a contract from the global registry.
Sourcepub fn state_init(
self,
state_init: DeterministicAccountStateInit,
deposit: impl IntoNearToken,
) -> TransactionBuilder
pub fn state_init( self, state_init: DeterministicAccountStateInit, deposit: impl IntoNearToken, ) -> TransactionBuilder
Create a NEP-616 deterministic state init action.
Sourcepub fn sign_with(self, signer: impl Signer + 'static) -> TransactionBuilder
pub fn sign_with(self, signer: impl Signer + 'static) -> TransactionBuilder
Override the signer.
Sourcepub fn wait_until(self, status: TxExecutionStatus) -> TransactionBuilder
pub fn wait_until(self, status: TxExecutionStatus) -> TransactionBuilder
Set the execution wait level.
Sourcepub fn max_nonce_retries(self, retries: u32) -> TransactionBuilder
pub fn max_nonce_retries(self, retries: u32) -> TransactionBuilder
Override the number of nonce retries for this transaction on InvalidNonce
errors. 0 means no retries (send once), 1 means one retry, etc.
Sourcepub async fn delegate(
self,
options: DelegateOptions,
) -> Result<DelegateResult, Error>
pub async fn delegate( self, options: DelegateOptions, ) -> Result<DelegateResult, Error>
Build and sign a delegate action for meta-transactions (NEP-366).
This finishes the current function call and then creates a delegate action.
Sourcepub async fn sign_offline(
self,
block_hash: CryptoHash,
nonce: u64,
) -> Result<SignedTransaction, Error>
pub async fn sign_offline( self, block_hash: CryptoHash, nonce: u64, ) -> Result<SignedTransaction, Error>
Sign the transaction offline without network access.
See TransactionBuilder::sign_offline for details.
Sourcepub async fn sign(self) -> Result<SignedTransaction, Error>
pub async fn sign(self) -> Result<SignedTransaction, Error>
Sign the transaction without sending it.
See TransactionBuilder::sign for details.
Sourcepub fn send(self) -> TransactionSend
pub fn send(self) -> TransactionSend
Send the transaction.