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

Feature: Joinable transaction fillers #426

Merged
merged 45 commits into from
Apr 8, 2024
Merged
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
adaef96
feature: TxFiller
prestwich Mar 29, 2024
ec38e5d
lint: clippy
prestwich Mar 29, 2024
247599c
doc: CONSIDER
prestwich Mar 29, 2024
1621849
doc: more notes
prestwich Mar 29, 2024
9e009ca
fix: get rid of ugly lifetimes
prestwich Mar 29, 2024
d1a19c5
fix: docs and lints
prestwich Mar 29, 2024
55ef5f3
fix: remove populate functions
prestwich Mar 29, 2024
a64b1c4
nit: remove commented code
prestwich Mar 29, 2024
a76ecaf
feature: FillerControlFlow
prestwich Mar 29, 2024
d272290
doc: lifecycle notes
prestwich Mar 29, 2024
935fd9b
refactor: request -> prepare
prestwich Mar 29, 2024
021c1bd
lint: clippy
prestwich Mar 29, 2024
c19aaf4
fix: missing block in absorb
prestwich Mar 29, 2024
5f59ec0
fix: absorb preserves association
prestwich Mar 29, 2024
49cf6a8
refactor: additional info in missing
prestwich Mar 29, 2024
be9cec6
fix: impl_future macro
prestwich Mar 30, 2024
e6ae1b9
fix: resolve considers
prestwich Apr 1, 2024
b4f22a6
refactor: gas layer to gas filler
prestwich Apr 2, 2024
8f732a9
refactor: improve provider builder
prestwich Apr 2, 2024
5c26fa7
refactor: filler is outmost layer
prestwich Apr 2, 2024
e40b1c8
refactor: protect against double-fill and add anvil shortcut
prestwich Apr 2, 2024
f663dd8
doc: improve docstrings for noncemanager and gas filler
prestwich Apr 2, 2024
ffef2ab
fix: delete unused types
prestwich Apr 2, 2024
741eb02
refactor: layers to fillers
prestwich Apr 2, 2024
cdb9f80
feature: chain id filler
prestwich Apr 2, 2024
b1358ff
refactor: send_transaction_inner and SendableTx
prestwich Apr 3, 2024
bc475a9
wip: sig filler
prestwich Apr 3, 2024
2a533c5
refactor: SignerFiller
prestwich Apr 3, 2024
6beabc9
fix: remove clone
prestwich Apr 3, 2024
c9976b2
docs: fix some
prestwich Apr 3, 2024
ca3197d
fix: complete todo
prestwich Apr 3, 2024
bc3bc80
feature: anvil feature for alloy-provider
prestwich Apr 3, 2024
8022cc8
wip: tests
prestwich Apr 5, 2024
7353f79
fix: apply changes from other PRs
prestwich Apr 5, 2024
1c376d7
chore: fmt
prestwich Apr 5, 2024
9401eac
feature: on_anvil
prestwich Apr 5, 2024
0846652
fix: workaround anvil gas est issue
prestwich Apr 5, 2024
a7295e5
fix: doctests
prestwich Apr 5, 2024
90ba04c
fix: anvil => request
prestwich Apr 5, 2024
fe0aa67
fix: test
prestwich Apr 5, 2024
4ced66c
chore: note about blocking on TODO
prestwich Apr 5, 2024
e21f8fe
feature: local usage error
prestwich Apr 5, 2024
fef56d4
fix: review nits
prestwich Apr 5, 2024
52ce1dc
Update crates/provider/src/fillers/mod.rs
prestwich Apr 6, 2024
b48ff24
fix: capitalization so @danipopes doesn't hurt me
prestwich Apr 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
doc: lifecycle notes
  • Loading branch information
prestwich committed Apr 5, 2024
commit d2722904463b59b647b8d776e903295e764a0162
14 changes: 10 additions & 4 deletions crates/provider/src/layers/join_fill.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,16 @@ impl FillerControlFlow {
///
/// ## Lifecycle Notes
///
/// - `ready` MUST be called before `request` and `fill`. It is acceptable to panic in `request` and
/// `fill` if `ready` has not been called.
/// - the output of `request` MUST be passed to `fill` before `finished()`
/// is called again.
/// The [`FillerControlFlow`] determines the lifecycle of a filler. Fillers
/// may be in one of three states:
/// - **Missing**: The filler is missing a required property to fill in the
/// transaction request. [`TxFiller::status`] should return
/// [`FillerControlFlow::Missing`].
/// with a list of the missing properties.
/// - **Ready**: The filler is ready to fill in the transaction request.
/// [`TxFiller::status`] should return [`FillerControlFlow::Ready`].
/// - **Finished**: The filler has filled in all properties that it can fill.
/// [`TxFiller::status`] should return [`FillerControlFlow::Finished`].
pub trait TxFiller<N: Network = Ethereum>: Clone + Send + Sync {
/// The properties that this filler retrieves from the RPC. to fill in the
/// TransactionRequest.
Expand Down