Repository navigation
Deploy sysio.kicker in the cluster bootstrap, with a kick flow - #122
Merged
Merged
Conversation
valthon
force-pushed
the
fix/sysio-670-consumers
branch
from
October 10, 2026 22:44
f258cc5 to
e3d76da
Compare
valthon
force-pushed
the
feature/sysio-kicker
branch
from
October 10, 2026 23:03
ccf0c67 to
1e5d56d
Compare
valthon
marked this pull request as ready for review
October 12, 2026 15:17
valthon
force-pushed
the
feature/sysio-kicker
branch
3 times, most recently
from
October 20, 2026 17:59
cdf8d9a to
0c78e9a
Compare
valthon
force-pushed
the
feature/sysio-kicker
branch
2 times, most recently
from
October 26, 2026 22:09
305c928 to
7e637c2
Compare
LIQ gifts need a privileged treasury draw and governance configuration before any keeper can pay. Deploy sysio.kicker after emissions and shadow setup, verify its privilege, and register pools only with mock yield pools. Configure a one-million-WIRE budget, a 60-second cadence, a one-day TWAP window, the contract's 5,000-bps spot-deviation guard and the mandatory 1,000-WIRE daily ceiling. Expose all five typed kicker actions with governance or explicit keeper authorization. Share exact asset-unit parsing across the flow substrate, LIQ yield and syndication tools and LCO imports. Ship bootstrap ordering, configuration, privilege, authorization, action failure and asset precision tests with the implementation. Co-Authored-By: Claude Opus 5.5 <[email protected]> Co-Authored-By: Codex CLI (gpt via ChatGPT) <[email protected]>
Verify manual and automatic kicker payments at irreversibility against independent TWAP, capped accrual, partial-clock and ledger oracles. Size gifts on min(supply_snapshot, current supply), distribute over current supply, checkpoint full payments and retain priced supply on partials. Exercise governance refusals, interval and observation gates, budget and treasury shortfalls, daily caps, zero supply and atomic rollback. Hold automatic kicks between the zero-supply and zero-snapshot probes, then restore the original configuration atomically with the checkpoint. This keeps the zero snapshot available across finality and the one-second wait. Funding and manual payment share the next mature window. Verify a saturated below-minimum gift checkpoints only when the same interval at the same TWAP on current supply reaches the minimum. Cover growth, burns, zero snapshots, inclusive saturation and price dips. Probe crank capability in the Report, isolate a one-unit partial payment and locate it in an irreversible block. Reconstruct its microsecond clock and settled observation, check the exhausted cap with UTC rollover recovery, and restore governance and the remaining budget less payments. Keep controlled-clock overflow and rollover contract cases in sysio. Test receipt inclusion, ledgers, restoration, cancellation and capability alongside the flow. Every write remains an explicit Report Step. Co-Authored-By: Claude Opus 5.5 <[email protected]> Co-Authored-By: Codex CLI (gpt via ChatGPT) <[email protected]>
valthon
force-pushed
the
feature/sysio-kicker
branch
from
October 27, 2026 20:32
7e637c2 to
0cdf829
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Deploys and exercises the new
sysio.kickercontract from Wire-Network/wire-sysio#675 on the local cluster. CI needs an@wireio/sdk-corerelease carrying the kicker types (Wire-Network/wire-libraries-ts#106); until it exists, CI cannot install them and stays red.1.
c70884c3Deploy and configure sysio.kickersysio.kickeris a system account. AKickerphase after the emissions and shadow setup deploys it, verifies its privilege, and callssetconfig: a 1,000,000 WIRE budget, a 60 smin_interval_sec, a one-daytwap_window_sec, a 5,000 bpsmax_spot_deviation_bps(the contract default,RegistrySteps.KickerMaxSpotDeviationBps), and the mandatory 1,000 WIRE daily ceiling per pool.KickerPoolsphase registers LIQETH and LIQSOL pools only when mock LIQ pools are enabled.setconfig,addpool,setpool,rmpool,kick), with governance or explicit keeper authorization, and unit tests.cluster-tool/src/utils/assetUtils.ts. Every former copy uses it: the flow substrate, the LIQ yield, syndication challenge and rate-limit flows,ProducerCollateralSteps,WireSyndicationTool(whose ownassetUnitsfrom Underwrite syndication from the batch operators: plugin flow and cap flow #127 is removed) andWireClient.getWireBalance.2.
0cdf829aVerify kicker gifts and failure paths — new packageflow-liq-kickergifted_total,yieldidx, the treasury.rmpooland re-adding, zero supply, and atomic rollback. Configuration and holdings are restored and checked.twap_window_secto its 60 s floor and needs three 60 s maturity windows: the shared one, the isolated crank fixture's, and the one the crank payment restarts (every payment, partial included, restarts the TWAP observation) before the cap probe.spot_deviationclear with spot inside the configured guard of the paid TWAP; invalid governance now includes spot-guard values 0 and 10001. The flow never trips the guard itself; #675'sspot_deviation_threshold_is_inclusiveandpump_straddling_a_checkpoint_funds_no_payoutcover that branch.Review: an adversarial Codex review found 7 issues (crank finality, the multi-payment oracle, unbounded stabilization, coverage, the probe outside a Step, a duplicated helper, the shared logger). Three fix rounds, each re-reviewed, fixed them plus the issues the re-reviews raised (a stale-balance treasury race, a masked cap check, a UTC-midnight flake, empty-reserve pricing, a third window, if/else dispatch). The last re-review returned no findings.
Rebased onto
masterb883fe48(after #155 and #157). The conflicts there were theutils/index.tsbarrel (master'sportRangeUtils.jsexport kept besideassetUtils.js) and #157's newSyndContractStepstest, which now imports the sharedassetUnitsfrom@wireio/cluster-tool/utilsinstead ofWireSyndicationTool.assetUnits. Earlier, ontoc7eada67: The one textual conflict wastsconfig.json(master'sflow-lco-importreference kept,flow-liq-kickeradded); the integration uses master'sConstants.SHADOW_LIQ_TOKEN_PAIRSand the sharedassetUnitsparser. Updated for #675's kicker at959454a660: gifts are sized onmin(kick_pool.supply_snapshot, current LIQ supply), so the flow's accrual oracle and scenario now model the checkpoints (addpool and every full payment checkpoint the current supply; a partial payment keeps the priced supply; a zero snapshot under a nonzero supply only checkpoints; the saturated below-minimum reset), with unit coverage for supply growth, burns and resets.Validation (local, node 24.20, sdk-core linked from
wire-libraries-tsmaster6242ad0, i.e. #106 and #127 merged):b883fe48: per-commit gate atc70884c3and0cdf829a, each in a clean worktree under the platform root: install, build, lint,test:ci— RC 0 at both (pr-ready verdict pass).Earlier, on the pre-rebase SHAs:
430a9392,7e637c29), each in a clean worktree: install, build, lint, test — RC 0 at both. The commit hooks ran 474/474 Jest suites, 4,829/4,829 tests and the 89flow-liq-kickerunit tests.UNVERIFIED: the flow itself has not been run against a cluster since the fix rounds. Its previous live run (215/215 steps) predates the TWAP pricing, the configurable window and the new failure-path coverage. Running it needs a nodeop and contracts built from #675 at
959454a660.🤖 Generated with Claude Code