Everstrat Docs home
Changelog

Automation updates

Changes to queue processing and strategy automation.

Smaller withdrawals and a settlement reserve

The strategy keeper can withdraw as little as 0.0001 ETH, and targets a 0.05 ETH reserve in Controller for settlement.

Details & sources

Smaller withdrawal threshold and Controller reserve

Executed on mainnet. Changed minWithdrawETH from 0.01 to 0.0001 ETH and controllerReserveETH from 0 to 0.05 ETH. These settings allow smaller strategy withdrawals and retain a Controller reserve for queue settlement.

Evidence: governance 016. The threshold call executed at block 26,061,390, 11:40:59 UTC; the reserve call at block 26,061,396, 11:42:11 UTC.

Gas budgets depend on the job

W2’s new fee policy gives each action its own budget and increases urgency as priced exits approach expiry.

  • Withdrawals and rebalances use deadline-aware ceilings.
  • Deposits, harvests, and liquidity top-ups use amount-based budgets.
  • Operators must redeploy the function and recreate its trigger.
Details & sources

Per-action W2 gas-fee policy

Merged. Replaced one flat fee policy with action-specific ceilings. Withdrawal shortfalls use a deadline ramp, rebalances can inherit that urgency, sync uses a lower ceiling, and deposit, harvest, and exit-liquidity actions use an amount-based budget. The function continues to forward the on-chain checker's payload bytes. Invalid fee inputs produce configuration-error logs.

Source: keepers #30. Operator action: deploy the new function and recreate the trigger with its updated inputs. The merge date does not establish when that trigger became active.

Skip rebalance batches that can only revert

W2 skips a rebalance when every selected strategy is non-calm, avoiding guaranteed no-op work.

  • Read failures are logged separately and emit no intent.
  • Other actions keep the on-chain checker’s exact payload.
Details & sources

Suppress guaranteed no-op rebalance batches

Merged. W2 suppresses a Rebalance intent when every selected strategy is non-calm and the batch would therefore only revert. Read failures emit no intent and are logged separately. Other actions retain the checker's exact payload, and ambiguous payloads retain the prior relay behavior. This is an off-chain mitigation for static strategies with the older health predicate.

Source: keepers #28. Operator action: redeploy the function and recreate its trigger against the new CID. The subsequent strategy health-predicate fix is a separate implementation change.

Mimic is authorized to call both executors

The Mimic smart account is added to the queue and strategy executor allowlists.

  • This authorizes executor calls without granting the account a Registry keeper role.
  • Authorization alone does not establish continuous off-chain task execution.
Details & sources

Mimic caller authorized on both executors

Executed on mainnet. Added the Mimic smart account to the QueueKeeperExecutor and StrategyKeeperExecutor caller allowlists. The smart account can call executor perform(); it does not itself acquire Registry's KEEPER role. This authorization does not prove ongoing task availability or a particular function CID.

Evidence: governance 012. The queue executor call executed at block 25,997,085, 12:02:59 UTC; the strategy executor call at block 25,997,092, 12:04:23 UTC.

Queue and strategy keepers move to Mimic

W1 and W2 are rebuilt as Mimic functions. W1 handles queue decisions; W2 relays the contract checker’s instructions.

  • Timestamp conversion, missing-map reads, and payload guards are fixed.
  • The old W4 watcher and Go plane are removed from the final merge.
Details & sources

Mimic W1/W2 functions

Merged. Replaced the earlier CRE/Gelato implementations with Mimic functions compiled from AssemblyScript to WASM. W1 retains queue decisions and cross-checks; W2 relays the contract checker's payload. Fixed millisecond/second conversion, missing-map access, AMM pause checks, and payload-length enforcement. Removed the old W4 freeze-watch and Go plane from the final merge.

Sources: keepers #24, W4 removal 24534c3, and W1 guards 7c58f2f. The final merged tree supersedes the PR description's earlier statement that W4 remained. The on-chain executors were replaced in contracts #46; caller authorization followed on September 17.

Queue scans spend their read budget on useful work

Historical CRE keepers skip unusable queue candidates, avoid pricing after a truncated scan, and split large user-list reads into chunks.

Details & sources

CRE-era queue selection and read-budget fixes

Merged. W1 skips expired candidates and continues to later processable batches instead of spending the read budget on an unusable head. A truncated request scan blocks new pricing. W2 excludes unpriced/expired batches from its needs scan and chunks large user-list reads. These entries describe the historical CRE implementation before the Mimic migration.

Sources: keepers #21 and #22.

The first keeper implementation reaches main

W1 queue decisions, W2 strategy decisions, and the historical W4 watcher are merged from staging. This CRE-era implementation is later replaced by Mimic.

Details & sources

Initial keeper implementation merged to main

Merged. Brought the staging keeper implementation into main, including W1 queue decisions, W2 strategy decisions, shared report encoding, and the historical read-only W4 watcher. It included alignment with priced-liability and deposit-weight semantics from the contracts. This CRE-era implementation was superseded on August 26.

Source: keepers #18, with implementation commits 1e919d2, 3dd571e, and e98cf81.

About this history

Dates are UTC. Merged entries describe source changes; a new WASM build or changed trigger input requires deployment and trigger configuration before it affects live automation. Executed on mainnet confirms an on-chain configuration change, not uninterrupted off-chain task execution.

Last updated on