Skip to content

flare: add clear-signing descriptors for WNat - #2983

Open
fassko wants to merge 2 commits into
ethereum:masterfrom
fassko:flare-wnat
Open

fassko wants to merge 2 commits into
ethereum:masterfrom
fassko:flare-wnat

Conversation

@fassko

@fassko fassko commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add calldata descriptors for WNat (wrap/unwrap/transfer/delegate) on Flare and Songbird
  • Add full test coverage for both descriptors

Split out of #2982 to keep review scope focused — this half touches no attested descriptors and has no open questions.

Amount fields expect FLR/SGB, which the Sourcify runner already gets right for these chains; the Rust runner needs llbartekll/clear-signing#15 (native-currency table for Flare/Songbird) merged and its pin bumped in .github/actions/run-rust-tests/action.yml before those jobs go green here.

Test plan

  • Verified locally against both the Sourcify and a patched Rust runner (11/11 and 10/10 cases pass)
  • CI descriptor validation

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Clear Signing Tests

Tested b97fa75 · started 2026-09-28 06:56 UTC · finished 2026-09-28 06:57 UTC

📊 Open the test report

Entity Descriptor Case @ethereum-sourcify/clear-signing@0.2.2 llbartekll/clear-signing@0.1.0
flare calldata-RNat-Flare Claim rewards for projects 1 and 2, month 5 - chain 14 ✅ ✅
flare calldata-RNat-Flare Withdraw 1 RNat wrapped to WFLR - chain 14 ✅ ✅
flare calldata-RNat-Flare Withdraw all RNat as native FLR - chain 14 ✅ ✅
flare calldata-RNat-Flare Set reward claim executor - chain 14 ✅ ✅
flare calldata-RNat-Flare Distribute project rewards to two beneficiaries - chain 14 ✅ ✅
flare calldata-WNat-Flare Wrap 1 FLR - chain 14 ✅ ✅
flare calldata-WNat-Flare Wrap 1 FLR to recipient - chain 14 ✅ ✅
flare calldata-WNat-Flare Unwrap 1 WFLR - chain 14 ✅ ✅
flare calldata-WNat-Flare Unwrap 1 WFLR from owner - chain 14 ✅ ✅
flare calldata-WNat-Flare Send 1 WFLR - chain 14 ✅ ✅
flare calldata-WNat-Flare Approve 10 WFLR - chain 14 ✅ ✅
flare calldata-WNat-Flare Delegate 100% FTSO vote power - chain 14 ✅ ✅
flare calldata-WNat-Flare Delegate 1 WFLR explicitly - chain 14 ✅ ✅
flare calldata-WNat-Flare Batch delegate FTSO vote power - chain 14 ✅ ✅
flare calldata-WNat-Flare Undelegate FTSO vote power - chain 14 ✅ ✅
flare calldata-WNat-Flare Undelegate explicit providers - chain 14 ✅ ✅
flare calldata-WNat-Songbird Wrap 1 SGB - chain 19 ✅ ✅
flare calldata-WNat-Songbird Wrap 1 SGB to recipient - chain 19 ✅ ✅
flare calldata-WNat-Songbird Unwrap 1 WSGB - chain 19 ✅ ✅
flare calldata-WNat-Songbird Unwrap 1 WSGB from owner - chain 19 ✅ ✅
flare calldata-WNat-Songbird Send 1 WSGB - chain 19 ✅ ✅
flare calldata-WNat-Songbird Approve 10 WSGB - chain 19 ✅ ✅
flare calldata-WNat-Songbird Delegate 100% FTSO vote power - chain 19 ✅ ✅
flare calldata-WNat-Songbird Delegate 1 WSGB explicitly - chain 19 ✅ ✅
flare calldata-WNat-Songbird Undelegate FTSO vote power - chain 19 ✅ ✅
flare calldata-WNat-Songbird Undelegate explicit providers - chain 19 ✅ ✅

✅ pass · ❌ fail · ⚠️ error · ⏭️ skipped · — not run

📋 View test details

@github-actions

github-actions Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Clear signing recommendations

These are suggestions. They do not block this pull request.

26 format(s) have no interpolatedIntent. A wallet prefers it over intent, because it puts the values of the transaction in the sentence that the signer reads.

  • registry/flare/calldata-RNat-Flare.json — claimRewards(uint256[] _projectIds, uint256 _month)
  • registry/flare/calldata-RNat-Flare.json — withdraw(uint128 _amount, bool _wrap)
  • registry/flare/calldata-RNat-Flare.json — withdrawAll(bool _wrap)
  • registry/flare/calldata-RNat-Flare.json — setClaimExecutors(address[] _executors)
  • registry/flare/calldata-RNat-Flare.json — distributeRewards(uint256 _projectId, uint256 _month, address[] _recipients, uint128[] _amountsWei)
  • registry/flare/calldata-WNat-Flare.json — deposit()
  • registry/flare/calldata-WNat-Flare.json — depositTo(address recipient)
  • registry/flare/calldata-WNat-Flare.json — withdraw(uint256 amount)
  • registry/flare/calldata-WNat-Flare.json — withdrawFrom(address owner, uint256 amount)
  • registry/flare/calldata-WNat-Flare.json — transfer(address recipient, uint256 amount)
  • registry/flare/calldata-WNat-Flare.json — approve(address spender, uint256 amount)
  • registry/flare/calldata-WNat-Flare.json — delegate(address _to, uint256 _bips)
  • registry/flare/calldata-WNat-Flare.json — delegateExplicit(address _to, uint256 _amount)
  • registry/flare/calldata-WNat-Flare.json — batchDelegate(address[] _delegatees, uint256[] _bips)
  • registry/flare/calldata-WNat-Flare.json — undelegateAll()
  • registry/flare/calldata-WNat-Flare.json — undelegateAllExplicit(address[] _delegateAddresses)
  • registry/flare/calldata-WNat-Songbird.json — deposit()
  • registry/flare/calldata-WNat-Songbird.json — depositTo(address recipient)
  • registry/flare/calldata-WNat-Songbird.json — withdraw(uint256 amount)
  • registry/flare/calldata-WNat-Songbird.json — withdrawFrom(address owner, uint256 amount)
  • registry/flare/calldata-WNat-Songbird.json — transfer(address recipient, uint256 amount)
  • registry/flare/calldata-WNat-Songbird.json — approve(address spender, uint256 amount)
  • registry/flare/calldata-WNat-Songbird.json — delegate(address _to, uint256 _bips)
  • registry/flare/calldata-WNat-Songbird.json — delegateExplicit(address _to, uint256 _amount)
  • registry/flare/calldata-WNat-Songbird.json — undelegateAll()
  • registry/flare/calldata-WNat-Songbird.json — undelegateAllExplicit(address[] _delegateAddresses)

fassko and others added 2 commits September 28, 2026 09:56
Introduces calldata descriptors for WNat-Flare and WNat-Songbird,
including contract metadata and transaction formats for wrapping,
unwrapping, and transferring tokens. Test cases validate transaction
intents and expected outputs across both networks.

Amount fields expect FLR/SGB rather than the ETH the Rust test runner
prints today for chains 14/19; llbartekll/clear-signing#15 adds the
missing native-currency entries that make it so.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Covers the user-facing reward flows of the Reward NAT contract:
claiming rewards, withdrawing RNat (optionally wrapped to WFLR),
setting reward claim executors, and distributing project rewards.
Governance/manager-only setup functions (project management,
incentive pool config, timelocked calls) are intentionally excluded,
matching the convention used for WNat.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

descriptors Changes to clear signing descriptors

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

2 participants