Skip to content

Merge dev into main#37

Merged
mikhaildobs merged 12 commits intomainfrom
dev
Feb 24, 2026
Merged

Merge dev into main#37
mikhaildobs merged 12 commits intomainfrom
dev

Conversation

@mikhaildobs
Copy link
Member

Summary

  • feat: add BaseScan verification step to deploy script
  • fix: deploy via_ir=true contracts using cast send to avoid recompilation
  • fix: deploy via_ir=true bytecode and add --prebuilt workflow
  • feat: add configurable forward-tolerance buffer for future attestation check
  • docs: update deployed contract addresses after redeployment
  • docs: move verifier integration test prompt to docs/integration-test

Test plan

🤖 Generated with Claude Code

claude and others added 12 commits February 22, 2026 09:47
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…n check

On L2s like Base, the sequencer's block.timestamp can lag behind real-world
time, causing valid attestations to be rejected as "future". This adds a
configurable futureAttestationBuffer (default 10 minutes) so that attestations
with issuedAt slightly ahead of block.timestamp are accepted.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: add configurable forward-tolerance buffer for future attestation check
deploy.sh had a bug where step 1 compiled with via_ir=true but steps 2-5
ran forge script with FOUNDRY_PROFILE=ci, which recompiled with via_ir=false
and overwrote the optimized artifacts. Fix FORGE_PROFILE to "default".

Also add a --prebuilt flag for building optimized artifacts on a VPS and
deploying them locally without recompilation:
- `make build-deploy-artifacts` builds via_ir contracts + ci scripts, tarballs out/
- `./script/deploy.sh sepolia --prebuilt` extracts and deploys with --skip-compilation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: deploy via_ir=true bytecode and add --prebuilt workflow
Rewrote deploy.sh to solve the forge via_ir recompilation problem:

- Step 1: Two-step build (ci scripts + via_ir contracts) keeps peak memory
  at ~1.2 GB instead of 16+ GB
- Steps 2 & 5: Deploy contracts via `cast send --create` with pre-built
  bytecode from out/, completely bypassing forge's recompilation
- Steps 3 & 4: Run forge script with ci profile (scripts already compiled)
- Rebuild via_ir artifacts after steps 3-4 for BaseScan verification

Removed the --prebuilt workflow (tarball + VPS build) since local builds
work fine with the two-step approach.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: deploy via_ir=true contracts without OOM recompilation
Adds Step 6 after deployment that automatically verifies all contracts
(CredentialRegistry, DefaultScorer, ScorerFactory) on BaseScan using
forge verify-contract. Requires BASESCAN_API_KEY in .env. Each
verification gracefully handles failures with a warning instead of
aborting the script. Skipped in dry-run mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: add BaseScan verification step to deploy script
Update CredentialRegistry, DefaultScorer, ScorerFactory, and Owner
addresses across all documentation files to reflect the new deployment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
docs: update deployed contract addresses
@mikhaildobs mikhaildobs merged commit 7dc7f30 into main Feb 24, 2026
2 checks passed
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.

2 participants