Skip to main content

FunctionCall

Struct FunctionCall 

Source
pub struct FunctionCall { /* private fields */ }
Expand description

A standalone function call configuration, decoupled from any transaction.

Use this when you need to pre-build calls and compose them into a transaction later. This is especially useful for dynamic transaction composition (e.g. in a loop) or for batching typed contract calls into a single transaction.

Note: FunctionCall does not capture a receiver/contract account. The call will execute against whichever receiver_id is set on the transaction it’s added to.

§Examples

// Pre-build calls independently
let init = FunctionCall::new("init")
    .args(serde_json::json!({"owner": "alice.testnet"}))
    .gas(Gas::from_tgas(50));

let notify = FunctionCall::new("notify")
    .args(serde_json::json!({"msg": "done"}));

// Compose into a single atomic transaction
near.transaction("contract.testnet")
    .add_action(init)
    .add_action(notify)
    .send()
    .await?;
// Dynamic composition in a loop
let calls = vec![
    FunctionCall::new("method_a").args(serde_json::json!({"x": 1})),
    FunctionCall::new("method_b").args(serde_json::json!({"y": 2})),
];

let mut tx = near.transaction("contract.testnet");
for call in calls {
    tx = tx.add_action(call);
}
tx.send().await?;

Implementations§

Source§

impl FunctionCall

Source

pub fn new(method: impl Into<String>) -> Self

Create a new function call for the given method name.

Source

pub fn args(self, args: impl Serialize) -> Self

Set JSON arguments.

Source

pub fn args_raw(self, args: Vec<u8>) -> Self

Set raw byte arguments.

Source

pub fn args_borsh(self, args: impl BorshSerialize) -> Self

Set Borsh-encoded arguments.

Source

pub fn gas(self, gas: impl IntoGas) -> Self

Set gas limit.

Defaults to 30 TGas if not set.

§Panics

Panics if the gas string cannot be parsed. Use Gas’s FromStr impl for fallible parsing of user input.

Source

pub fn deposit(self, amount: impl IntoNearToken) -> Self

Set attached deposit.

Defaults to zero if not set.

§Panics

Panics if the amount string cannot be parsed. Use NearToken’s FromStr impl for fallible parsing of user input.

Trait Implementations§

Source§

impl Debug for FunctionCall

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<FunctionCall> for Action

Source§

fn from(call: FunctionCall) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more