It's possible for a completed inflows to a Dusk custody account to be real money and yet still be incorrect to credit to a customer.

It would be my scanner error to be protected against. moonlightHistory means not ‘customer deposits’. It's possible to surface direct transfers, contract payouts, refunds, staking withdrawals, and conversions from Phoenix to moonlight that all added to the same public account.

To get it to accept a direct Moonlight deposit I have to be a much smaller match: the Transfer contract, topic moonlight, reverted set to false, my expected receiver, and a positive value. There are other events where other inflows are received, such as convert, withdraw, and contract_to_account.

The result is not easily detectable. With my custody scanner it will only ask “did this finalised transaction increase this account?” and so a staking withdrawal or contract refund would pass this test and be a customer credit, even if no customer actually deposited it.

I'd rather describe the event before I'd describe the money. If it is real, then Finality tells me so. The event type is a clue to me that indicates what the flow was.

On Dusk, it's not so much who deposited the money as it is a balance increase.

#dusk $DUSK @Dusk