AnDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/cowprotocol/solver-rewards/llms.txt
Use this file to discover all available pages before exploring further.
Overdraft is created when a solver’s total outgoing native token liability (e.g. negative slippage reimbursements) exceeds its inbound rewards for an accounting period, resulting in a net-negative figure. Rather than skipping the period silently, the pipeline records the deficit on-chain via a dedicated overdraft management contract.
Defined in src/models/overdraft.py.
When overdrafts are created
During payout computation, iftotal_outgoing_eth() < 0 for a solver, a new Overdraft is constructed instead of a Transfer. This signals that the solver owes funds to the protocol rather than the other way around.
Overdraft dataclass
Fields
The AccountingPeriod during which the overdraft was incurred. Used for human-readable logging and the
__str__ output.The
dune_client.types.Address of the solver that is in overdraft.Human-readable name of the solver (used in log messages and string representation).
The absolute value of the deficit in wei (native token atoms). Always a positive integer representing how much the solver owes.
Properties
The overdraft amount converted to native token units by dividing by
10¹⁸.Methods
as_multisend_tx()
Encodes the overdraft as a MultiSendTx that calls addOverdraft(address, uint256) on the overdraft management contract.
0x8Fd67Ea651329fD142D7Cfd8e90406F133F26E8a
| Field | Value |
|---|---|
operation | MultiSendOperation.CALL |
to | 0x8Fd67Ea651329fD142D7Cfd8e90406F133F26E8a |
value | 0 (no ETH sent) |
data | ABI-encoded addOverdraft(address solver, uint256 amount) |
The contract address is read from
OverdraftConfig.from_network() at call time, not stored on the dataclass. The NETWORK environment variable must be set when as_multisend_tx() is called.