Skip to content
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

conductor: parse oracle data from extended_commit_info and send to rollup if it exists #1818

Closed
noot opened this issue Nov 18, 2024 · 1 comment
Assignees
Labels
conductor pertaining to the astria-conductor crate enhancement New feature or request

Comments

@noot
Copy link
Collaborator

noot commented Nov 18, 2024

once the extended commit info is inside SequencerBlock and written to DA, conductor can access it and send the data inside of it to rollups.

conductor does not need to do additional validation on the extended commit info, as it will only be finalized by the sequencer if valid.

the RollupData enum should be updated to contain an OracleData variant, which can be a vec of prices such as:

message Price {
  CurrencyPair currency_pair = 1;
  QuotePrice price = 2;
  uint64 decimals = 3;
}

conductor then needs to parse the extended commit info into a OracleData by parsing the prices and taking the median (logic which is already implemented in sequencer) and then pass this as a RollupData to the rollup.

┆Issue Number: ENG-1017

@noot noot added enhancement New feature or request conductor pertaining to the astria-conductor crate labels Nov 18, 2024
@noot noot self-assigned this Nov 18, 2024
noot added a commit that referenced this issue Nov 25, 2024
…extended commit info (#1832)

## Summary
the price data posted by validators is of the form currency pair ID ->
price, however when this is sent to a rollup there is then no way to
determine the ID -> actual currency pair without referencing the
sequencer state. this is non ideal as we don't want to have to perform
lookups using a sequencer node for the oracle data.

## Background
see above

## Changes
- create `ExtendedCommitInfoWithCurrencyPairMapping` type which contains
`ExtendedCommitInfo` (as previous) as well as the ID->currency pair
mapping for the price data inside that `ExtendedCommitInfo`
- the proposer fills this mapping using the current sequencer state
(before tx execution)
- encoded `ExtendedCommitInfoWithCurrencyPairMapping` is then used as
the third injected tx in the block, whereas before it was just
`ExtendedCommitInfo`
- the other validators then verify this mapping using the current
sequencer state (before tx execution) in `process_proposal`


## Testing
unit tests + CI tests

## Related Issues
required for #1818
noot added a commit that referenced this issue Dec 4, 2024
…ution API (#1840)

## Summary
update conductor to pass oracle data to rollup via execution API.

## Background
this is the final change needed within the astria monorepo for the
oracle integration, as the oracle data is now fully passed up the stack.
handling the oracle data is now left up to each rollup.

## Changes
- add a new `OracleData` variant to the `RollupData` enum, which
contains a `Vec<Price>`, where each `Price` contains the relevant oracle
data for a currency pair for that block
- update the injected tx type
`ExtendedCommitInfoWithCurrencyPairMapping` such that the id->currency
pair mapping also contains the decimals for that currency pair's price;
this is necessary information that I overlooked in the previous PR
creating that type
- add the extended commit info + proof to `FilteredSequencerBlock`
- update `SequencerBlock`, `FilteredSequencerBlock` and
`SubmittedMetadata` constructors such that the extended commit info
bytes must be a valid encoded protobuf
`ExtendedCommitInfoWithCurrencyPairMapping`
- move functionality for calculating the aggregated prices from the
extended commit info from sequencer to core so that conductor can also
use it
- update conductor's executor to calculate the aggregated price data and
pass it as `RollupData::OracleData` to the rollup via the execution API

## Testing
unit tests

## Related Issues

closes  #1818
@noot
Copy link
Collaborator Author

noot commented Dec 13, 2024

closed by #1840

@noot noot closed this as completed Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conductor pertaining to the astria-conductor crate enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant