pub struct redeemManyCall {
pub batches: Vec<<PoolBatch as SolType>::RustType>,
}Expand description
The sole redemption entry point: per pool, register every
capability, then redeem every voucher, all in one
transaction. A node redeems every lane it holds at once, and
a single lane is a one-pool batch of one. Each voucher pays
the increment over its lane watermark, bounded by the
signer’s remaining cap and the pool’s remaining deposit; a
transient-empty voucher (already-registered signer, expired
capability, stale cumulative, or a drained lane/cap) is
skipped rather than reverting. Grouping by pool is what makes
the pool’s status gate and its totalRedeemed write happen
once per group instead of once per lane. Every voucher is
redeemed for msg.sender, so the whole call’s payout settles
through FeeRouter.routeSettlement in one go.
Function with signature redeemMany((bytes32,(address,uint64,uint64,bytes)[],(address,uint64,uint64,bytes32,bytes32,bytes32,bytes32,uint256)[])[]) and selector 0xb8e10f1a.
function redeemMany(PoolBatch[] calldata batches) external returns (uint256 totalPaid);Fields§
§batches: Vec<<PoolBatch as SolType>::RustType>Trait Implementations§
Source§impl Clone for redeemManyCall
impl Clone for redeemManyCall
Source§impl SolCall for redeemManyCall
impl SolCall for redeemManyCall
Source§const SIGNATURE: &'static str = "redeemMany((bytes32,(address,uint64,uint64,bytes)[],(address,uint64,uint64,bytes32,bytes32,bytes32,bytes32,uint256)[])[])"
const SIGNATURE: &'static str = "redeemMany((bytes32,(address,uint64,uint64,bytes)[],(address,uint64,uint64,bytes32,bytes32,bytes32,bytes32,uint256)[])[])"
Source§type Parameters<'a> = (Array<PoolBatch>,)
type Parameters<'a> = (Array<PoolBatch>,)
Source§type Token<'a> = <<redeemManyCall as SolCall>::Parameters<'a> as SolType>::Token<'a>
type Token<'a> = <<redeemManyCall as SolCall>::Parameters<'a> as SolType>::Token<'a>
Source§type ReturnTuple<'a> = (Uint<256>,)
type ReturnTuple<'a> = (Uint<256>,)
Source§type ReturnToken<'a> = <<redeemManyCall as SolCall>::ReturnTuple<'a> as SolType>::Token<'a>
type ReturnToken<'a> = <<redeemManyCall as SolCall>::ReturnTuple<'a> as SolType>::Token<'a>
Source§fn new<'a>(tuple: <Self::Parameters<'a> as SolType>::RustType) -> Self
fn new<'a>(tuple: <Self::Parameters<'a> as SolType>::RustType) -> Self
Source§fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_>
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_>
Source§fn abi_decode_returns(data: &[u8]) -> Result<Self::Return>
fn abi_decode_returns(data: &[u8]) -> Result<Self::Return>
Source§fn abi_decode_returns_with_config(
data: &[u8],
config: AbiDecoderConfig,
) -> Result<Self::Return>
fn abi_decode_returns_with_config( data: &[u8], config: AbiDecoderConfig, ) -> Result<Self::Return>
Source§fn abi_decode_returns_validate(data: &[u8]) -> Result<Self::Return>
fn abi_decode_returns_validate(data: &[u8]) -> Result<Self::Return>
Source§fn abi_encoded_size(&self) -> usize
fn abi_encoded_size(&self) -> usize
Source§fn abi_decode_raw(data: &[u8]) -> Result<Self, Error>
fn abi_decode_raw(data: &[u8]) -> Result<Self, Error>
Source§fn abi_decode_raw_with_config(
data: &[u8],
config: AbiDecoderConfig,
) -> Result<Self, Error>
fn abi_decode_raw_with_config( data: &[u8], config: AbiDecoderConfig, ) -> Result<Self, Error>
Source§fn abi_decode_raw_validate(data: &[u8]) -> Result<Self, Error>
fn abi_decode_raw_validate(data: &[u8]) -> Result<Self, Error>
Source§fn abi_decode(data: &[u8]) -> Result<Self, Error>
fn abi_decode(data: &[u8]) -> Result<Self, Error>
Source§fn abi_decode_with_config(
data: &[u8],
config: AbiDecoderConfig,
) -> Result<Self, Error>
fn abi_decode_with_config( data: &[u8], config: AbiDecoderConfig, ) -> Result<Self, Error>
Source§fn abi_decode_validate(data: &[u8]) -> Result<Self, Error>
fn abi_decode_validate(data: &[u8]) -> Result<Self, Error>
Source§fn abi_encode_raw(&self, out: &mut Vec<u8>)
fn abi_encode_raw(&self, out: &mut Vec<u8>)
Source§fn abi_encode_returns_tuple<'a, E>(e: &'a E) -> Vec<u8> ⓘwhere
E: SolTypeValue<Self::ReturnTuple<'a>>,
fn abi_encode_returns_tuple<'a, E>(e: &'a E) -> Vec<u8> ⓘwhere
E: SolTypeValue<Self::ReturnTuple<'a>>,
Auto Trait Implementations§
impl Freeze for redeemManyCall
impl RefUnwindSafe for redeemManyCall
impl Send for redeemManyCall
impl Sync for redeemManyCall
impl Unpin for redeemManyCall
impl UnsafeUnpin for redeemManyCall
impl UnwindSafe for redeemManyCall
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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