pub struct BuyerPoolSnapshot {
pub pool_id: String,
pub chain_id: u64,
pub payment_pool: String,
pub owner: String,
pub token: String,
pub deposit_micro_usdc: u64,
pub lanes: Vec<BuyerLaneSnapshot>,
}Expand description
One PaymentPool deposit the node’s buyer leg tracks (admin_v1_pools).
The amounts are the stored ones, not a chain read: this is what the daemon
believes, which is the half an operator cannot otherwise see. A disagreement
with PaymentPool.getPool is itself the diagnostic.
Fields§
§pool_id: StringThe on-chain pool id, 0x-prefixed 32-byte hex.
Unique only within one deployment (chain_id and payment_pool): the
contract derives it as keccak256(owner, ownerPoolNonce) and a fresh
deployment restarts that nonce, so two deployments’ Nth pools share an
id. Read it alongside chain_id and payment_pool, never alone.
chain_id: u64The EIP-712 chain id of the deployment the row was written against.
payment_pool: StringThe PaymentPool the row was written against, EIP-55 checksummed hex.
With chain_id, the only fields that tell a live pool from a same-id
pool on a deployment the node is not configured against — which is what
makes them the fields to check when a tracked id and an on-chain
enumeration appear to agree.
owner: StringThe deposit owner — this node’s operator address, EIP-55 checksummed hex.
token: StringThe ERC-20 the pool is denominated in (USDC per ADR 003), EIP-55 checksummed hex.
deposit_micro_usdc: u64The pool’s escrowed deposit in micro-USDC, as the store recorded it.
The stored value is a U256; the server narrows with
u64::try_from(..).unwrap_or(u64::MAX), so a deposit that somehow
exceeded u64::MAX micro-USDC (~1.8e13 USDC — unreachable for a real
pool) saturates rather than wraps. The same holds for every
U256-derived field on BuyerLaneSnapshot, including
last_bytes_delivered.
lanes: Vec<BuyerLaneSnapshot>Every lane funded from this pool, ordered by (signer, provider). One
pool fans out to every provider the owner pays (ADR 003), so this is
where the pool’s spend is actually visible.
Trait Implementations§
Source§impl Clone for BuyerPoolSnapshot
impl Clone for BuyerPoolSnapshot
Source§impl Debug for BuyerPoolSnapshot
impl Debug for BuyerPoolSnapshot
Source§impl<'de> Deserialize<'de> for BuyerPoolSnapshot
impl<'de> Deserialize<'de> for BuyerPoolSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for BuyerPoolSnapshot
impl RefUnwindSafe for BuyerPoolSnapshot
impl Send for BuyerPoolSnapshot
impl Sync for BuyerPoolSnapshot
impl Unpin for BuyerPoolSnapshot
impl UnsafeUnpin for BuyerPoolSnapshot
impl UnwindSafe for BuyerPoolSnapshot
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<'de, T> BorrowedRpcObject<'de> for 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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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