Skip to content

feat: fee collector#72

Merged
tac0turtle merged 8 commits into
mainfrom
marko/burn_colelctor
Nov 24, 2025
Merged

feat: fee collector#72
tac0turtle merged 8 commits into
mainfrom
marko/burn_colelctor

Conversation

@tac0turtle

Copy link
Copy Markdown
Contributor

Description

This pr adds a burn collector contract to the ev-reth repo. This contract will be used in conjunction with the basefee redirect system if the user would like to send funds to an address on celestia

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Refactoring

Related Issues

Fixes #(issue)

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Testing

Additional Notes

@claude

claude Bot commented Nov 19, 2025

Copy link
Copy Markdown

Claude finished @tac0turtle's task —— View job


Code Review in Progress

Reviewing the fee collector implementation:

  • Analyze FeeVault contract implementation
  • Review test coverage and quality
  • Check security considerations
  • Review GitHub workflow setup
  • Examine documentation
  • Provide comprehensive feedback

@damiannolan damiannolan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great imo!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, this makes sense to me. Looks like exactly what we described when talking about it 👍🏻

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IHypNativeMinter {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can also consider moving this impl to this repo or somewhere else as we spoke about.

I'm happy to do that in a following PR tho if we decide that. Let's wait and see

Comment thread contracts/src/BurnCollector.sol Outdated
) external payable returns (bytes32 messageId);
}

contract BurnCollector {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor nit on naming: is it always the intension that we will unlock the collateral on celestia and burn. Obviously that would require a burn address in celestia via some protocol upgrade.

We could consider just naming this as FeeVault for now, maybe fees could be distributed to various actors to cover things like proving systems in future..etc idk..
This would probably require upgrades to the contract but in that world I could imagine some APIs like FeeVault.unlockAndBurn(...) and FeeVault.unlockAndCredit(...)

@Manav-Aggarwal

Copy link
Copy Markdown
Member

Will this be configurable in ev-reth? I'd guess not all evolve chains would want to send fees to Celestia, correct?

@tac0turtle

Copy link
Copy Markdown
Contributor Author

Will this be configurable in ev-reth? I'd guess not all evolve chains would want to send fees to Celestia, correct?

the basefeesink can set any address as a recipient, if a team would like to use this contract they would deploy it then update the chainspec, deploy it in the alloc section, or define the address of the contract before launch in the chainspec

@damiannolan

Copy link
Copy Markdown
Contributor

or define the address of the contract before launch in the chainspec

Yeah I think you can use something like CREATE2 to get a deterministic address which you could populate in the chainspec before deploying.

@tac0turtle tac0turtle marked this pull request as ready for review November 20, 2025 10:00
@tac0turtle tac0turtle requested a review from a team as a code owner November 20, 2025 10:00
@tac0turtle tac0turtle changed the title feat: burn collector feat: fee collector Nov 20, 2025
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IHypNativeMinter {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just want to point out that this implementation is maintained here rn https://github.com/celestiaorg/hyperlane-ops/tree/main/solidity

@tac0turtle tac0turtle merged commit f1a4d43 into main Nov 24, 2025
16 checks passed
@tac0turtle tac0turtle deleted the marko/burn_colelctor branch November 24, 2025 16:27
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.

4 participants