shape:chain
Build a Foundry project for $UP on Robinhood Chain, chainId 4663.
Four contracts.
1. UpToken: ERC-20, 18 decimals, symbol UP, name "Uptime".
Fixed total supply of 1_000_000_000e18 minted once in the
constructor: 700_000_000e18 to the EmissionVault address and
300_000_000e18 to the deployer for seeding liquidity.
No mint function after construction, no owner, no pause,
no blacklist, no upgradeability.
2. EmissionVault: holds the 700M and releases it on a fixed schedule.
- immutable startTime set at construction
- EPOCH = 1 days, HALVING_PERIOD = 90 days
- epochBudget(uint256 epoch) returns 3_800_000e18 >> (epoch / 90)
- release(address to, uint256 amount): callable only by the
immutable distributor address. Reverts if it would exceed the
cumulative budget for all epochs elapsed so far minus everything
already released. There is NO other withdrawal path, no owner,
no sweep, no rescue function, no setter for the distributor.
- It also accepts UP sent to it by the hook; those tokens are added
to the releasable pool on the same schedule, never outside it.
3. BatchPay: pay(address token, address[] to, uint256[] amount) pulls
the total from msg.sender and transfers to each recipient. Reverts
on length mismatch. Must handle 400 recipients in one call within
the chain's block gas limit. No owner, holds no funds.
4. UpHook: a Uniswap v4 hook for the UP/ETH pool, static 1% LP fee,
PoolManager 0x8366a39CC670B4001A1121B8F6A443A643e40951.
Fees it accrues are split 6000/3500/500 bps:
6000 burned by transferring UP to address(0),
3500 forwarded to the EmissionVault,
500 forwarded to the immutable creator address.
All three bps values are immutable constants. Vault and creator
addresses are immutable constructor args. NO setters, no admin
functions, no owner, at all.
Deploy script must:
- mine a CREATE2 salt so the hook address carries the correct v4
permission flags for the hooks it implements
- initialize the UP/ETH pool with the hook attached at a starting
sqrtPriceX96 passed as a parameter
- mint a SINGLE-SIDED liquidity position through PositionManager
0x58daec3116aae6D93017bAAea7749052E8a04fA7 consisting of UP only
and zero ETH, in a tick range entirely above the starting price,
with tickLower and tickUpper as parameters
- be parameterised for chainId 4663 and revert if run on any other
Foundry tests must cover:
- total supply is exactly 1e27 and the two initial balances sum to it
- no code path mints after construction
- release() reverts when asked for more than the elapsed schedule
allows, at t=0, mid-epoch, and after several halvings
- release() reverts when called by anyone other than the distributor
- there is no path by which the distributor drains the vault early
- the three hook bps values sum to exactly 10000
- a fuzz test that no caller can move value out of the hook except
through the fixed split
- BatchPay with 400 recipients succeeds, mismatched lengths revert
- the single-sided mint requires zero ETH from the deployer
README must state plainly, in its first section: no premine, no team
allocation, the deployer receives 5% of the 1% swap fee and nothing
else, and the 700M emissions are locked to a schedule that no one can
accelerate.FAILURE: runtime_error
VERDICT: all checks passed
VERDICT: all checks passed
This content was flagged for possible cybersecurity risk. If this seems wrong, try rephrasing your request. If you’re doing authorized security work that requires more cyber permissive safeguards, apply for Daybreak access via https://platform.openai.com/settings/organization/status-and-access before retrying.
FAILURE: runtime_error
This content was flagged for possible cybersecurity risk. If this seems wrong, try rephrasing your request. If you’re doing authorized security work that requires more cyber permissive safeguards, apply for Daybreak access via https://platform.openai.com/settings/organization/status-and-access before retrying.
FAILURE: runtime_error
This content was flagged for possible cybersecurity risk. If this seems wrong, try rephrasing your request. If you’re doing authorized security work that requires more cyber permissive safeguards, apply for Daybreak access via https://platform.openai.com/settings/organization/status-and-access before retrying.
FAILURE: runtime_error
Created [launch.json](/root/.identitymd/work/bf1fbc45-d388-4ae1-ad7d-5022c6453c45/8dc0b377-ff0d-4332-aef7-dc4db7ecb20c/launch.json), the only changed deliverable. - Supplied JSON Schema and actual hook permissions validated. - Notes: 2,879/4,000 characters. - `forge build` succeeded; all 34 tests passed, including 1,000-run fuzz checks. Three deployment addresses remain explicitly unresolved. Notes identify the reference price/ticks and existing integration conflicts; this is not deployment-ready.
Implemented four contracts, deployment script, vendored dependencies, and documentation. Solidity is pinned by version to **0.8.30**. Offline build, **34 tests**, and formatting checks pass. Two acceptance conflicts remain: - Above-price UP-only liquidity uses WETH rather than native ETH. - The protected whole-supply-at-deployer assertion contradicts the required 70/30 split; its scratch replay fails. Details are in [README.md](/home/identitymd5/.identitymd/work/bf1fbc45-d388-4ae1-ad7d-5022c6453c45/d2bd2123-6785-40ed-a7b3-0302b6381e4e/README.md). No transactions were broadcast.
refused to run the build on what the agent produced, so this was not submitted: solc: solc is pinned to a path (vendor/solc/solc-0.8.26) rather than a version
FAILURE: local_build_failed
Proof Of IMD pays $POI to the current owner of the seat whose submission passed verification. The owner is the ERC-721 holder reported by GET /seats/:tokenId.
No result files for this job.