Skip to main content

RelayClient

Struct RelayClient 

Source
pub struct RelayClient {
    pub relayer_url: String,
    pub chain_id: u64,
    pub contract_config: ContractConfig,
    pub relay_tx_type: RelayerTxType,
    /* private fields */
}

Fields§

§relayer_url: String§chain_id: u64§contract_config: ContractConfig§relay_tx_type: RelayerTxType

Implementations§

Source§

impl RelayClient

Source

pub fn new(relayer_url: impl Into<String>, chain_id: u64) -> Self

Source

pub fn new_with_type( relayer_url: impl Into<String>, chain_id: u64, relay_tx_type: RelayerTxType, ) -> Self

Source

pub fn with_relay_tx_type(self, relay_tx_type: RelayerTxType) -> Self

Override the relay transaction type (SAFE / PROXY) after construction. This is useful when you want to pick the type dynamically (e.g., via config/env).

Source

pub fn with_signer( self, signer: Box<dyn AbstractSigner + Send + Sync>, typed: Box<dyn AbstractSignerForCreate + Send + Sync>, ) -> Self

Source

pub fn with_builder_api_key(self, creds: BuilderApiKeyCreds) -> Self

Source

pub fn with_gas_estimate_rpc(self, rpc: impl Into<String>) -> Self

Override the RPC used for gas estimation (defaults to BLOCK_RPC_URL env or polygon-rpc.com).

Source

pub async fn get_nonce( &self, signer_address: &str, signer_type: &str, ) -> Result<NoncePayload>

Source

pub async fn get_relay_payload( &self, signer_address: &str, signer_type: &str, ) -> Result<RelayPayload>

Source

pub async fn get_transaction( &self, transaction_id: &str, ) -> Result<Vec<RelayerTransaction>>

Source

pub async fn get_transactions(&self) -> Result<Vec<RelayerTransaction>>

Source

pub async fn get_deployed(&self, safe_address: &str) -> Result<bool>

Source

pub async fn deploy(&self) -> Result<RelayerTransactionResponse>

Source

pub async fn execute_transactions( &self, txns: Vec<Transaction>, metadata: Option<String>, ) -> Result<RelayerTransactionResponse>

按 relayTxType 分发执行(对齐 TS execute 行为)

Source

pub async fn execute( &self, txns: Vec<SafeTransaction>, metadata: Option<String>, ) -> Result<RelayerTransactionResponse>

Source

pub async fn execute_with_safe( &self, txns: Vec<SafeTransaction>, metadata: Option<String>, safe_address: Option<String>, ) -> Result<RelayerTransactionResponse>

Execute transactions with an optional explicit Safe address

If safe_address is provided, it will be used directly instead of deriving from signer address. This is useful when the Safe address is already known (e.g., from Polymarket account).

Source

pub async fn execute_proxy_transactions( &self, txns: Vec<ProxyTransaction>, metadata: Option<String>, ) -> Result<RelayerTransactionResponse>

Source

pub async fn poll_until_state( &self, transaction_id: &str, states: &[RelayerTransactionState], fail_state: Option<RelayerTransactionState>, max_polls: usize, poll_freq_ms: u64, ) -> Result<Option<RelayerTransaction>>

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
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