Pay at a rate 26 hours old
The debtor pays the endorsed debt, but the rate feed hasn't updated for 26 hours.
Rule: the contract must refuse this
Simulated: Block time moved 26 h forward; no new feed round
Every attempt below runs against the live Setoff contract on Arc mainnet as a read-only call. Nothing is signed and nothing is spent. The contract answers with the exact reason it refuses, decoded from its own revert data. They use real records on the contract: debt 0001, already paid; debt 0009, endorsed and unpaid; and cycle 0001, settled, with debt 0003, which it netted.
The debtor pays the endorsed debt, but the rate feed hasn't updated for 26 hours.
Rule: the contract must refuse this
Simulated: Block time moved 26 h forward; no new feed round
Ask the contract to convert EUR 1.00 at a rate of −0.00000005.
Rule: the contract must refuse this
The debtor pays the endorsed debt exactly what the fixing says it costs.
Rule: the contract must accept this
The debtor sends the amount due minus 10⁻¹⁸ USDC.
Rule: the contract must refuse this
A stranger tries to settle the endorsed debt on the debtor's behalf.
Rule: the contract must refuse this
Simulated: The stranger holds 100 USDC
The debtor of a debt that's already paid sends 1 USDC to pay it again.
Rule: the contract must refuse this
Simulated: The debtor holds 100 USDC, so the node can't refuse it before the contract does
A stranger tries to endorse a debt on the debtor's behalf.
Rule: the contract must refuse this
The creditor tries to withdraw a debt after the debtor has signed for it.
Rule: the contract must refuse this
A stranger calls withdraw on the contract.
Rule: the contract must refuse this
Record a debt where the creditor and the debtor are the same address.
Rule: the contract must refuse this
Record a debt in GBP, which has no Chainlink feed on this contract.
Rule: the contract must refuse this
A stranger bills the debtor EUR 1.00. It would become a proposal and nothing more.
Rule: the contract must accept this
Anyone calls settle on a cycle that has already settled, to credit its creditors again.
Rule: the contract must refuse this
Anyone tries to void a settled cycle, to claw its deposits back.
Rule: the contract must refuse this
Someone sends 1 USDC into a cycle that has already settled.
Rule: the contract must refuse this
Simulated: The sender holds 100 USDC
The debtor of a debt the cycle already netted tries to pay it on its own.
Rule: the contract must refuse this
Simulated: The debtor holds 100 USDC
Open a cycle whose funding deadline is five minutes after its cutoff: too short for anyone to fund.
Rule: the contract must refuse this