Skip to content

chore: add mainnet deploy script - #22

Merged
sainathr19 merged 1 commit into
azeemshaik025:mainfrom
sainathr19:chore/mainnet-deploy-script
Aug 19, 2026
Merged

chore: add mainnet deploy script#22
sainathr19 merged 1 commit into
azeemshaik025:mainfrom
sainathr19:chore/mainnet-deploy-script

Conversation

@sainathr19

Copy link
Copy Markdown
Collaborator

Summary

No mainnet deploy script existed — HANDOFF.md's M4 steps were manual commands. Adds keeper/deploy-mainnet.mjs: declares + deploys EkuboAdapter then Iceberg using the same mainnet constants test_ekubo_fork.cairo already verified against real Ekubo liquidity.

Direction fixed to in_token=ETH, out_token=USDC (scheduled exit) — the exact direction the fork test exercises, so this carries no new, previously-untested behavior. INTERVAL_SECONDS defaults to 300 (5 min, short for initial testing) — worth knowing it's permanent once deployed, same as keeper/pool_address/swap_router (no setter exists on any of them).

Safety:

  • Dry-run by default — prints exactly what it would deploy, touches nothing. Needs --yes to actually declare+deploy and spend gas.
  • Reads in_token/out_token back from the deployed contract afterward and asserts they match intent, rather than trusting constructor calldata ordering blindly.
  • DEPLOYER_PRIVATE_KEY only ever read from env / keeper/.env (already gitignored).
  • mainnet-deployment.json (this script's output) gitignored to match the existing devnet-deployment.json convention — the durable public record belongs in strk20.json, not this handoff file.

Test plan

  • node --check passes
  • Dry-run path exercised end to end with dummy env values — prints the plan, exits 0, no network call made
  • Not run for real — needs an actual funded deployer account, not available in this session. Whoever runs this for real should read the printed plan carefully before passing --yes.

No mainnet deploy script existed — HANDOFF.md's M4 steps were manual
commands. Adds keeper/deploy-mainnet.mjs: declares + deploys
EkuboAdapter then Iceberg using the same mainnet constants
test_ekubo_fork.cairo already verified against real Ekubo liquidity
(pool, Ekubo router, ETH/USDC pool key).

Direction is fixed to in_token=ETH, out_token=USDC (scheduled exit) —
the exact direction the fork test exercises, so the deploy carries no
new, previously-untested behavior.

Safety:
- Dry-run by default (prints the plan, touches nothing); needs --yes
  to actually declare+deploy and spend gas.
- Reads deployed in_token/out_token back from the contract after
  deploy and asserts they match intent, rather than trusting
  constructor calldata ordering blindly.
- DEPLOYER_PRIVATE_KEY only ever read from env / keeper/.env, which
  is already gitignored.

Also: mainnet-deployment.json (this script's output) gitignored to
match the existing devnet-deployment.json convention — the durable
public record of addresses belongs in strk20.json, not this
script-to-script handoff file.

Verified: node --check passes, dry-run path exercised end to end with
dummy env values (prints the plan, exits 0, no network touched). Not
run for real — needs an actual funded deployer account, which isn't
available in this session.
@sainathr19
sainathr19 merged commit db9c7b9 into azeemshaik025:main Aug 19, 2026
3 checks passed
@sainathr19
sainathr19 deleted the chore/mainnet-deploy-script branch August 19, 2026 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant