Normal behavior:
The company should be able to operate and accept investments even after paying some debt, with company_balance and holding_debt correctly tracked.
Specific issue:
fund_investor() includes this check:
@internal
def fund_investor():
@> assert self.company_balance > self.holding_debt, "Company is insolvent!!!"
If holding_debt exceeds company_balance at any point (for example, after long unpaid holding costs), investors are permanently blocked from contributing more ETH — even if the owner later injects funds. The logic does not allow recovery unless debt is manually cleared. This can freeze funding and halt company operations.
Likelihood:
Medium — Only occurs when accumulated holding_debt exceeds balance (long-term storage costs or delayed owner payments).
Impact:
Medium — Investors are unable to inject funds; share issuance and liquidity flows are blocked, potentially locking the company in a non-functional state.
Explanation:
Once holding_debt > company_balance, all investor funding attempts fail due to the assert in fund_investor(). Even small contributions are blocked, effectively freezing investment flows.
Explanation:
Instead of outright rejecting funding when debt exceeds balance, compute net worth and allow investors to buy shares proportional to remaining solvency. This avoids permanently blocking investors while maintaining accounting accuracy.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.