-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(withdrawer): bridged ERC20 token withdrawals #1149
Merged
Merged
Conversation
This file contains 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
github-actions
bot
added
the
ci
issues that are related to ci and github workflows
label
Jun 5, 2024
joroshiba
reviewed
Jun 7, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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)
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
AstriaBridgeableERC20
which is a standardERC20
contract 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 withdrawingIAstriaWithdrawer
which is implemented by bothAstriaWithdrawer
andAstriaMintableERC20
.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_ADDRESS
is set to someAstriaMintableERC20
, andASTRIA_BRIDGE_WITHDRAWER_ROLLUP_ASSET_DENOMINATION
is 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/symbol
of the ERC20 contract are not relevant.Testing
unit tests
Related Issues
closes #924