Skip to content

fix(sequencer)!: take funds from bridge in ics20 withdrawals#1344

Merged
SuperFluffy merged 2 commits intomainfrom
ENG-657
Aug 20, 2024
Merged

fix(sequencer)!: take funds from bridge in ics20 withdrawals#1344
SuperFluffy merged 2 commits intomainfrom
ENG-657

Conversation

@SuperFluffy
Copy link
Contributor

@SuperFluffy SuperFluffy commented Aug 2, 2024

Summary

Fixes ics20 withdrawals by actually taking funds from the provided bridge address.

Background

Prior to this change, funds were always taken from the signer of the astria.protocol.v1alpha1.Ics20Withdrawal action, even if its bridge_address field was set.

Changes

  • Uses astria.protocol.v1alpha1.Ics20Withdrawal.bridge_address to take funds in an ics20 withdrawal if set (and if it passes bridge checks)
  • Remove unnecessary state accesses to check if enough funds are present: just try to decrease them. If they fail, then the entire action fails.

Testing

All present tests have been updated to check if the correct withdrawal target is found.

There should be tests for the entire Ics20Withdrawal::check_and_execute flow. However, adding an ibc channel and port does not seem to be currently possible because penumbra_ibc does not export the channel StateWriteExt trait. This is left to a followup.

Breaking Changelist

This is a breaking change because two different versions of sequencer will come to different conclusions on which account to take funds from.

Related Issues

Closes #1308

@github-actions github-actions bot added the sequencer pertaining to the astria-sequencer crate label Aug 2, 2024
@SuperFluffy SuperFluffy changed the title fix(sequencer)!: take funds from bridge in ics20 withdrawas fix(sequencer)!: take funds from bridge in ics20 withdrawals Aug 2, 2024
@SuperFluffy SuperFluffy marked this pull request as ready for review August 2, 2024 20:37
@SuperFluffy SuperFluffy requested a review from a team as a code owner August 2, 2024 20:37
@SuperFluffy SuperFluffy requested a review from Fraser999 August 2, 2024 20:37
@SuperFluffy SuperFluffy added the bug Something isn't working label Aug 2, 2024
Base automatically changed from gh-1318 to main August 20, 2024 11:42
@SuperFluffy SuperFluffy enabled auto-merge August 20, 2024 13:25
@SuperFluffy SuperFluffy added this pull request to the merge queue Aug 20, 2024
Merged via the queue into main with commit d47a374 Aug 20, 2024
@SuperFluffy SuperFluffy deleted the ENG-657 branch August 20, 2024 13:36
steezeburger added a commit that referenced this pull request Aug 22, 2024
* main:
  refactor(core, proto)!: define app genesis state in proto (#1346)
  fix(sequencer): bump penumbra dep to fix ibc state access bug (#1389)
  feat(conductor)!: support disabled celestia auth (#1372)
  fix(sequencer)!: fix block fees (#1343)
  perf(sequencer): add benchmark for prepare_proposal (ENG-660) (#1337)
  fix(proto): fix import name mismatch (#1380)
  fix(ci): enable bridge withdrawer building with tag (#1374)
  feat(sequencer): rewrite memool to have per-account transaction storage and maintenance  (#1323)
  refactor(core, sequencer)!: require that bridge unlock address always be set (#1339)
  fix(sequencer)!: take funds from bridge in ics20 withdrawals (#1344)
  fix(sequencer)!: fix TOCTOU issues by merging check and execution (#1332)
  fix: abci error code (#1280)
  refactor(core): shorten `try_from_block_info_and_data()` (#1371)
  fix(relayer): change `reqwest` for `isahc` in relayer blackbox tests (ENG-699) (#1366)
  fix(conductor): update for celestia-node v0.15.0 (#1367)
  Chore: Upgrade celestia-node to v0.14.1 (#1360)
  chore(charts): fix charts production templates (#1359)
  chore(core, proto): migrate byte slices from Vec to Bytes (#1319)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working sequencer pertaining to the astria-sequencer crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants