Spoke-side Solidity for tokenpost (Foundry): the LayerZero OApp + verdict receiver that gate token issuance on a GenLayer consensus verdict, plus a pump.fun-style bonding-curve launchpad (virtual-reserves constant-product curve, fair-launch cloned ERC-20s, gated factory, DEX-graduation adapter).
src/ClaimLauncher.sol— LayerZero OApp.submitClaimsends a claim to GenLayer; on aVERIFIEDverdict it mints via the factory.src/VerdictReceiver.sol— receives the GenLayer verdict and dispatchesprocessBridgeMessageto the launcher (GenLayer's dispatch-on-receive pattern; LZlzReceive+ authorized-relayerdeliverDirect).src/TokenFactory.sol— gated minter; clones one ERC-20 per claim, mints only for the launcher.src/TokenpostToken.sol— cloned ERC-20 + bonding curve + fees + graduation.src/BondingCurveMath.sol— constant-product curve math (internal library).src/interfaces/IDexAdapter.sol,src/adapters/UniswapV4Adapter.sol— graduation target.
forge install OpenZeppelin/openzeppelin-contracts
forge install OpenZeppelin/openzeppelin-contracts-upgradeable
forge build
forge test -vvDependencies live in lib/ (gitignored) — reinstall with the forge install commands above.
Deploy to Base Sepolia via script/Deploy.s.sol (see deploying-contracts-on-base).
Live addresses: deployments/base-sepolia.json (claimLoop).