Luke Parker
a9625364df
Test createAddress
...
Benchmarks gas usage
Note the estimator needs to be updated as this is now variable-gas to the
state.
2025-01-27 05:37:56 -05:00
Luke Parker
75c6427d7c
CREATE uses RLP, not ABI-encoding
2025-01-27 04:24:25 -05:00
Luke Parker
e742a6b0ec
Test ERC20 OutInstructions
2025-01-27 02:08:01 -05:00
Luke Parker
5164a710a2
Redo gas estimation via revm
...
Adds a minimal amount of packages. Does add decent complexity. Avoids having
constants which aren't exact, due to things like the quadratic memory cost, and
the issues with such estimates accordingly.
2025-01-26 22:42:50 -05:00
Luke Parker
27c1dc4646
Test ETH address/code OutInstructions
2025-01-24 18:46:17 -05:00
Luke Parker
3892fa30b7
Test an empty execute
2025-01-24 17:13:36 -05:00
Luke Parker
ed599c8ab5
Have the Batch event encode the amount of results
...
Necessary to distinguish a bitvec with 1 results from a bitvec with 7 results.
2025-01-24 17:04:25 -05:00
Luke Parker
29bb5e21ab
Take advantage of RangeInclusive for specifying filters' blocks
2025-01-24 07:44:47 -05:00
Luke Parker
604a4b2442
Add execute_tx to fill in missing test cases reliant on it
2025-01-24 07:33:36 -05:00
Luke Parker
977dcad86d
Test the Router rejects invalid signatures
2025-01-24 07:22:43 -05:00
Luke Parker
cefc542744
Test SeraiKeyWasNone
2025-01-24 06:58:54 -05:00
Luke Parker
164fe9a14f
Test Router's InvalidSeraiKey error
2025-01-24 06:41:24 -05:00
Luke Parker
f948881eba
Simplify async code in in_instructions_unordered
...
Outsources fetching the ERC20 events to top_level_transfers_unordered.
2025-01-24 05:43:04 -05:00
Luke Parker
201b675031
Test ERC20 InInstructions
2025-01-24 03:45:04 -05:00
Luke Parker
3d44766eff
Add ERC20 InInstruction test
2025-01-24 03:23:58 -05:00
Luke Parker
a63a86ba79
Test Ether InInstructions
2025-01-23 09:30:54 -05:00
Luke Parker
e922264ebf
Add selector collisions to the IERC20 lib
2025-01-23 08:25:59 -05:00
Luke Parker
7e53eff642
Fix the async flow with the Router
...
It had sequential async calls with complexity O(n), with a variety of redundant
calls. There was also a constant of... 4? 5? for each item. Now, the total
sequence depth is just 3-4.
2025-01-23 06:16:58 -05:00
Luke Parker
669b8b776b
Work on testing the Router
...
Completes the `Executed` enum in the router. Adds an `Escape` struct. Both are
needed for testing purposes.
Documents the gas constants in intent and reasoning.
Adds modernized tests around key rotation and the escape hatch.
Also updates the rest of the codebase which had accumulated errors.
2025-01-23 02:06:06 -05:00
Luke Parker
6508957cbc
Make a proper nonReentrant modifier
...
A transaction couldn't call execute twice within a single TX prior. Now, it
can.
Also adds a bit more context to the escape hatch events/errors.
2025-01-23 00:04:44 -05:00
Luke Parker
373e794d2c
Check the escaped to address has code set
...
Document choice not to use a confirmation flow there as well.
2025-01-22 22:45:51 -05:00
Luke Parker
c8f3a32fdf
Replace custom read/write impls in router with borsh
2025-01-21 03:49:29 -05:00
Luke Parker
f690bf831f
Remove old code still marked TODO
2025-01-19 02:36:34 -05:00
Luke Parker
0b30ac175e
Restore workspace-wide clippy
...
Fixes accumulated errors in the Substrate code. Modifies the runtime build to
work with a modern clippy. Removes e2e tests from the workspace.
2025-01-19 02:27:35 -05:00
Luke Parker
47560fa9a9
Test manually implemented serializations in the Router lib
2025-01-19 00:45:26 -05:00
Luke Parker
9d57c4eb4d
Downscope dependencies in serai-processor-ethereum-primitives, const-hex decode bytecode in ethereum-schnorr-contract
2025-01-19 00:16:50 -05:00
Luke Parker
642ba00952
Update Deployer README, 80-character line length
2025-01-19 00:03:56 -05:00
Luke Parker
3c9c12d320
Test the Deployer contract
2025-01-18 23:58:38 -05:00
Luke Parker
f6b52b3fd3
Maximum line length of 80 in Deployer.sol
2025-01-18 15:22:58 -05:00
Luke Parker
0d906363a0
Simplify and test deterministically_sign
2025-01-18 15:13:39 -05:00
Luke Parker
8222ce78d8
Correct accumulated errors in the processor
2025-01-18 12:41:57 -05:00
Luke Parker
cb906242e7
2025 nightly
...
Supersedes #640 .
2025-01-18 12:41:25 -05:00
Luke Parker
f36bbcba25
Flatten the map of preprocesses/shares, send Participant index with DkgParticipation
2025-01-15 14:24:51 -05:00
Luke Parker
7312fa8d3c
Spawn PublishSlashReportTask
...
Updates it so that it'll try for every network instead of returning after any
network fails.
Uses the SlashReport type throughout the codebase.
2025-01-15 12:08:28 -05:00
Luke Parker
b5a6b0693e
Add a proper error type to ContinuallyRan
...
This isn't necessary. Because we just log the error, we never match off of it,
we don't need any structure beyond String (or now Debug, which still gives us
a way to print the error). This is for the ergonomics of not having to
constantly write `.map_err(|e| format!("{e:?}"))`.
2025-01-12 18:29:08 -05:00
Luke Parker
0ce9aad9b2
Add flow to add transactions onto Tributaries
2025-01-12 07:32:45 -05:00
Luke Parker
e7de5125a2
Have processor-messages use CosignIntent/SignedCosign, not the historic cosign format
...
Has yet to update the processor accordingly.
2025-01-12 05:52:33 -05:00
Luke Parker
d854807edd
Make message_queue::client::Client::send fallible
...
Allows tasks to report the errors themselves and handle retry in our
standardized way.
2025-01-11 21:57:58 -05:00
Luke Parker
c05b0c9eba
Handle Canonical, NewSet from serai-coordinator-substrate
2025-01-11 03:07:15 -05:00
Luke Parker
542bf2170a
Provide Cosign/CosignIntent for Tributaries
2025-01-11 01:31:28 -05:00
Luke Parker
47a4e534ef
Update serai-processor-signers to VariantSignid::Batch([u8; 32])
2025-01-07 15:26:23 -05:00
Luke Parker
0a611cb155
Further flesh out tributary scanning
...
Renames `label` to `round` since `Label` was renamed to `SigningProtocolRound`.
Adds some more context-less validation to transactions which used to be done
within the custom decode function which was simplified via the usage of borsh.
Documents in processor-messages where the Coordinator sends each of its
messages.
2025-01-03 06:57:28 -05:00
Luke Parker
bcd3f14f4f
Start work on cleaning up the coordinator's tributary handling
2025-01-02 09:11:04 -05:00
Luke Parker
6272c40561
Restore block_hash to Batch
...
It's not only helpful (to easily check where Serai's view of the external
network is) but it's necessary in case of a non-trivial chain fork to determine
which blockchain Serai considers canonical.
2024-12-31 18:10:47 -05:00
Luke Parker
8c9441a1a5
Redo coordinator's Substrate scanner
2024-12-31 10:37:19 -05:00
Luke Parker
5a42f66dc2
alloy 0.9
2024-12-30 11:09:09 -05:00
Luke Parker
b584a2beab
Remove old DB entry from the scanner
...
We read from it but never writ to it.
It was used to check we didn't flag a block as notable after reporting it, but
it was called by the scan task as it scanned a block. We only batch/report
blocks after the scan task after scanning them, so it was very redundant.
2024-12-30 11:07:05 -05:00
Luke Parker
26ccff25a1
Split reporting Batches to the signer from the Batch test
2024-12-30 11:03:52 -05:00
Luke Parker
f0094b3c7c
Rename Report task to Batch task
2024-12-30 10:49:35 -05:00
Luke Parker
458f4fe170
Move where we check if we should delay reporting of Batches
2024-12-30 10:18:38 -05:00