Commit Graph

463 Commits

Author SHA1 Message Date
protolambda 82240d8dbd fix vector default type 2019-06-20 20:31:16 +02:00
protolambda 977856b06f
ssz typing now subclasses list/bytes, much easier to work with than wrapped list/bytes functionality 2019-06-20 20:30:42 +02:00
protolambda 4e747fb887
fixes for class based ssz typing 2019-06-20 20:25:22 +02:00
protolambda 7cdec746b4 fix field iteration crash in ssz typing 2019-06-20 20:20:45 +02:00
protolambda a33c67894e update ssz testing/debug utils 2019-06-20 20:20:45 +02:00
protolambda 6b82e3faa5
Modifications from Vitalik, to enable SSZ Partials 2019-06-20 20:20:07 +02:00
protolambda 5be0c57aad fix linting + mypy 2019-06-20 20:17:29 +02:00
protolambda 4aefc078e9
list-rework type fixes 2019-06-20 20:11:39 +02:00
protolambda 8c6ddd5233 container field coercion 2019-06-20 20:05:57 +02:00
protolambda 73ba419d64 check virtual lengths, fix imports 2019-06-20 20:05:57 +02:00
protolambda 0a43003b42 minor test improvements 2019-06-20 20:03:21 +02:00
protolambda 8bd2e878ef bugfixes and typing improvements 2019-06-20 20:03:21 +02:00
protolambda 08e6f32f38 typing improvements, type testing 2019-06-20 20:03:21 +02:00
protolambda 4ebdceaf12
highly experimental typing 2019-06-20 19:57:50 +02:00
protolambda 108410d862 Change byte to explict class instead of newtype 2019-06-20 19:56:09 +02:00
protolambda 82e7392b17 default method for container is recognized now 2019-06-20 19:56:09 +02:00
Diederik Loerakker 3a9b1fb72c Update test_libs/pyspec/eth2spec/utils/ssz/ssz_impl.py
Co-Authored-By: vbuterin <v@buterin.com>
2019-06-20 19:56:09 +02:00
Diederik Loerakker 54a1fa9abe Update test_libs/pyspec/eth2spec/utils/ssz/ssz_impl.py
Co-Authored-By: vbuterin <v@buterin.com>
2019-06-20 19:56:09 +02:00
protolambda cd5f59eb74
fix bytes value check, fix default-type checking 2019-06-20 19:55:53 +02:00
protolambda b6cf809d9b
more improvements, and implement new space-efficient merkleization with padding support 2019-06-20 19:54:59 +02:00
protolambda d1ecfd510e
typing improvements 2019-06-20 19:53:32 +02:00
vbuterin 8919f628cb Update test_libs/pyspec/eth2spec/utils/ssz/ssz_impl.py
Co-Authored-By: Diederik Loerakker <proto@protolambda.com>
2019-06-20 19:52:02 +02:00
Vitalik Buterin 7c4232455c Added get_container_type to get_zero_value 2019-06-20 19:52:02 +02:00
protolambda 5ddfe34f0c
Simplified SSZ impl 2019-06-20 19:51:38 +02:00
Carl Beekhuizen e0d814df32
Merge branch 'dev' into executable_fork_choice
* dev:
  Increase historical length and cleanups (#1196)
2019-06-19 22:43:14 +02:00
Carl Beekhuizen 241fe34da7
Workaround for python3.6 2019-06-19 22:37:51 +02:00
Danny Ryan 29dbe1b880 Increase historical length and cleanups (#1196)
* increase historical length and a few cleanups
2019-06-19 20:59:44 +01:00
Carl Beekhuizen 3418c3506f
Merge dev and resolve conflicts (please let the CI tests pass with the new dev) 2019-06-19 20:27:54 +02:00
Hsiao-Wei Wang dc01218182
Add `dataclasses==0.6` to setup.py 2019-06-18 14:23:31 -06:00
Carl Beekhuizen 31a4700223
Merge conflicts on `dev` 2019-06-17 22:09:43 -04:00
Hsiao-Wei Wang 01e9f18713
Merge branch 'dev' into mypy 2019-06-17 17:51:46 -04:00
Hsiao-Wei Wang 9af9bbf42b
Merge branch 'dev' into mypy 2019-06-17 17:51:00 -04:00
Danny Ryan d7ac601b9e
Merge branch 'dev' into v071backport 2019-06-17 13:42:27 -06:00
Carl Beekhuizen 2ea6cede3e
Moves fork-choice objects away from SSZ 2019-06-17 10:48:33 -04:00
Danny Ryan ac76c6d279
Merge pull request #1182 from ethereum/cov-reports
generate coverage reports in make test, open as html site
2019-06-16 17:42:57 -06:00
Danny Ryan 2f9c554bf7
minor fix to makefile, add codecov instructiosn to readme 2019-06-16 17:38:48 -06:00
Danny Ryan 25a16bd26a
Merge pull request #1178 from ethereum/decode-with-pyssz
Fuzzing utilities package / SSZ decoding for spec
2019-06-16 17:25:50 -06:00
Carl Beekhuizen 9f2d06b2e7
Somehow I had indented with 5 spaces everywhere. 2019-06-16 16:02:56 -04:00
Carl Beekhuizen f421850dc9
Fixes tests! Thanks @hwwhww! 2019-06-16 15:53:42 -04:00
Carl Beekhuizen 4deb311b71
Debugging 1st test 2019-06-16 12:17:31 -04:00
Carl Beekhuizen 5d10cd63c7
SSZ (partially) handles Dicts 2019-06-16 09:52:52 -04:00
Carl Beekhuizen 061ecf7d0a
Adds fork-choice tests 2019-06-15 19:13:56 -04:00
Hsiao-Wei Wang 00a68e28b5
Define Custom Types via function_puller 2019-06-15 16:57:50 -04:00
Justin Drake ed748a7d76 Address Danny's comments 2019-06-15 15:09:50 +01:00
protolambda 1c51982c6b
generate coverage reports in make test, open as html site 2019-06-14 23:12:04 +02:00
protolambda 367586d888
remove need for presets loading, just test mainnet, not too many/large objects anyway 2019-06-14 21:31:33 +02:00
protolambda d4bf55e5a1
update pyssz to include deserialization bugfix 2019-06-14 21:24:24 +02:00
protolambda 895ab67815
fix decoder, also fix bug in pyssz, see PR 74 2019-06-14 20:41:08 +02:00
protolambda 01be8b7e65
minor fix 2019-06-14 19:16:15 +02:00
protolambda 7b0ffc1ace
move decoder for fuzzing, minor fixes, update dependency to support SOS style offsets 2019-06-14 19:09:49 +02:00
Danny Ryan a6230425b8
Merge branch 'dev' into container-cleanup 2019-06-14 10:36:41 -06:00
Danny Ryan f834f727fa
lint 2019-06-13 18:03:20 -06:00
Danny Ryan c391017a05
address #1146 by inserting state root and re-signing blocks in tests 2019-06-13 17:57:29 -06:00
protolambda e7bb9bf19b
SSZ decoding through pyssz, with translation of types/values 2019-06-14 01:56:36 +02:00
Diederik Loerakker e4704e08cc
Merge pull request #1175 from ethereum/bytes-type-error
fix #1169 bytes type error
2019-06-13 22:49:19 +02:00
Danny Ryan 4a08abfa1d
ensure sanity tests run with bls 2019-06-13 14:47:53 -06:00
Danny Ryan 7c0cc7f801
fix #1169 bytes type error 2019-06-13 14:32:45 -06:00
Hsiao-Wei Wang 7a366828ba
Make phase0 pass 2019-06-12 14:54:00 -04:00
Danny Ryan 577f76aff5
Merge pull request #1165 from ethereum/phase-generators
phase restricted generators
2019-06-11 16:48:18 -06:00
protolambda 9ec395c04f
fig linting + improve docs + structure of hash optimization 2019-06-11 21:53:38 +02:00
protolambda f4814862fe
fix typing check, add zero-hash cache to hash function 2019-06-11 19:23:45 +02:00
protolambda 22f624e12e
re-order type check for more speed 2019-06-11 18:08:27 +02:00
protolambda 7fafebd6cf
missed one case, fix withdrawal byte <> int problem 2019-06-11 17:32:42 +02:00
protolambda 2d636ddf5a
BLS withdrawal byte is formatted as int now, but still one byte. Justin changed spec, now fix tests + configs 2019-06-11 17:27:34 +02:00
Danny Ryan cc625c7d6d
lint 2019-06-11 09:26:23 -06:00
Danny Ryan ef1ef753a3
comment out transfer test from sanity tests 2019-06-11 09:16:37 -06:00
protolambda e86771250b
Fix tests to use new constant name 2019-06-11 17:16:02 +02:00
protolambda 46d8422510
fix ssz container recognition for generators 2019-06-11 16:49:36 +02:00
Hsiao-Wei Wang f2c33529df
Add mypy check in CI 2019-06-11 00:45:00 -04:00
Hsiao-Wei Wang 9f454185f8
WIP!
1. Use custom types in SSZ declaration
2. Casting
2019-06-11 00:44:54 -04:00
Hsiao-Wei Wang 8b64f37d22
Make uint64 be `class` for type hinting 2019-06-10 23:16:59 -04:00
Danny Ryan 94d4e3a944
operations suite generator for phase0 2019-06-10 20:05:43 -06:00
Danny Ryan c4bf772d30
demo phase restricted generators for epoch processing 2019-06-10 17:26:39 -06:00
Justin Drake 05f1a44a38 Fix tests 2019-06-10 21:20:45 +01:00
Justin Drake dc56d87eef Revert a couple of renamings 2019-06-10 21:16:51 +01:00
Danny Ryan e68b495ada
Merge branch 'dev' into master-port 2019-06-10 10:53:13 -06:00
Hsiao-Wei Wang 9fc197af67
class Bytes32 2019-06-10 11:10:13 -04:00
Justin Drake 565f61dfaa Cleanup containers 2019-06-09 20:41:21 +01:00
Carl Beekhuizen 67471a8d6e
Rework of phases decorator 2019-06-06 23:30:40 +02:00
Carl Beekhuizen 956c476d81
Move over to parameterised decorators for phases 2019-06-06 16:23:30 +02:00
Carl Beekhuizen 35c03c5f3e
Adds review suggestions I missed 2019-06-06 11:45:22 +02:00
Carl Beekhuizen 4c1b9ef6d6
Fixes custody key reveal test bug 2019-06-06 11:04:55 +02:00
Carl Beekhuizen 60d9dc68c4
Apply suggestions from @djrtwo's code review 2019-06-05 21:49:30 +02:00
Carl Beekhuizen e498ff7e94
Separates tests into phases 2019-06-05 21:28:30 +02:00
protolambda b9abc5f2cf
List[uint64] is not like a type but just for annotation, same for other Generics with __args__, Vector/BytesN work, because their metaclasses produce non-parametrized types, so don't check vector values when type contains args 2019-06-05 18:53:34 +02:00
protolambda 1cc7c7309d
change to issubclass, hope parametrized external type is ok 2019-06-05 18:28:09 +02:00
protolambda a7554d503c
fix for typing check of vector elements with non-type element type (annotation) 2019-06-05 18:02:39 +02:00
Carl Beekhuizen e5fb91c4a2
Make test generators work with phase 1 execution 2019-06-05 16:23:44 +02:00
Carl Beekhuizen d761b6f041
Implements new SSZ types 2019-06-05 15:29:26 +02:00
protolambda 4bf3a26afc
fix formatting 2019-06-04 18:18:18 +02:00
protolambda 6168a90a20
speed and simplicity improvement for next_power_of_two function 2019-06-04 18:12:23 +02:00
protolambda 578328bb54
call comments: remove partials from ssz rework PR, review that seperately 2019-06-04 18:11:50 +02:00
Carl Beekhuizen f6bb47c402
Apply @dankrad's suggestions from code review 2019-06-04 17:08:18 +02:00
Carl Beekhuizen 9d00a76493
Skips tests properly 2019-06-04 16:14:14 +02:00
protolambda 59137fd5a6
fix get_zero_value exception raise + fix up type checks 2019-06-04 15:40:15 +02:00
Carl Beekhuizen c06a60c95a
Fix descriptions
Co-Authored-By: Hsiao-Wei Wang <hwwang156@gmail.com>
2019-06-04 15:37:08 +02:00
Diederik Loerakker 8631cad251
Apply suggestions from code review
Co-Authored-By: Danny Ryan <dannyjryan@gmail.com>
2019-06-04 15:22:34 +02:00
Hsiao-Wei Wang 6d55ba9c8c
minor refactor 2019-06-04 18:59:52 +08:00
Hsiao-Wei Wang e2eab66a9e
Refactor 2019-06-04 17:55:05 +08:00
Hsiao-Wei Wang a7ee6f108e
Refactor 2019-06-04 17:42:21 +08:00
protolambda fb584bc067
fix linting dependency + caching issue 2019-06-03 17:23:30 +02:00
Hsiao-Wei Wang a5576059f8
Fix `ssz_partials.py` linter errors 2019-06-03 17:19:22 +08:00
protolambda 8e8ef2d0a4
Fix forgotten setup.py change, make generators using ssz work again 2019-06-01 03:19:29 +02:00
protolambda fae1e9285d
resolve some new lint issues detected by newer version, and a few looked over ones 2019-06-01 02:40:29 +02:00
protolambda f3a517b6f6
fix minor lint problems 2019-06-01 02:32:11 +02:00
protolambda 7df788c7d5
resolve linting problems, except ssz-partials 2019-06-01 02:22:14 +02:00
protolambda df25f22f01
get rid of scope-problem inducing init trick 2019-06-01 01:55:20 +02:00
protolambda 77d4f0b407
update generator type hinting to use new type syntax 2019-06-01 01:53:50 +02:00
protolambda 33233c98ff
fix ssz imports 2019-06-01 01:51:09 +02:00
protolambda 1c734d30a0
fix utils init 2019-06-01 01:50:28 +02:00
protolambda 3cb43fcc27
fix ssz infer type decorator, one None argument too many 2019-06-01 01:49:52 +02:00
protolambda e044305457
Merge branch 'dev' into ssz-impl-rework 2019-06-01 01:34:49 +02:00
Danny Ryan 8b65b95bd4
port deposit test from #1133 2019-05-31 13:54:58 -06:00
Carl Beekhuizen 28d98b5cf4
PEP8 cleanups 2019-05-31 13:20:10 +02:00
Carl Beekhuizen 92916e5383
Tests run with both spec versions 2019-05-31 13:08:42 +02:00
Carl Beekhuizen 9e8a969f22
Removes old tests & fixes phase1 tests 2019-05-31 12:44:34 +02:00
Carl Beekhuizen 0c57cfcaa7
state builds from spec version 2019-05-31 11:33:47 +02:00
Carl Beekhuizen ec9f8f15ed
Adds Custody Tests 2019-05-31 11:32:53 +02:00
Carl Beekhuizen ed71efc061
state is kwarg 2019-05-31 10:41:39 +02:00
Carl Beekhuizen 5155bc6c4f
Makes everything pass around 2019-05-30 22:57:18 +02:00
Vitalik Buterin 3630b2ea9f Merge branch 'ssz-impl-rework' of github.com:ethereum/eth2.0-specs into ssz-impl-rework 2019-05-30 09:42:47 -04:00
Vitalik Buterin 8fae0f8c78 Added support for SSZ partials 2019-05-30 09:42:42 -04:00
Hsiao-Wei Wang ebdf74c6b8
kick the CI 2019-05-30 15:57:39 +08:00
Michael Sproul cc5b172da3 Test deposit top-up with inconsistent withdrawal credentials (#1133)
* Simplify deposits

* Avoid divisions by zero

Possible fix to avoid four cases of divisions by zero:

* `return state.validator_registry[index].effective_balance // adjusted_quotient // BASE_REWARDS_PER_EPOCH`
* `rewards[index] += get_base_reward(state, index) * attesting_balance // total_balance`
* `validator.effective_balance * min(total_penalties * 3, total_balance) // total_balance`
* `rewards[index] += base_reward * attesting_balance // committee_balance`

See also #1107.

* fix deposit test for new index handling

* tests: deposit with inconsistent withdrawal credentials

* Update README.md

* Update 0_beacon-chain.md

* Fix linter errors

* Update test_process_deposit.py

* fix deposit test

* fix lint
2019-05-29 20:38:55 -06:00
Danny Ryan f0314bec52
Merge branch 'dev' into JustinDrake-patch-13 2019-05-29 20:15:17 -06:00
Hsiao-Wei Wang 6ec59867ef
Fix linter errors 2019-05-30 09:53:46 +08:00
Danny Ryan 6286fb3fb5
Merge branch 'dev' into JustinDrake-patch-13 2019-05-28 18:15:33 -06:00
Vitalik Buterin 053d6e7805 Simplified hash tree root 2019-05-28 14:33:12 -04:00
Vitalik Buterin 4955c40a7b merge 2019-05-28 09:44:53 -04:00
protolambda 401dba3230
Merge branch 'bls-setting' into v06x-to-dev 2019-05-28 15:38:08 +02:00
protolambda 6ffd41650b
suggestion from hww, reduce into one bls_setting key 2019-05-28 15:35:00 +02:00
Vitalik Buterin 19601df572 Starting work on partials 2019-05-28 09:30:35 -04:00
Hsiao-Wei Wang f0ceefc36d
Make `test_libs/pyspec/tests` pass
1. Use `typing_inspect` library to check if it's `typing.List[Any]`. Use it in `is_list_type`.
2. Add `__hash__`, `__eq__`, `__repr__` methods to some classes.
2019-05-28 13:57:42 +08:00
Hsiao-Wei Wang 00ffaf4d71
Fix ssz path 2019-05-28 12:37:41 +08:00
protolambda 5e28adf556
bugfix: don't forget about var-length bytes getting a length mixin 2019-05-28 00:51:27 +02:00
protolambda 9e61cc2ed3
bugfix: typing edge-case: python bool is subclass of int. 2019-05-28 00:45:13 +02:00
protolambda 0e9a047b1d
Merge branch 'dev' into ssz-impl-rework 2019-05-28 00:42:35 +02:00
Danny Ryan 47f3df6d0a
fix deposit test for new index handling 2019-05-27 16:40:00 -06:00
protolambda d023d2d20f
lots of bugfixes 2019-05-27 23:40:05 +02:00
protolambda 0f79ed709b
update yaml encoder/decoder and obj randomizer for typed ssz usage 2019-05-27 22:19:18 +02:00
protolambda c68944bd53
separate type (direct) from kinds (alias incl) 2019-05-27 22:18:34 +02:00
protolambda 87b3466eae
update encoder and decoder for reading from parsed data 2019-05-27 21:46:14 +02:00
protolambda d63b553a2d
efficiency bugfix in bytes encoding, improve typing doc + bugfix 2019-05-27 21:45:47 +02:00
protolambda f3088884b3
Minor adjustments + getting the beacon spec doc ready 2019-05-27 20:29:53 +02:00
Danny Ryan d3d8b36365
Merge branch 'dev' into v06x-to-dev 2019-05-27 11:09:52 -06:00
protolambda d5eab257d0
improve impl, box less used integer types, use uint64 as default 2019-05-27 18:01:46 +02:00
Danny Ryan 8d420c0780
fix prestate for process registry updates 2019-05-27 08:38:37 -06:00
Vitalik Buterin e14f789779 Presentation edits 2019-05-27 08:07:00 -04:00
Vitalik Buterin 5b6a98b107 Some updates 2019-05-25 14:06:42 -04:00
Carl Beekhuizen c4b9c6372c
Merge in state_transition.py 2019-05-25 15:54:14 +02:00