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

chore: merge main branch to oracle feature branch #1861

Merged
merged 27 commits into from
Dec 6, 2024

Conversation

Fraser999
Copy link
Contributor

Summary

This is a simple merge of main.

Background

We want to keep the feature branch as in sync with main as possible.

Changes

  • Merged main. Conflicts in the following files, but all relatively trivial:
    • crates/astria-cli/src/sequencer/bridge_account.rs
    • crates/astria-cli/src/sequencer/bridge_sudo_change.rs
    • crates/astria-cli/src/sequencer/fee_assets.rs
    • crates/astria-cli/src/sequencer/sudo/ibc_sudo_change.rs
    • crates/astria-core/CHANGELOG.md
    • crates/astria-core/Cargo.toml
    • crates/astria-core/src/generated/mod.rs
    • crates/astria-core/src/lib.rs
    • crates/astria-core/src/primitive/v1/mod.rs
    • crates/astria-core/src/protocol/genesis/v1.rs
    • crates/astria-core/src/sequencerblock/v1/block.rs
    • crates/astria-sequencer-utils/src/genesis_example.rs
    • crates/astria-sequencer/CHANGELOG.md
    • crates/astria-sequencer/src/app/mod.rs
    • crates/astria-sequencer/src/bridge/bridge_lock_action.rs
    • crates/astria-sequencer/src/fees/state_ext.rs
    • crates/astria-sequencer/src/grpc/storage/keys.rs
    • crates/astria-sequencer/src/sequencer.rs
    • justfile
    • tools/protobuf-compiler/src/main.rs

Testing

No new tests added.

Changelogs

No updates required.

itamarreif and others added 27 commits November 5, 2024 21:07
## Summary
Updated the bridge spec to add more details on some of the data
structures and link to the up-to-date actions.

## Background
With the preparation for mainnet, some of the action names and locations
have changed. The spec needed updating to reflect that.

## Related Issues
Link any issues that are related, prefer full github links.

closes <!-- list any issues closed here -->
## Summary
adds ibc sudo address change command
## Background
Cli currently does not support the `IbcSudoChange` action

## Changes
- added `IbcSudoChange` command to the cli as sudo command

## Testing
tested manually against dusk-11 network

## Related Issues
part of #1474
Summary
Adds bridge-sudo-change command for changing bridge privileges addresses

Background
Part of adding more actions to the cli

Changes
- adds `bridge-sudo-change` command setting bridge account privileges
addresses
- adds `bridge-account get` command querying bridge account information
Testing
Locally against a cluster

Related Issues
Part of #1474

closes #1547
## Summary
fixes error in local rollup deployment through the cluster
## Background
On running `just deploy-dev-rollup` helm throws an ingress pathType
error. This PR fixes the error other warnings.

## Changes
- bump blockscout app version
- changes sitemap.xml pathType to `ImplementationSpecific`

## Testing
locally against the cluster with smoke tests.
## Summary
adds a configurable value to set celestia timeout_commit to `1s`
speeding bridge-tests
## Background
setting up hermes channels in CI bridge-test is slow, speeding up
celestia blocktime will help reduce setup time.
## Changes
added a `fast` flag to `celestia-local`, when set to true will configure
celestia with a block time of `1s`. Configured `ibc-test` in CI to use
the new flag.

## Testing
against a local cluster

---------

Co-authored-by: Jordan Oroshiba <jordan@astria.org>
## Summary
This pull request addresses an issue with the naming conventions used in
the local Docker build process.

## Background
The build tags were previously not adhering to the expected naming
scheme, leading to confusion and potential conflicts during chart
deployment with local images using just commands.
## Changes
Updated the Docker build script to ensure tags are generated according
to the standard chart naming convention.

## Testing
locally running and deploying the chart both using
- `just docker-build-and-load astria-sequencer`
- `just docker-build astria-sequencer` && `just load-inage sequencer`

## Related Issues
closes #1743
## Summary
This replaces `sed '...' <<< text` with `echo text | sed '...'` in the
main justfile.

## Background
On Ubuntu, the default shell doesn't recognise the redirect operator
`<<<`, hence the `just` commands `docker-build` and
`docker-build-and-load` both fail on Ubuntu.

## Changes
- Replaced usage of `<<<` by piping `echo` output.

## Testing
Ran the commands on Ubuntu and macOS.

## Changelogs
No updates required.
## Summary
updates celestia-node and celestia-local charts to support the new
versions.
## Background
Celestia mocha-4 testnet went through an upgrade, nodes should upgrade
by nov 7th

## Changes
- celestia-app `v2.0.0 -> v2.3.1`
- celestia-node `v0.16.0-rc -> v0.18.3-mocha`
- adjusts celestia-node` config.toml` env variables
- adds pruner service to configs
## Testing
celestia-local tested locally running smoke-tests, celestia-node sync
tested locally & against flame.

## Breaking Changelist
- celestia environment variable changes
## Summary
Instructs CometBFT to index all ABCI events emitted by Sequencer.

## Background
This change instructs CometBFT to index all events emitted by Sequencer
by setting their field `index: true`.

This allows programatically determining stuck IBC transactions to
automatically trigger a timeout. Previously, the height that a given IBC
packet was sent at had to be found manually before it could be passed to
the Hermes CLI (Astria's IBC relayer of choice).

The indexing field is described in the CometBFT ABCI spec [1].

1:
https://github.com/cometbft/cometbft/blob/16b1ed87c4b10118df10eb7175412db066bd09d5/spec/abci/abci%2B%2B_basic_concepts.md?plain=1#L318-L319

## Changes
- Index all event attributes before returning in
`app::execute_transaction`

## Testing
- Added unit test to ensure all event attributes are indexed for the
events we create (unable to unit test an IBC action).

## Changelogs
Changelog updated
## Summary
This updates the protos used for the auctioneer to be based on the new
v1 protos.

## Background
We bumped our proto definition versions from `v1alpha_` to `v1`.

## Changes
- Moved the `sequencerblock/optimistic_block` file into its own
subpackage in order to have `sequencerblock.optimisticblock.v1alpha1`
- Updated to use `FilteredSequencerBlock` from v1

## Breaking Changelist
- This shouldn't break anything as none of these protos are used by
anything in main currently.

closes #1767
## Summary
Ignore two new RustSec warnings.

## Background
We get two non-critical warnings when running `cargo audit`:
[RUSTSEC-2024-0384](https://rustsec.org/advisories/RUSTSEC-2024-0384)
and
[RUSTSEC-2024-0388](https://rustsec.org/advisories/RUSTSEC-2024-0388).

<details><summary>RUSTSEC-2024-0384</summary><p>

```
Crate:     instant
Version:   0.1.13
Warning:   unmaintained
Title:     `instant` is unmaintained
Date:      2024-09-01
ID:        RUSTSEC-2024-0384
URL:       https://rustsec.org/advisories/RUSTSEC-2024-0384
Dependency tree:
instant 0.1.13
├── fastrand 1.9.0
│   └── futures-lite 1.13.0
│       ├── isahc 1.7.2
│       │   └── astria-sequencer-relayer 1.0.0
│       └── http-types 2.12.0
│           └── wiremock 0.5.22
│               ├── astria-sequencer-relayer 1.0.0
│               ├── astria-sequencer-client 0.1.0
│               │   ├── astria-sequencer-relayer 1.0.0
│               │   ├── astria-conductor 1.0.0
│               │   ├── astria-composer 1.0.0
│               │   ├── astria-cli 0.5.1
│               │   └── astria-bridge-withdrawer 1.0.1
│               ├── astria-conductor 1.0.0
│               ├── astria-composer 1.0.0
│               └── astria-bridge-withdrawer 1.0.1
├── ethers-providers 2.0.14
│   ├── ethers-middleware 2.0.14
│   │   └── ethers 2.0.14
│   │       ├── astria-test-utils 0.1.0
│   │       │   └── astria-composer 1.0.0
│   │       ├── astria-composer 1.0.0
│   │       ├── astria-cli 0.5.1
│   │       ├── astria-bridge-withdrawer 1.0.1
│   │       └── astria-bridge-contracts 0.1.0
│   │           ├── astria-cli 0.5.1
│   │           └── astria-bridge-withdrawer 1.0.1
│   ├── ethers-contract 2.0.14
│   │   ├── ethers-middleware 2.0.14
│   │   └── ethers 2.0.14
│   └── ethers 2.0.14
└── ethers-middleware 2.0.14
```
</p></details>

<details><summary>RUSTSEC-2024-0388</summary><p>

```
Crate:     derivative
Version:   2.2.0
Warning:   unmaintained
Title:     `derivative` is unmaintained; consider using an alternative
Date:      2024-06-26
ID:        RUSTSEC-2024-0388
URL:       https://rustsec.org/advisories/RUSTSEC-2024-0388
Dependency tree:
derivative 2.2.0
├── penumbra-tct 0.80.7
│   ├── penumbra-txhash 0.80.7
│   │   └── penumbra-ibc 0.80.7
│   │       ├── astria-sequencer 1.0.0
│   │       └── astria-core 0.1.0
│   │           ├── astria-sequencer-utils 0.1.0
│   │           ├── astria-sequencer-relayer 1.0.0
│   │           ├── astria-sequencer-client 0.1.0
│   │           │   ├── astria-sequencer-relayer 1.0.0
│   │           │   ├── astria-conductor 1.0.0
│   │           │   ├── astria-composer 1.0.0
│   │           │   ├── astria-cli 0.5.1
│   │           │   └── astria-bridge-withdrawer 1.0.1
│   │           ├── astria-sequencer 1.0.0
│   │           ├── astria-core 0.1.0
│   │           ├── astria-conductor 1.0.0
│   │           ├── astria-composer 1.0.0
│   │           ├── astria-cli 0.5.1
│   │           ├── astria-bridge-withdrawer 1.0.1
│   │           └── astria-bridge-contracts 0.1.0
│   │               ├── astria-cli 0.5.1
│   │               └── astria-bridge-withdrawer 1.0.1
│   ├── penumbra-sct 0.80.7
│   │   └── penumbra-ibc 0.80.7
│   └── penumbra-keys 0.80.7
│       └── penumbra-sct 0.80.7
├── penumbra-num 0.80.7
│   ├── penumbra-ibc 0.80.7
│   └── penumbra-asset 0.80.7
│       ├── penumbra-keys 0.80.7
│       └── penumbra-ibc 0.80.7
├── penumbra-keys 0.80.7
├── penumbra-asset 0.80.7
├── ark-r1cs-std 0.4.0
│   ├── poseidon377 1.2.0
│   │   ├── penumbra-tct 0.80.7
│   │   ├── penumbra-sct 0.80.7
│   │   ├── penumbra-keys 0.80.7
│   │   └── penumbra-asset 0.80.7
│   ├── poseidon-permutation 1.1.0
│   │   └── poseidon377 1.2.0
│   ├── penumbra-tct 0.80.7
│   ├── penumbra-sct 0.80.7
│   ├── penumbra-num 0.80.7
│   ├── penumbra-keys 0.80.7
│   ├── penumbra-asset 0.80.7
│   └── decaf377 0.10.1
│       ├── poseidon377 1.2.0
│       ├── poseidon-permutation 1.1.0
│       ├── poseidon-parameters 1.1.0
│       │   ├── poseidon377 1.2.0
│       │   └── poseidon-permutation 1.1.0
│       ├── penumbra-tct 0.80.7
│       ├── penumbra-sct 0.80.7
│       ├── penumbra-num 0.80.7
│       ├── penumbra-keys 0.80.7
│       ├── penumbra-asset 0.80.7
│       ├── decaf377-rdsa 0.11.0
│       │   ├── penumbra-sct 0.80.7
│       │   ├── penumbra-proto 0.80.7
│       │   │   ├── penumbra-txhash 0.80.7
│       │   │   ├── penumbra-tct 0.80.7
│       │   │   ├── penumbra-sct 0.80.7
│       │   │   ├── penumbra-num 0.80.7
│       │   │   ├── penumbra-keys 0.80.7
│       │   │   ├── penumbra-ibc 0.80.7
│       │   │   ├── penumbra-asset 0.80.7
│       │   │   ├── astria-sequencer 1.0.0
│       │   │   └── astria-core 0.1.0
│       │   ├── penumbra-num 0.80.7
│       │   ├── penumbra-keys 0.80.7
│       │   └── penumbra-asset 0.80.7
│       ├── decaf377-ka 0.80.7
│       │   └── penumbra-keys 0.80.7
│       └── decaf377-fmd 0.80.7
│           ├── penumbra-proto 0.80.7
│           ├── penumbra-num 0.80.7
│           ├── penumbra-keys 0.80.7
│           └── penumbra-asset 0.80.7
├── ark-poly 0.4.2
│   ├── ark-groth16 0.4.0
│   │   ├── poseidon377 1.2.0
│   │   ├── penumbra-num 0.80.7
│   │   └── decaf377 0.10.1
│   └── ark-ec 0.4.2
│       ├── poseidon377 1.2.0
│       ├── decaf377 0.10.1
│       ├── ark-r1cs-std 0.4.0
│       ├── ark-groth16 0.4.0
│       ├── ark-ed-on-bls12-377 0.4.0
│       │   ├── penumbra-tct 0.80.7
│       │   └── decaf377 0.10.1
│       ├── ark-crypto-primitives 0.4.0
│       │   └── ark-groth16 0.4.0
│       └── ark-bls12-377 0.4.0
│           ├── decaf377 0.10.1
│           └── ark-ed-on-bls12-377 0.4.0
├── ark-ff 0.4.2
│   ├── ruint 1.12.3
│   │   └── celestia-types 0.1.1
│   │       ├── celestia-rpc 0.1.1
│   │       │   └── astria-conductor 1.0.0
│   │       ├── astria-sequencer-relayer 1.0.0
│   │       ├── astria-core 0.1.0
│   │       └── astria-conductor 1.0.0
│   ├── poseidon377 1.2.0
│   ├── poseidon-permutation 1.1.0
│   ├── penumbra-tct 0.80.7
│   ├── penumbra-sct 0.80.7
│   ├── penumbra-num 0.80.7
│   ├── penumbra-keys 0.80.7
│   ├── penumbra-ibc 0.80.7
│   ├── penumbra-asset 0.80.7
│   ├── decaf377-rdsa 0.11.0
│   ├── decaf377-ka 0.80.7
│   ├── decaf377-fmd 0.80.7
│   ├── decaf377 0.10.1
│   ├── ark-snark 0.4.0
│   │   ├── poseidon377 1.2.0
│   │   ├── penumbra-num 0.80.7
│   │   ├── decaf377 0.10.1
│   │   └── ark-crypto-primitives 0.4.0
│   ├── ark-relations 0.4.0
│   │   ├── poseidon377 1.2.0
│   │   ├── poseidon-permutation 1.1.0
│   │   ├── penumbra-tct 0.80.7
│   │   ├── penumbra-sct 0.80.7
│   │   ├── penumbra-num 0.80.7
│   │   ├── penumbra-keys 0.80.7
│   │   ├── penumbra-asset 0.80.7
│   │   ├── decaf377 0.10.1
│   │   ├── ark-snark 0.4.0
│   │   ├── ark-r1cs-std 0.4.0
│   │   ├── ark-groth16 0.4.0
│   │   └── ark-crypto-primitives 0.4.0
│   ├── ark-r1cs-std 0.4.0
│   ├── ark-poly 0.4.2
│   ├── ark-groth16 0.4.0
│   ├── ark-ed-on-bls12-377 0.4.0
│   ├── ark-ec 0.4.2
│   ├── ark-crypto-primitives 0.4.0
│   └── ark-bls12-377 0.4.0
├── ark-ff 0.3.0
│   └── ruint 1.12.3
├── ark-ec 0.4.2
└── ark-crypto-primitives 0.4.0
```

</p></details>

Given that the RustSec report doesn't suggest any concrete problems with
either crate, and how difficult it will be to move away from these
dependencies, I have just ignored these warnings in CI.

## Changes
- Ignore RustSec warnings in `.cargo/audit.toml`.

## Testing
Ran `cargo audit` locally.

## Changelogs
No updates required - nothing really fixed or updated.

## Related Issues
Closes #1796.
Closes #1797.
…1689)

## Summary
minor updates to the data verification and inclusion proof specs, mostly
renaming/updating the types and some clarifications.

## Changes
- update
[specs/data-flow-and-verification.md](https://github.com/astriaorg/astria/compare/noot/specs?expand=1#diff-ec3cc86eef70a0285e3cd7fbc902eeb2ef082783cda5916b3d9b81f80e0b4917)
- update
[specs/sequencer-inclusion-proofs.md](https://github.com/astriaorg/astria/compare/noot/specs?expand=1#diff-0b52370ce97078002b7f4682377d6847fad36814fea97e7eab930e1edc9270ec)
## Summary
removes immediate celestia balance check after performing ibc-transfer
**from** celestia
## Background
Current ibc-tests checks celestia wallet balance immediately after
permorming an ibc transfer, this is redundant as we check the bablance
change on the sequencer side. In addition to currently being broken duo
to outdated expected value, the test currently passes randomly, most
likely duo to latency.
## Changes
- remove celestia balance checks from ibc transfer from celestia
- moves ibc-transfer check in `run-without-native` above fee-asset
change, avoiding latency issues.

## Testing
- locally tested bad behavior by adding a 1s sleep prior to the first
balance check
## Changelogs
No updates required.
## Summary
Adds `astria-cli sequencer fee-assets get` query command, getting all
allowed fee-assets
## Background
The astria CLI should have a query command for all abci query paths, the
PR is part of an effort to accomplish this. It also enables more robust
smoke-tests.
## Changes
- Adds allowed fee assets query subcommand.

## Testing
Manually runs the command against local, Dawn and mainnet.

## Changelogs
Changelogs updated.

## Related Issues
Link any issues that are related, prefer full GitHub links.

closes #1815
## Summary
Breaks out `astria_core::crypto` to crate `astria-core-crypto`.

## Background
One needs to import the entire kitchensink that is `astria-core` even if
one only wants to use a fraction of its types. That leads to extremely
long compilation times because all of its dependencies need to be
compiled.

This patch is the start to breaking out parts of `astria-core` into
their own free standing crates, which `astria-core` then reexports.

A useful sideeffect of this change is that the coupling between the
different parts of astria-core is reduced (for example, by removing the
rarely used utility method `SigningKey::try_address`, allowing to
decouple address and crypto logic).

## Changes
- Move the module `astria_core::crypto` into new create
`astria-core-crypto` and reexport under the `astria_core::crypto` alias
(not breaking to consumers)
- Remove the tight coupling between the crypto and address parts of the
stack by removing the `SigningKey::try_address` (rarely used and only
inside a few tests) method and moving `ADDRESS_LENGTH` to a thin
`astria-core-consts` crate (this is a breaking change for users of
`SigningKey::try_address`).

## Testing
Tests for astria core's crypto refinement types were moved to
`astria-core-crypto` and left unchanged. Sequencer tests were updated to
use `Address::builder` instead of `SigningKey::try_address` and
otherwise also left unchanged.

## Changelogs
Changelogs updated.

## Breaking Changelist
- These changes leave all services untouched.
- These changes would be breaking the public API of `astria-core` due to
the removal fo `SigningKey::try_address` but we don't provide any
stability guarantees for it.
 
## Related Issues
Part of #1798
## Summary
Breaks out address related logic in `astria_core::primitive::v1` to
`astria-core-address`

## Background
One needs to import the entire kitchensink that is `astria-core` even if
one only wants to use a fraction of its types. That leads to extremely
long compilation times because all of its dependencies need to be
compiled.

This patch is the start to breaking out parts of `astria-core` into
their own free standing crates, which `astria-core` then reexports.


## Changes
- Move address related types out of `astria_core::primitive::v1` into
`astria-core-address`
- Reexport all moved types under the same module (aliasing, where
necessary)
- Remove the serde `Serialize` and `Deserialize` impls on the domain
type `Address` (breaking because one needs to explicitly construct
protobuf/wire type `Address`; not breaking on the wire, json format
stays the same)
- Implement the `Protobuf` ("domain type") trait for `Address`, removing
its inherent constructors and methods to move from/to raw protobuf types
("wire types"); decouples `astria-core-address` from `astria-core`
(specifically, the generated protobuf types) (breaking for consumers
because they now need to import the `Protobuf` trait)
- Create a thin crate `astria-core-consts` that only contains the const
`ADDRESS_LENGTH` to allow decoupling of address and crypto logic
(addressed in a separate patch)
- Removed `AddressBuilder::with_iter` from the public interface (only
used inside the crate and not outside) (breaking for consumers of that
method)

## Testing
Tests were shuffled around but not removed. Snapshot tests stay in place
in astria core for now (because they are required for wire/protobuf
types).

## Changelogs
Changelogs updated.

## Breaking Changelist
- These changes leave all services untouched.
- If astria-core gave stability guarantees, this would be a breaking
change for consumers of `astria-core` because some inherent methods were
removed from its public API.
 
## Related Issues
Part of #1798
## Summary
The hermes config didn't work when path filters were used because some
standard config properties were below the seperated path filter section.

## Background
Allow use of path filters on deployed hermes instances.

## Changelogs
No updates required.

---------

Co-authored-by: quasystaty <ido@astria.org>
## Summary
Ensures deposits created within bridge lock actions use only
trace-prefixed assets.

## Background
Currently, deposits created within a bridge lock action include
whichever asset is used in the action, which can be either IBC- or
trace-prefixed. This poses a problem, since our EVM has no concept of
IBC-prefixed assets, and we shouldn't expect others using our network
to, either. One solution discussed was to enforce all `BridgeLock`
actions to use trace prefixed assets, but this would be a consensus
breaking change. This aims to remedy the bug whilst making no breaking
changes.

## Changes
- Map any IBC-prefixed assets included in a `BridgeLock` action to
trace-prefixed when constructing the `Deposit`.

## Testing
- Added unit test to ensure an IBC-prefixed asset included in a bridge
lock action is correctly mapped to a trace-prefixed asset in the
corresponding deposit.
- Tested that change would be non-breaking by syncing a full node to
mainnet

## Changelogs
Changelog updated.

## Breaking Changes
Technically, this change is breaking, since any sequencer version prior
to this which received a `BridgeLock` action containing an IBC-prefixed
asset would emit a `Deposit` with an IBC-prefixed asset, while any
sequencer version after would only emit deposits with trace-prefixed
assets. However, owing to the fact that no such cases have happened yet
on mainnet, this change would not be practically breaking so long as no
`BridgeLock` actions containing IBC-prefixed denoms have been submitted
by the time this patch is pushed out. This is actively being tested by a
full-node running this PR against mainnet.

## Steps to sync this PR to Mainnet on your local machine

Ensure you have docker installed + running

### Download and build Sequencer
```bash
git clone https://github.com/astriaorg/astria.git
cd astria
git checkout ENG-1004/trace_prefixed_deposits
cargo build -p astria-sequencer --release
just docker-build astria-sequencer
```

### Helm install
```bash
helm repo add astria https://astriaorg.github.io/charts/
```
Download this file and put in the `astria` repo:
https://github.com/astriaorg/networks/blob/main/astria/full-node-values.yaml

Make these edits to `full-node-values.yaml`, replacing "your_moniker"
with your chosen moniker:

```yaml
namespace: "astria-node"
moniker: `<your_moniker>`
images:
     sequencer:
          tag: local
cometbft:
     secrets:
          nodeKey:
               devContent:
                    priv_key:
                         value: 1yh4XrMHn75sSW5cOhGDTVgv5BbqXlhrLduxHcE2t1osbwKQzo7xlvSK1vh5CVDvHESPYK/56uTKXM/1ifqHbw==
     privValidatorKey:
          devContent:
               address: 8C17BBDC7C350C83C550163458FC9B7A5B54A64E
               pub_key:
                    value: 4v1RdMiKkWgBBTTP26iRSLOEkAY99gMVfZijm6OCzjs=
               priv_key:
                    value: WxsUPI2QASIwK+XV547R8xzL66a5oBR2G8h53t0Gcl7i/VF0yIqRaAEFNM/bqJFIs4SQBj32AxV9mKObo4LOOw==
sequencer:
     metrics:
          enabled: false
     otel:
          enabled: false
storage:
     local: true
     entities:
          sequencerSharedStorage:
               storageClassName: <your_moniker>-sequencer-shared-storage-local
```

From the `astria` repo:
```bash
just deploy cluster
just deploy ingress-controller
just wait-for-ingress-controller
just load-image sequencer
helm install astria-full-node astria/sequencer --version 1.0.0-rc.4 \
  --namespace astria-node --create-namespace -f full-node-values.yaml
```

After this you should be able to go into k9s and see both the sequencer
and CometBFT running

## Related Issues
closes #1806
…n_transaction` (#1746)

## Summary
Changed all non-deposit related instances of `source_action_index` to
`position_in_transaction`

## Background
This is meant to be more descriptive and less confusing to consumers.
Deposits should stay the same, though, for parity with Geth and to avoid
breaking changes.

## Changes
- Changed all instances of `source_action_index` to
`position_in_transaction`, excluding deposits..

## Testing
Passing all tests

## Related Issues
closes #1735
## Summary
Moved all action and transaction handling to single module.

## Background
Previously, all implementations of `ActionHandler` were done separately
in components which corresponded to their given actions (or groups of
actions, such as in `bridge`). While this may make sense from an
action-centered point of view, it is confusing to an outsider to have to
look many different places to find where stateless/stateful checks and
execution occur. This PR consolidates all of the implementations as well
as their testing.

## Changes
- Created new `action_handler` module and moved the corresponding
`ActionHandler` trait as well as all of its `impl`s into this module.
- Renamed some moved tests for clarity.
- Categorized tests by action in submodule `tests`.
- Categorized impls by action in submodule `impls`.

## Testing
Passing all tests.

## Changelogs
Changelogs updated

## Related Issues
closes #1657
## Summary

Replace the 10-15-24 draft report with the final report which notes that
we haven't resolved the 3 low severity fixes but have acknowledged them.
## Summary
Changed `just docker-build astria-cli` command to match the CI's naming

## Background
CI package name is "astria-cli", whereas the just command resulted in a
docker image with only "cli".

## Changes
- Changed command to result in `ghcr.io/astriaorg/astria-cli:local`

## Testing
Manually tested

## Changelogs
No updates needed

## Related Issues
closes #1812
## Summary
Returns a all fee components at the latest height when sending an ABCI
info request containing the path `"fees/components"`.

## Background
Right now information on the sequencer state is very limited. This patch
allows getting a bit more info out of it.

## Changes
- Adds a handler for the path `"fees/components"` into the ABCI info
service running inside sequencer.
- The handler returns a JSON object containing the values for each
component. Each component can return one of the 3 states shown below:

```
{
    "transaction": {
        base: 1,
        multiplier: 2,
    },
    "rollup_data_submission": "not set",
    "ibc_relay": "<some error message",
}
```

## Testing
Provided an error for sending a high level ABCI info request to the
`Info` service.
…c match (#1825)

## Summary
Deletes and regenerates all code in `astria-core/src/generated`. Fixes
bad imports by nesting generated Astria APIs under a new `astria`
module. Fixes badly named modules.

## Background
#1236 noticed that some protobuf
files were skipped during code generation because of a
`tonic_build::Builder::extern_path` statement. This showed up again when
reworking the protobuf compilation tool to first clear the target
directory for storing the generated rust files, where now an `include!`
statement in `astria_core::generated` failed because the file was not in
fact generated. This was not detected because the file was still
committed to the repository at an earlier point.

#1707 then added new generated
code under a wrongly named `optimistic_block` module, which should have
been named `optimistic` to be in line with its protobuf package
counterpart.

The present change is primarily to the `tools/protobuf-compiler` binary,
which first purges the output directory (minus the handwritten `mod.rs`)
before generating new code.

## Changes
- Update `tools/protobuf-compiler` to clear `astria-core/src/generated`
prior to repopulating it from `proto/`
- Remove the module `sequencerblock::optimisticblock`
- Add module `sequencerblock::optimistic`
- Update all services that import Astria APIs from
`astria_core::generated` to `astria_core::generated::astria`.

## Testing
This is just code organization. Import paths were updated, code still
compiles and tests pass.

## Changelogs
Changelogs updated.

## Breaking Changelist
- This is a breaking change for all consumers of `astria_core` that now
need to import many items from `astria_core::generated::astria` that
were directly under `astria_core::generated` before.

## Override Freeze
This code touches services by changing their imports
(`astria_core::generated -> astria_core::generated::astria`) but does
change any implementation details.

## Related Issues
Fixes and amends #1707.
Supersedes #1824
Closes #1823
## Summary
Removed an unnecessary return of a `Result` from the `fees` state
extension trait.

## Background
The method is infallible.

## Changes
- Removed the return type from `add_fee_to_block_fees()`

## Testing
Passing all tests.

## Changelogs
No updates required

## Related Issues
closes #1845
## Summary
Removes the default RPC URL and chain IDs the CLI.

## Background
It is a safety issue to interact with the wrong chain, and so these
defaults should not be enshrined in the app.

## Changes
- Remove the default value from all `--sequencer.chain-id` arguments.
- Remove the default value from all `--sequencer-url` arguments.

## Testing
All smoke tests already explicitly provided chain ID and RPC URL and
thus keep working.

Ran manually: omitting either arguments now results in errors like this:

```
error: the following required arguments were not provided:
  --sequencer-url <SEQUENCER_URL>
```

## Changelogs
"Changelogs updated."

## Breaking Changelist
- All invocations of the CLI for interacting with Astria network
`astria-dusk-10` at `"https://rpc.sequencer.dusk-10.devnet.astria.org"`
no longer work. Chain ID and RPC URL now need to be set explicitly by
providing an environment variable or command line argumient.

Invocations that already had the chain ID and RPC URL present continue
working unchanged.
@Fraser999 Fraser999 requested review from a team and joroshiba as code owners December 6, 2024 17:12
@github-actions github-actions bot added conductor pertaining to the astria-conductor crate proto pertaining to the Astria Protobuf spec sequencer pertaining to the astria-sequencer crate sequencer-relayer pertaining to the astria-sequencer-relayer crate composer pertaining to composer labels Dec 6, 2024
@noot noot merged commit 0beee9b into feat/oracle Dec 6, 2024
45 checks passed
@noot noot deleted the fraser/merge-main-to-oracle-feature branch December 6, 2024 18:24
@noot noot restored the fraser/merge-main-to-oracle-feature branch December 9, 2024 18:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
composer pertaining to composer conductor pertaining to the astria-conductor crate proto pertaining to the Astria Protobuf spec sequencer pertaining to the astria-sequencer crate sequencer-relayer pertaining to the astria-sequencer-relayer crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants