[!WARNING]
🚧🚧 This is PR 6/n in refactoring the gas price service. Now that the algorithm_updater is a part of fuel-core-gas-price-service we have squashed it into the GasPriceService using the UninitializedTask struct. We don't implement RunnableServiceorRunnableTask for the UninitializedTask struct, merely use it as a wrapper to generate the GasPriceServiceV0 🚧🚧
created common module containing storage adapter, l2 block source and some updater metadata stuff (linked to storage)
created v0 module containing impl of GasPriceAlgorithm for AlgorithmV0, and V0metadata stuff
created v1 module containing impl of GasPriceAlgorithm for AlgorithmV1 & da block costs source (V1Metadata didn’t exist before so i didn’t create it)
fuel-gas-price-updater will be nuked, an UninitializedGasPriceServiceV(x) for each version that takes in all the args needed
graph TD
A["lib.rs (entry point)"]
B[common]
B1[utils]
B2[storage]
B3[l2_block_source]
C[ports]
D[v0]
E[v1]
F[v0/algorithm]
G[v1/algorithm]
H[v0/service]
I[v1/da_source]
J[v0/metadata]
K[v1/service]
L[v0/uninitialized]
A --> B
B --> B1
B --> B2
B --> B3
B --> C
C --> D
C --> E
D --> F
D --> H
D --> J
D --> L
E --> G
E --> I
E --> K
F --> H
G --> I
H --> J
J --> L
L --> M[SharedV0Algorithm]
L --> N[GasPriceServiceV0]
subgraph Common
B
B1
B2
B3
end
subgraph Ports
C
end
subgraph V0
D
F
H
J
L
end
subgraph V1
E
G
I
K
end
Checklist
[x] Breaking changes are clearly marked as such in the PR description and changelog
[x] New behavior is reflected in tests
[x] The specification matches the implemented behavior (link update PR if changes are needed)
Before requesting review
[x] I have reviewed the code myself
[ ] I have created follow-up issues caused by this PR and linked them here
Linked Issues/PRs
Description
Checklist
Before requesting review
After merging, notify other teams
[Add or remove entries as needed]