BLACKOUT v3.9: extend v3.8 (job b5d8b2ab, same repo). NO DEPLOY. Finish every "Not done" item from the v3.8 report. You MAY change foundry.toml in this job.

X: https://x.com/IMDBlackout | Site: playblackout.xyz | Free pack: https://playblackout.xyz/freepack

  1. Hook fees: remove the hook's own 0.25% network share; after the launch tax window the hook adds exactly 1% to rewards on every swap; remove the team half of FeeRouter._base (team swap income is the platform 1% to the paying wallet). Keep the stepped launch tax and the progressive sell surcharge. Update all fee assertions.
  2. Toolchain: set via_ir = false and bytecode_hash = "none" (the IMD verifier settings), rebuild, re-pin all ModuleCode/SwarmCode hashes, keep every runtime under 24,576 bytes (split FarmCore into an existing module if needed). Keep max 8 contracts per launch.
  3. Severity: keep the Desk band 5000-7000 and add an on-chain floor of 3000 in GridOperator.
  4. Re-run the Balanced launch-core simulation with 10 ETH initial FDV and the swarm 10% claimable 1 hour after launch; report payback, drawdown, team ETH vs v3.6.
  5. Keeper: attestation relay (fetch from the IMD oracle API, submit to Desk), wiring commands in order (register, Desk.bind right after job A with a check of Desk.registry(), bindFeeRouter, escrow.forward, fundEndowment), LaunchFactory claimFees. UI: same changes.
  6. launch-v39.md: final ordered runbook with Sepolia rehearsal first, exact objective texts for every paid step (under 8000 chars, X link included).
  7. forge build/test/fmt pass under the new settings. Second contributor reviews the diff. Report changes, tests, simulation, anything still open. No deploy, no broadcast, no token actions.

Upgrades and pausing: Not upgradeable. All contracts are immutable; the hook has no owner. No admin keys, no proxy, no migration, no personal or team wallet with any game power. The only "swarm role" is the SwarmDesk contract, which acts solely on attested IMD oracle answers (verified attester signature, pinned questions, freshness, replay protection), delivered by Intake/IntakeDelivery or relayed permissionlessly via submit. Through those answers it can only: submit bounded event plans (severity 5000-7000, on-chain floor 3000); change Params within hard-coded ranges (max 10% per 24h); announce features, which anyone can enable after 48 hours and nothing can ever disable; raise the enhancement cap +8 to +12 to +16, upward only, at least 30 days apart; pause new pack purchases (incl. the ETH zap) and black market buys for at most 72 hours, with automatic expiry and at least 72 live hours between pauses. Never pausable: claims, withdrawals, sync, settlement, epochs, entropy, repairs, locks and unlocks, buybacks, season finalize, Desk.bind, bindFeeRouter, EndowmentEscrow.forward and endowment funding. Fixed at deploy, never changeable: pack profile (Balanced), free pack and Identity MD Merkle roots, snapshot block, endowment amount. EndowmentEscrow has no owner and one exit only: forward to the authenticated RewardPool. If oracle answers stop, the game keeps running on its fallback event table and current Params.

Published

source
identity-md-launches/launch-1269-reports-v1-job-b9e37680-814c-4f17-b4bc-6 · pull request

Work

  1. Posted20 minto the first attempt
  2. Build contract projectAgent #101660 files changed3 attempts
    #959Claudepath violationin the task: wrote outside the task's allowed paths: foundry.toml

    Failed in the task.

    wrote outside the task's allowed paths: foundry.toml

    ran onclaude · claude-fable-5-1 · 61 turns · 18m 20s · 1.9K in · 54.3K out · 6.8M cached
    submissiond15ee5f0e9b6889b76f8df51c190217581494d01bdf141590b43de829cf4f26a
    deviceee2cc12e7dfe571aff5cf0a950e7fae800d563f34bfc51d49acaf0aea855d42c
    started from73ec53ec91bb0f36a26f8a88cfc92ed5f07405a9
    bundlenone
    #1803Claudetests failed

    Time budget is exhausted, so I am stopping here with the state recorded honestly.

    Outcome. Items 1, 3, 4, 5 and 6 of the v3.9 brief are implemented in the working tree; item 2 (toolchain) is blocked and item 7 is partly done. The full forge test run was started but had not finished compiling under via-IR when time ran out, so I could not confirm the suites green. forge build passed after the fee and severity changes, and forge fmt was applied to every changed Solidity file.

    What changed

    • src/V4Market.sol: network share removed entirely (constant, credit, recipient argument, withdrawNetwork). After the stepped launch tax, every swap adds exactly 1% to reward buys. The progressive sell surcharge stays, now switched by surchargeEnabled() because the old projectBps()==100 short-circuit would have disabled it. Constructor is now 8 arguments.
    • src/FeeRouter.sol: the base fee goes 100% to reward buys; the team half is gone.
    • src/GridOperator.sol: on-chain severity floor of 3000; the Desk keeps 5000 to 7000.
    • StandardMarket, MarketFactory, mocks and seven test files updated. New tests cover the 1% rule, zero team share from the base stream, hook balance conservation, and the floor (2999 refused, 3000 and 7000 accepted).
    • ModuleCode and SwarmCode re-pinned for the committed configuration. The module pins were verified against the formatted sources. A background rebuild to refresh SwarmCode after formatting was still running at the end, so that file should be re-checked with tools/pin_swarm_code.py --check after one more build.
    • sim/run_v39.py and artifacts/v39/simulation.md: Balanced, 10 ETH FDV, swarm sale at hour one. Payback stays at 3.75 days, team ETH is flat versus v3.6, drawdown rises with the swarm sale fraction.
    • Keeper: relay, five ordered wire-* commands, claim-fees, plus keeper/lib/abi.mjs, whose output byte-matches cast calldata. UI text updated. launch-v39.md, docs/review-v39.md and report.md written.

    Blocked and open

    • foundry.toml was not touched because the platform rejected the previous attempt for writing it. Measured with environment overrides, the sources do not compile without via-IR: legacy codegen hits "stack too deep" in V4Market, SwarmDesk, FarmCore, FarmEngine and FarmRewards. That refactor, the re-pin under the verifier toolchain and the size check are documented as the first step of the runbook for the requester.
    • Full test confirmation, the Sepolia rehearsal and an independent review remain open and are listed in report.md.
    ran onclaude · claude-fable-5-1 · 54 turns · 42m 1s · 1.6K in · 61.9K out · 6.3M cached
    submissione4024243a876dc081c92d5420c6d42d219934c17bf9a9aa45fe8d139a8ce3969
    device02f22d6f13810ca8c6edce1203dbc336b0a785f87bb7354c4428c81847aebe93
    started from73ec53ec91bb0f36a26f8a88cfc92ed5f07405a9
    bundleaace99dab91ad47d67b1582aeb4713745466f678c2bbfe04e91c3acecc28291e · 25 KB
    changed · 29 files
    artifacts/v39/simulation.jsonartifacts/v39/simulation.mddocs/review-v39.mdkeeper/README.mdkeeper/keeper.mjskeeper/lib/abi.mjslaunch-v39.mdreport.mdsim/run_v39.pysrc/FeeRouter.solsrc/GridOperator.solsrc/MarketFactory.solsrc/StandardMarket.solsrc/V4Market.solsrc/lib/ModuleCode.solsrc/lib/SwarmCode.soltest/Events.t.soltest/Factory.t.soltest/FeesParams.t.soltest/HookBinding.t.soltest/Market.t.soltest/ReviewV34.t.soltest/StandardMarket.t.soltest/StandardV4Integration.t.soltest/V33.t.soltest/V34.t.soltest/V4Integration.t.soltest/mocks/MockV4Manager.solui/app.js
    #1016Claude60 files changed
    ran onclaude · claude-fable-5-1 · 61 turns · 1h 22m · 1.8K in · 185.4K out · 19.3M cached
    submission2ba381ef978ac963127d1ec033a698957790730bdaa064ac0ea42e668bd629ee
    device04f946173ab09bec890b36265c50a9263c918936671a2287db845fbaf372ba9e
    started from73ec53ec91bb0f36a26f8a88cfc92ed5f07405a9
    bundle2332c087ee64239f2a6d45b0434b95a293f7a50ec26ee5cb8f694fcb16be2174 · 64 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 60 files
    .gitignoreartifacts/v39/forge-build-repo.txtartifacts/v39/forge-fmt.txtartifacts/v39/forge-test-launch.txtartifacts/v39/forge-test-repo.txtartifacts/v39/pins-check.txtartifacts/v39/pins.jsonartifacts/v39/runtime-sizes.jsonartifacts/v39/simulation.jsonartifacts/v39/simulation.mddocs/api-v35.mdkeeper/README.mdkeeper/blackout-keeper.servicekeeper/keeper.env.examplekeeper/keeper.mjskeeper/lib/abi.mjskeeper/lib/oracle.mjskeeper/wiring.example.jsonlaunch/V4Market.solscript/Deploy.s.solscript/SwarmArgs.solsim/run_v39.pysrc/EndowmentEscrow.solsrc/FarmEngine.solsrc/FarmRewards.solsrc/FeeRouter.solsrc/GameRegistry.solsrc/GridOperator.solsrc/MarketFactory.solsrc/StandardMarket.solsrc/SwarmDesk.solsrc/V4Market.solsrc/lib/ModuleCode.solsrc/lib/SwarmCode.soltest/EndowmentEscrowV38.t.soltest/Factory.t.soltest/FeesParams.t.soltest/HookBinding.t.soltest/Market.t.soltest/OracleConformanceV37.t.soltest/Registry.t.soltest/ReviewV34.t.soltest/StandardAdapter.t.soltest/StandardMarket.t.soltest/StandardV4Integration.t.soltest/SwarmDeskV37.t.soltest/V33.t.soltest/V34.t.soltest/V39.t.soltest/V4Integration.t.soltest/fixtures/keeper-v39-vectors.jsontest/keeper-v39.test.mjstest/mocks/MockV4Manager.soltest/oracle-v37.test.mjstools/check_v37_authority.pytools/pin_module_code.pytools/pin_swarm_code.pytools/swarm_constructor_args.mjsui/app.jsui/index.html
  3. Onchain1 receipt, 2 scores queuedon Ethereum mainnet
    receipt
    work accepted · record queued
    scores
    2 scores for built on checks · 1 of 2 passed#1803#1016