pub struct PayeeClaimStatus {
pub subject: PayeeSubject,
pub claim_log: ClaimLogObservation,
}Expand description
Result for
dig.getPayeeRewardClaimStatus
— the claim-side posture of the node answering, as a payee.
§The subject is on the wire, not inferred from the endpoint
subject is required and is the literal "payee". It is
not redundant with the method name: this epic shipped a defect in which a
funder’s distributor-wide total was rendered to a payee as that
operator’s own earnings, overstating by up to 250x, and it passed security
review and a full green CI because no test asserted whose money the number
was. A renderer that reads subject off the payload cannot make that
substitution silently; one that infers the subject from which endpoint it
thinks it called can.
§No monetary amount, at all
There is deliberately no amount field here — not optional, not nullable,
absent. A payload that carries no amount has nothing a UI can misrender as
earnings, and that absence is the whole defence; an Option<u64> would not
be, because the misrendering path is a present number attributed to the wrong
party. A payee that wants its own settled history reads its own past
InitiatePayout spends, which are on chain and are evidence (SPEC §12.5
clause 7). The payout puzzle hash is likewise absent and MUST NOT be added:
it is the payee’s payment identity, and nothing here needs it.
§No #[serde(default)], no skip_serializing_if
Every field is required on the wire in both directions. A defaulting field is
a field a producer can omit and a consumer will invent — which for
subject would restore exactly the inferred-subject hazard
above, and for claim_log would manufacture a
consultation nobody performed.
Fields§
§subject: PayeeSubjectAlways PayeeSubject::Payee; serialises as the literal
"subject": "payee".
claim_log: ClaimLogObservationThis node’s claim log: read, with the count it held, or not read at all.
The count lives inside the observation so it cannot be separated from the
fact that something read the log. The reader derives staleness itself
from the observation’s observed_at and its own clock (SPEC §2.4); no
staleness is pre-computed here.
Trait Implementations§
Source§impl Clone for PayeeClaimStatus
impl Clone for PayeeClaimStatus
Source§fn clone(&self) -> PayeeClaimStatus
fn clone(&self) -> PayeeClaimStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more