feat(withdrawer): bridged ERC20 token withdrawals#1149
Merged
Conversation
joroshiba
reviewed
Jun 7, 2024
Member
There was a problem hiding this comment.
nit: add new generated file type locations into .gitattributes file, we should probably do this with the json attribute files as well?
crates/astria-bridge-withdrawer/src/withdrawer/ethereum/watcher.rs
Outdated
Show resolved
Hide resolved
joroshiba
approved these changes
Jun 7, 2024
steezeburger
added a commit
that referenced
this pull request
Jun 10, 2024
* main: fix: ignore RUSTSEC-2021-0139 (#1171) chore(sequencer-relayer)!: remove functionality to restrict relaying blocks to only those proposed by a given validator (#1168) chore(metrics): update `metric_name` macro to handle a collection of names (#1163) fix(bridge-withdrawer): skip linting generated contract code (#1172) fix(core, sequencer): prefix removal source non-refund ics20 packet (#1162) chore(docs): add sequencer-relayer doc to specs (#1126) feat(bridge-withdrawer): sync logic (#1165) chore(withdrawer): replace contracts with `astria-bridge-contracts` submodule (#1164) feat(sequencer)!: implement bridge sudo and withdrawer addresses (#1142) feat(sequencer): implement refund to rollup logic upon ics20 transfer refund (#1161) feat(bridge-withdrawer): bridge withdrawer startup (#1160) feat(core, proto)!: add bech32m addresses (#1124) feat(withdrawer): bridged ERC20 token withdrawals (#1149) feat(sequencer-relayer)!: add chain IDs for sequencer and Celestia to config env vars (#1063) test(bridge-withdrawer): add submitter tests (#1133) chore: bump penumbra deps (#1159) feat(sequencer): implement `bridge/account_last_tx_hash` abci query (#1158) fix(withdrawer): use block subscription in batcher; send to destination_chain_address (#1157) fix(withdrawer): update AstriaWithdrawer to check that withdrawal value is sufficient (#1148) chore(ci): build bridge withdrawer images (#1156)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
implement withdrawals of ERC20 tokens that are of type
AstriaBridgeableERC20(see implemented contract).Background
we want to be able to withdraw ERC20 tokens that are bridged to a rollup.
Changes
AstriaBridgeableERC20which is a standardERC20contract with additional functionality for minting (not used by the withdrawer, implemented/tested here implementAstriaMintableERC20, update deposit tx to support ERC20 mints astria-geth#20) as well as functionality for withdrawingIAstriaWithdrawerwhich is implemented by bothAstriaWithdrawerandAstriaMintableERC20.IAstriaWithdrawer. both native assets and ERC20 withdrawals have the same event signatures, so no additional code was needed for the withdrawer itself.AstriaBridgeableERC20, theASTRIA_BRIDGE_WITHDRAWER_ETHEREUM_CONTRACT_ADDRESSis set to someAstriaMintableERC20, andASTRIA_BRIDGE_WITHDRAWER_ROLLUP_ASSET_DENOMINATIONis set to the rollup asset's denomination as represented on the sequencer. for example, if the asset is represented on the sequencer istransfer/channel-1/usdc, that is the rollup asset denomination. thename/symbolof the ERC20 contract are not relevant.Testing
unit tests
Related Issues
closes #924