Commit Graph

42 Commits

Author SHA1 Message Date
Giovanni Vignone 32d09736e0
feat: add eth_syncing (#188)
* adding documentation for rpc.md

* adding rpc methods in table for rpc.md

* adjusting readme to link to rpc.md

* fixing grammar

* grammar

* adding RPC Methods according to documentation and listing column as Client Function

* adding more description space

* undoing description spacing

* adding get block transaction count by hash to node.rs and rpc.rs

* functioning getblocktransactioncountbyhash function

* removing documentation

* adding second rpc method and simplifying logic

* adjusting example and node.rs

* formatting

* fixing clippy errors

* adding to client and to rpc.md

* formatting

* integrating into client

* u64 return types, rpc.md updated to get_nonce, get_transaction_count -> get_nonce revert

* cargo fmt

* readme architecture init

* removing blockchain

* removing complexity

* updating mermaid with links from evm -> execution, renaming, and recoloring

* coloring letters black

* removing uncessary styling and adding untrustedexecutionrpc and untrustedconsensusrpc

* initial syncing work

* adding in proper computations to syncing()

* simplificaiton of logic

* cargo fmt

* updaing rpc.md and rpc

* removing unwrapping
2023-02-11 18:05:22 -05:00
Noah Citron 4a84ecabed
fix: handle checkpoint overrides correctly (#187)
* fix: handle checkpoint overrides correctly

* fix optional deserialize

* clippy

* fmt
2023-02-01 17:10:26 -05:00
Noah Citron 72267b4563
feat: wasm support (#182)
* basic consensus setup

* basic execution setup

* patch for wasm

* basic wasm client

* proxy cors for testing

* migrate to webpack

* use typescript

* track chain head

* rename to helios-ts

* better build instructions

* add getCode

* builds everywhere

* add wasm-pack to dependencies

* compile for both wasm and non-wasm

* fix deps

* fix deps

* remove ds store

* add blocktags

* add getNonce

* use BTreeMap to store payloads

* add getTransaction

* switch to proper ethers provider

* post merge fixes

* compile client to wasm

* fix tests

* fmt

* use milagro for bls

* handle node advance in rust

* faster bls deserialization

* clippy

* add ConfigDB

* remove ts bindings

* fix gitignore

* remove ts workspace member

* remove unused mut

* uncomment old deletions

* bump to 0.2.0
2023-01-30 21:38:46 -05:00
Noah Citron cb6cf75d59
feat: make checkpoint age check optional (#170)
* feat: make checkpoint age check optional

* add new flag to readme

* fix tests
2023-01-18 21:18:26 -05:00
danilowhk 819ee702e8
feat : eth_coinbase implementation #157 (#167)
* ethereum_get_cooinbase

* change return type from CoinbaseAddress to Address

* format
2023-01-12 20:30:15 -05:00
Dimitris Apostolou c7a1bad8e5
fix: typos (#164) 2023-01-10 15:47:58 -05:00
danilowhk 9d69c2b2b4
feat : add eth_getTransactionByBlockHashAndIndex (#157)
* eth_getTransactionByBlockHashAndIndex

* format

* clippy changes

* test check
2023-01-03 09:45:56 -05:00
Giovanni Vignone c26e393b7d
feat: add tx length rpc methods (#142)
* adding documentation for rpc.md

* adding rpc methods in table for rpc.md

* adjusting readme to link to rpc.md

* fixing grammar

* grammar

* adding RPC Methods according to documentation and listing column as Client Function

* adding more description space

* undoing description spacing

* adding get block transaction count by hash to node.rs and rpc.rs

* functioning getblocktransactioncountbyhash function

* removing documentation

* adding second rpc method and simplifying logic

* adjusting example and node.rs

* formatting

* fixing clippy errors

* adding to client and to rpc.md

* formatting

* integrating into client

* u64 return types, rpc.md updated to get_nonce, get_transaction_count -> get_nonce revert

* cargo fmt
2022-12-13 19:19:36 -05:00
sragss d8db74ede9
fix: surface eth_getStorageAt (#124)
* feat: surface eth_getStorageAt

* add blocktag

* cargo fmt
2022-12-08 10:57:21 -05:00
refcell.eth 7e3fe40613
feat(examples): Introduces working examples (#126)
* ⚙️ examples and more cleanup

* ⚙️ examples
2022-12-02 18:41:50 -05:00
andreas 161e0fbfb9
feat: checkpoint fallbacks (#120)
* 🏗️ checkpoint fallback initial impl

* 🚧 checkpoint fallbacks

*  checkpoint fallbacks

* ⚙️ fix result types

* ♻️ checkpoints refactoring

* 🔨 import nits

* 🚀 graceful checkpoint fallbacks

*  parallel checkpoint fallback service fetching using async tokio tasks

* 📝 readme touchups
2022-12-01 20:18:23 -05:00
asnared 21c73c1649
feat: Lints, Clippy, and Cleaning (#115)
*  cargo fmt smells

* ♻️ cargo cleaning
2022-11-29 17:31:25 -08:00
Simon Saliba 3177ad55c1
feat: add `get_logs` RPC method (#108)
* Implemented RPC method get_logs

* Limit the max number of logs to 5

* remove unused import

Co-authored-by: Noah Citron <noah@jeff.org>
2022-11-17 12:14:13 -05:00
0xModene eaf5605d4d
feat: verify checkpoint has valid age (#105)
* check blockhash has valid timestamp

* remove warn log

* made checkpoint age req configurable

* renamed method to make more sense

* fixed broken tests

* formatting

* unit tests completed

* removed needless imports

* renaming vars
2022-11-14 15:23:51 -05:00
sragss b9d67e956b
feat: surface revert errors to RPC (#106)
* surface revert errors to RPC

* remove temp generic errors from evm, node

* merge resolution

* cargo fmt
2022-11-11 19:41:37 -05:00
Noah Citron ba08cc1a3c
feat: use helios as a library (#85)
* add root helios package

* fix revm

* copy blocktag when passing to funcs

* run all tests

* update readme

* update readme

* update readme
2022-11-03 19:36:14 -04:00
Noah Citron f605f009a7
feat: add client builder (#84)
* add client builder

* use client builder in cli

* make build sync

* fix data dir override

* fix tests
2022-11-03 15:24:17 -04:00
Noah Citron 8f375d8c44
fix retries (#80) 2022-11-02 15:26:15 -04:00
Noah Citron 4444148f71
feat: handle full tx blocks (#75)
* fix: implement full tx blocks

* better error handling

* fix tests
2022-10-27 13:46:32 -04:00
Noah Citron 8844f921e8
feat: improved configs (#64)
* migrate config to figment

* support env variables

* add better error messages

* fix tests

* refactor
2022-10-05 13:52:07 -04:00
Noah Citron 5d1f4a6344
refactor: better error handling (#63)
* add custom errors to consensus

* add BlockNotFoundError

* better handling of blocktag parsing

* clean up

* add execution errors

* add rpc errors

* add more fields to errors
2022-09-29 19:35:43 -04:00
Noah Citron f3b9750eff
fix: prevent stale reads (#62) 2022-09-28 17:50:39 -04:00
Noah Citron aa71f4ac17
refactor: core consensus (#61)
* try to update next sync committee periodically

* perform verification through generic updates

* apply updates with generic update struct

* better logging

* fix checkpoint save

* clean up

* better update timing
2022-09-28 16:48:24 -04:00
Noah Citron fb28a61043
feat: add forced shutdowns (#56) 2022-09-23 22:09:03 -04:00
Noah Citron b137df4b85
fix: handle null rpc responses (#47) 2022-09-22 23:19:24 -04:00
Noah Citron abfed6a8fe
feat: use RwLock for concurrent reads (#46)
* feat: use RwLock for concurrent reads

* use reads for most client actions
2022-09-22 17:30:47 -04:00
Noah Citron 0579855141
feat: add checkpoint caching (#41)
* add checkpoint caching

* add data dir override to cli

* move checkpointing into database

* move logging to client

* clean up
2022-09-16 15:32:15 -04:00
Noah Citron 56385f15ed
feat: support finalized block tag (#28) 2022-09-12 19:23:37 -04:00
Noah Citron cf6c211516
feat: refactor client (#17)
* seperate client and node

* encapsule rpc inside client

* pass proper port into rpc

* track chain head in seperate thread

* client new takes config instead of arc

* refactor main

* add start method to client
2022-09-10 00:01:23 -04:00
Noah Citron 40a6211c13
tests: add execution tests (#14)
* add execution rpc trait

* add account tests

* add code and tx tests

* add receipt tests

* add get block tests
2022-09-08 17:46:48 -04:00
Noah Citron a63d56a952
refactor: switch execution rpc to ethers (#13) 2022-09-06 13:57:47 -04:00
Noah Citron a0b0b78da5
test: add consensus tests (#11)
* add consensus integration tests

* add unit tests

* organize imports
2022-09-04 19:32:16 -04:00
Noah Citron 95daee7186
fix: add full block and tx context to call (#10) 2022-09-02 15:29:51 -04:00
Noah Citron dbeeffb9f9
feat: add eth_getBlockByHash (#9) 2022-09-02 00:13:22 -04:00
Noah Citron e0411e1e97
feat: add eth_getTransactionByHash (#8)
* add eth_getTransactionByHash

* clean up imports
2022-09-01 23:28:37 -04:00
Noah Citron 11fd824b01
feat: add eth_getTransactionReceipt (#6) 2022-09-01 20:28:12 -04:00
Noah Citron 76a230446d
feat: add eth_sendRawTransaction (#5) 2022-09-01 17:07:30 -04:00
Noah Citron dc0e31cedd
fix: allow from in eth_call and eth_estimateGas (#4)
* fix gas esimtation in uniswap frontend

* calculate empty account
2022-09-01 15:58:45 -04:00
Noah Citron 92e30c3d50
feat: add metamask support (#2)
* add eth_getBlockByNumber and net_version

* fmt
2022-08-31 17:40:44 -04:00
Noah Citron 374dd1f38f
add optimistic updates (#1) 2022-08-30 20:31:58 -04:00
Noah Citron ad43cf7668 add cli app 2022-08-29 16:54:58 -04:00
Noah Citron 1d810caa92 refactor using cargo workspaces 2022-08-29 13:31:17 -04:00