acoglio

acoglio

Member Since 9 years ago

Kestrel Institute, Silicon Valley, California

Experience Points
111
follower
Lessons Completed
0
follow
Lessons Completed
1
stars
Best Reply Awards
12
repos

2826 contributions in the last year

Pinned
⚡ ACL2 System and Books as Maintained by the Community
⚡ The "Yellow Paper": Ethereum's formal specification
⚡ Java implementation of the Ethereum yellowpaper. For JSON-RPC and other client features check Ethereum Harmony
⚡ Common tests for all Ethereum implementations
⚡ Mastering Ethereum, by Andreas M. Antonopoulos, Gavin Wood
Activity
Dec
3
2 days ago
push

acoglio push acl2/acl2

acoglio
acoglio
acoglio
acoglio

[r1cs] Add another test of range-check gadget.

acoglio
acoglio

[r1cs] Add :use hint support to verify-r1cs and related tools.

acoglio
acoglio
acoglio
acoglio

[ABNF] Fix typo in documentation.

Thanks to Eric McCarthy for reporting this issue.

acoglio
acoglio

[ABNF] Extend some documentation.

Explain the fixing theorems.

Thanks to Eric McCarthy for a discussion that led to realizing the need for this clarification.

commit sha: a6b581127e0cba5e34f71acfb48b28a92077945b

push time in 1 day ago
Activity icon
delete

acoglio in AleoHQ/leo delete branch patch/add-always-const-annotation-for-len

deleted time in 2 days ago
push

acoglio push AleoHQ/leo

acoglio
acoglio

add always const annotation, re-work internal annotations

acoglio
acoglio

add always const annotation, re-work internal annotations

acoglio
acoglio
acoglio
acoglio

Merge pull request #1494 from AleoHQ/patch/add-always-const-annotation-for-len

Patch/Add always const annotation for len

commit sha: 474934aaa89e0ef3f21e3593fc8911ec465fec50

push time in 2 days ago
pull request

acoglio pull request AleoHQ/leo

acoglio
acoglio

Patch/Add always const annotation for len

Motivation

Implements the temporary fix for the problem discussed in #1475. However, it does not close the issue as we should, in the long run, take a long-form approach.

Test Plan

Added a new test for this case.

Dec
1
4 days ago
pull request

acoglio merge to AleoHQ/leo

acoglio
acoglio

Patch/Add always const annotation for len

Motivation

Implements the temporary fix for the problem discussed in #1475. However, it does not close the issue as we should, in the long run, take a long-form approach.

Test Plan

Added a new test for this case.

Activity icon
issue

acoglio issue comment AleoHQ/leo

acoglio
acoglio

[Bug] field declarations cant use more than 76 digits on staging

🐛 Bug Report

on leo master you can use any size number to create a field, but on staging you can only use up to 76 characters. the following example has 77 digits in it and it compiles on master but throws an IR error on staging

Code snippet to reproduce

function main () {
    let x: field = 11111111111111111111111111111111111111111111111111111111111111111111111111111;
}

Stack trace & error message

[email protected]:~/work/leo-playground$ ./run.sh
    Finished dev [unoptimized + debuginfo] target(s) in 0.09s
      Done Finished in 0 milliseconds 

     Build Starting...
     Build Compiling main program... ("/home/0rphon/work/leo-playground/src/main.leo")
      Done Finished in 21 milliseconds 

f#0 i#1: expected field element input type, found `[8198552921648689607, 13663686148824196892, 591943673742124792, 1770102123480502530]`

Your Environment

  • leo commit 7f32082
  • rustc 1.56.1 (59eed8a2a 2021-11-01)
  • Ubuntu 20.04 (focal) [64-bit]
acoglio
acoglio

As possibly related, does it work with -1field or -12345field or -<SomethingLarge>field? I wonder if it's checking that the integer is in [0, prime).

push

acoglio push acl2/acl2

acoglio
acoglio

[Std/osets] Fix typo in documentation.

acoglio
acoglio

[Yul] Improve the dynamic semantics.

Reformulate function execution in a way that will be correct also when we extend the computation state with a (dialect-specific) global state.

acoglio
acoglio

[Yul] Fix bug in dynamic semantics.

The computation state after the execution of the initialization block of a 'for' statement was not properly threaded through to execute the loop iterations.

acoglio
acoglio

[Yul] Refactor some code.

Turn an auxiliary function into a "main" function, changing its name.

acoglio
acoglio

[Yul] Fix bug in static safety checks.

In a single variable declaration, the initializing expression (if any) must be checked before adding the variable. The checking of multiple variable declarations already did that.

acoglio
acoglio

[Yul] Simplify dynamic semantics.

Put the function state outside of the computation state, since it does not get updated in the same way as the global and local state: it is an environment that only needs to be passed as an input to the ACL2 execution functions, without needing to be returned as output. (The addition of the functions in a block to the function state is realized via a separate ACL2 function, which is called to augment the function state.)

Adapt correctness proof of the DeadCodeEliminator transformation. This proof is now simpler; the only "drawback" is that it no longer exhibits some of the proof approaches needed for more complex transformations, namely the transformation of computation states (because now we only need to transform the function state, and not the computation state any more), but that more general approach is clear, and will be used in upcoming proofs of other transformations.

acoglio
acoglio

[Yul] Improve some nomenclature.

Rename 'function states' to 'function environments'. This also involves some ACL2 fixtype and function names.

acoglio
acoglio

[Yul] Move some code within a file.

acoglio
acoglio

[Yul] Expand some documentation.

acoglio
acoglio

[Yul] Move some code within a file.

Put all the fixtypes and functions about function environments contiguously.

acoglio
acoglio

[Yul] Add a fixtype and a function.

These are for the abstract syntax.

acoglio
acoglio

[Yul] Add an auxiliary transformation function.

This is for lists of function definitions.

Part of the DeadCodeEliminator transformation.

acoglio
acoglio

[Yul] Fix bug in dynamic semantics.

Before this commit, the function environment was a finite map from function names to function information (i.e. inputs, outputs, body), that was extended as block were entered, also across function calls. However, when calling a function, it is necessary to reduce the functions in the function environment to the functions in scope for the called function.

Thus, the function environment is now a stack (i.e. list) of finite maps (i.e. scopes), that is suitably reduced when calling functions. A function scope is pushed when entering a block, and popped of zero or more scopes when calling a function. Function environments are just recursively passed to the execution functions; they are no longer threaded through, and so there is no need to pop anything when exiting a block (we simply go back to the function environment before the block.

At the same time, we have simplified the collection of the functions that form the function scope to push onto the function environmetn stack, by first filtering the function definitions out of the statement list in a block, and then turning the list of function definitions into a function scope. The resulting code is more orthogonal and clear.

acoglio
acoglio

[Yul] Adapt the proof of DeadCodeEliminator.

This adapts the proof to the change to the dynamic semantics performed by the previous commit. Some aspects of the proof are actually simpler, and there may be opportunities for further simplifications of the proof.

acoglio
acoglio

[Yul] Simplify some hints.

acoglio
acoglio

[Yul] Simplify DeadCodeEliminator proof.

Avoid the equivalence relations about function environment results and computation state results -- they are no longer needed.

acoglio
acoglio

[Yul] Add some rules and simplify some hints.

Also update some documentation.

acoglio
acoglio

[Yul] Simplify proof of DeadCodeEliminator.

Avoid certain theorems, enabling certain functions instead. This seems simpler overall.

commit sha: 76a57fd530dc8c40e0173586b06b7ef9867bbf80

push time in 4 days ago
pull request

acoglio merge to ethereum/yellowpaper

acoglio
acoglio

Genesis block difficulty is 2^34, not 2^17

See https://etherscan.io/block/0

Before: Screenshot 2021-12-01 at 12 06 28

After: Screenshot 2021-12-01 at 12 06 44

acoglio
acoglio

I haven't really studied this part of the Yellow Paper, but the change looks fine as far as I can tell.

pull request

acoglio merge to ethereum/yellowpaper

acoglio
acoglio

Genesis block difficulty is 2^34, not 2^17

See https://etherscan.io/block/0

Before: Screenshot 2021-12-01 at 12 06 28

After: Screenshot 2021-12-01 at 12 06 44

acoglio
acoglio

I haven't really studied this part of the Yellow Paper, but the changes looks fine as far as I can tell.

Activity icon
issue

acoglio issue comment AleoHQ/leo

acoglio
acoglio

[Critical] setup-phase post-key-save signed int input division OOM

🐛 Bug Report

related to #608. multiple i128 division operations using input causes an OOM during the setup stage.

while isolating this bug from leo-fuzzer programs i found several examples that would OOM during the build stage instead of setup, although i was incapable of reproducing them a few minutes later. if i find a repeatable example of this bug that OOM's during the build step then ill make sure to report that as well

Code snippet to reproduce

input:

[main]
x: i128 = 2i128;

code:

function main (
    x: i128,
) {
    for i in 0..10 {
        let y = x / x;
    }
}

Stack trace & error message

D:\Work\leo_playground>D:\Work\leo_repos\leo\target\release\leo clean && D:\Work\leo_repos\leo\target\release\leo run
      Done Finished in 182 milliseconds 

     Build Starting...
     Build Compiling main program... ("D:\\Work\\leo_playground\\src/main.leo")
     Build Complete
      Done Finished in 48876 milliseconds 

     Setup Starting...
     Setup Saving proving key ("D:\\Work\\leo_playground\\outputs/leo_playground.lpk")
memory allocation of 4294967296 bytes failed

Your Environment

  • leo's latest master commit 6fb1e713ed7e3b16e233d5221fc3dcaa0891cf6a
  • rustc version 1.49.0
  • Windows 10.0.19042 (Windows 10 Pro) [64-bit]
acoglio
acoglio

In general, some program analysis or transformation algorithms may take an impractically long time without running out of memory: they may be stuck in a loop that takes long to converge, and things like that. So this may or may not be a bug, vs. just something that takes long. The example program doesn't look like it has anything really large (like a loop with many iterations), other that u128 division, which is probably somewhat expensive in R1CS, but the loop here has only 10 iterations. So I think it's worth investigating what's happening here, before we can classify this as a bug or just something that takes long; in the second case, perhaps it can be addressed via an estimation and warning approach similar to the one I mentioned in #733.

Activity icon
issue

acoglio issue comment AleoHQ/leo

acoglio
acoglio

[Bug] loop never gets past build phase

🐛 Bug Report

while testing for #711 on the newest leo commit, i found that the following code seems to never get past build phase. i waited 30 minutes before hitting ctrl+c

Code snippet to reproduce

[main]
x: i128 = 2i128;
function main(x: i128) {
    for i in 0..999999999 {
        let y = x ** x;
    }
}

Stack trace & error message

D:\Work\leo_playground>D:\Work\leo_repos\leo\target\release\leo run
     Build Starting...
     Build Compiling main program... ("D:\\Work\\leo_playground\\src/main.leo")
^C

Your Environment

  • leo commit da0bd1a
  • rustc version 1.50.0
  • Windows 10.0.19042 (Windows 10 Pro) [64-bit]
acoglio
acoglio

It doesn't look like a functional bug per se, but just something that takes an impractically long time. In general, loops are unrolled, i.e. replicated as many time as the number of iterations, and this is a loop with a large number of iterations.

It would be a better UX if the compiler could estimate in advance if something is going to take a long time to compile, and warn the user in advance instead of plunging into the "abyss". This estimation shouldn't be hard to do for loops. But loop unrolling is just one possible cause: there is also function inlining, array decomposition, and probably certain operations on large integers (such as exponentiation on u128); all of these can take a long time. So it is a broader issue, which we have also discussed in the past. I don't think it's as urgent as other issues.

In the particular loop examples in this GitHub Issue, the variable y in the body is not used for anything, so the let could be optimized away via known program optimization techniques, resulting in loops with an empty body. Inlining a loop with an empty body should be essentially a no-op; in fact, the whole loop can be optimized away, because the scope of the loop variable is limited to the loop. Adding more of these optimizations to the Leo compiler would be appropriate (as we have also discussed previously), but a useful loop is one that cannot be optimized away, so the issue with too many iterations cannot be solved just by optimizing loops away in general.

Activity icon
delete

acoglio in AleoHQ/leo delete branch emit-ir-flag

deleted time in 4 days ago
push

acoglio push AleoHQ/leo

acoglio
acoglio

leave only hash in test expectations

acoglio
acoglio

Merge pull request #1484 from AleoHQ/emit-ir-flag

[Impl] Adds ir.json, hashes IR expectations

commit sha: 3626fbdbe0b2b1c956f5191fe559ab454e88c390

push time in 4 days ago
pull request

acoglio pull request AleoHQ/leo

acoglio
acoglio

[Impl] Adds ir.json, hashes IR expectations

This PR should be merged only after this one is in: https://github.com/AleoHQ/snarkVM/pull/503

Motivation

Closes #1440 Closes #1479

Test Plan

None.

push

acoglio push acl2/acl2

acoglio
acoglio

[Std/osets] Fix typo in documentation.

acoglio
acoglio

[Yul] Improve the dynamic semantics.

Reformulate function execution in a way that will be correct also when we extend the computation state with a (dialect-specific) global state.

acoglio
acoglio

[Yul] Fix bug in dynamic semantics.

The computation state after the execution of the initialization block of a 'for' statement was not properly threaded through to execute the loop iterations.

acoglio
acoglio

[Yul] Refactor some code.

Turn an auxiliary function into a "main" function, changing its name.

acoglio
acoglio

[Yul] Fix bug in static safety checks.

In a single variable declaration, the initializing expression (if any) must be checked before adding the variable. The checking of multiple variable declarations already did that.

acoglio
acoglio

[Yul] Simplify dynamic semantics.

Put the function state outside of the computation state, since it does not get updated in the same way as the global and local state: it is an environment that only needs to be passed as an input to the ACL2 execution functions, without needing to be returned as output. (The addition of the functions in a block to the function state is realized via a separate ACL2 function, which is called to augment the function state.)

Adapt correctness proof of the DeadCodeEliminator transformation. This proof is now simpler; the only "drawback" is that it no longer exhibits some of the proof approaches needed for more complex transformations, namely the transformation of computation states (because now we only need to transform the function state, and not the computation state any more), but that more general approach is clear, and will be used in upcoming proofs of other transformations.

acoglio
acoglio

[Yul] Improve some nomenclature.

Rename 'function states' to 'function environments'. This also involves some ACL2 fixtype and function names.

acoglio
acoglio

[Yul] Move some code within a file.

acoglio
acoglio

[Yul] Expand some documentation.

acoglio
acoglio

[Yul] Move some code within a file.

Put all the fixtypes and functions about function environments contiguously.

acoglio
acoglio

[Yul] Add a fixtype and a function.

These are for the abstract syntax.

acoglio
acoglio

[Yul] Add an auxiliary transformation function.

This is for lists of function definitions.

Part of the DeadCodeEliminator transformation.

acoglio
acoglio

[Yul] Fix bug in dynamic semantics.

Before this commit, the function environment was a finite map from function names to function information (i.e. inputs, outputs, body), that was extended as block were entered, also across function calls. However, when calling a function, it is necessary to reduce the functions in the function environment to the functions in scope for the called function.

Thus, the function environment is now a stack (i.e. list) of finite maps (i.e. scopes), that is suitably reduced when calling functions. A function scope is pushed when entering a block, and popped of zero or more scopes when calling a function. Function environments are just recursively passed to the execution functions; they are no longer threaded through, and so there is no need to pop anything when exiting a block (we simply go back to the function environment before the block.

At the same time, we have simplified the collection of the functions that form the function scope to push onto the function environmetn stack, by first filtering the function definitions out of the statement list in a block, and then turning the list of function definitions into a function scope. The resulting code is more orthogonal and clear.

acoglio
acoglio

[Yul] Adapt the proof of DeadCodeEliminator.

This adapts the proof to the change to the dynamic semantics performed by the previous commit. Some aspects of the proof are actually simpler, and there may be opportunities for further simplifications of the proof.

acoglio
acoglio

[Yul] Simplify some hints.

acoglio
acoglio

[Yul] Simplify DeadCodeEliminator proof.

Avoid the equivalence relations about function environment results and computation state results -- they are no longer needed.

acoglio
acoglio

[Yul] Add some rules and simplify some hints.

Also update some documentation.

acoglio
acoglio

[Yul] Simplify proof of DeadCodeEliminator.

Avoid certain theorems, enabling certain functions instead. This seems simpler overall.

commit sha: 76a57fd530dc8c40e0173586b06b7ef9867bbf80

push time in 4 days ago
push

acoglio push acl2/acl2

acoglio
acoglio

[Std/strings] Rename some functions.

As discussed on the ACL2 Books mailing list, this commit performs the following renamings:

old | new ---------------+------------------------- natstr | nat-to-dec-string natstr-width | nat-to-dec-string-width natstr-list | nat-to-dec-string-list natstr16 | nat-to-hex-string natstr16-list | nat-to-hex-string-list natstr8 | nat-to-oct-string natstr8-list | nat-to-oct-string-list natstr2 | nat-to-bin-string natstr2-list | nat-to-bin-string-list intstr | int-to-dec-string intstr-list | int-to-dec-string-list natsize-slow | nat-to-dec-string-size-slow natsize-fast | nat-to-dec-string-size-fast natsize | nat-to-dec-string-size natsize16-aux | nat-to-hex-string-size-aux natsize16 | nat-to-hex-string-size natsize8-aux | nat-to-oct-string-size-aux natsize8 | nat-to-oct-string-size natsize2-aux | nat-to-bin-string-size-aux natsize2 | nat-to-bin-string-size

As requested by Sol Swords, macro aliases for NATSTR and INTSTR have been added, and all the [books]/centaur/ files use those instead of NAT-TO-DEC-STRING and INT-TO-DEC-STRING, with the only exception of [books]/fgl/aabf-nest.lisp, which is perhaps including the string functions in an "indirect" way, and somehow is not getting the two new macro aliases.

commit sha: d3da4714b360b9f8b08df30b8709aadf440792c6

push time in 4 days ago
push

acoglio push acl2/acl2

acoglio
acoglio

Updated projects/rac/lisp/internal-fns-gen.lisp

acoglio
acoglio

Merge pull request #1331 from myall86/master

Updated projects/rac/lisp/internal-fns-gen.lisp

acoglio
acoglio

Updated SBCL installation requirements (I found that a source edit is no longer necessary, maybe because books/top.lisp, replacing books/doc/top-slow.lisp, no longer builds the manual).

acoglio
acoglio

Merge commit 'cdd33ee1adcd728dd8cf299c65d821a90e4ccc75' into HEAD

commit sha: 9acc140563119e0c1789da07ce310335d1e3a4cd

push time in 4 days ago
Nov
30
5 days ago
pull request

acoglio merge to AleoHQ/leo

acoglio
acoglio

updates snarkvm

Updates cargo lock to point towards lastest snarkvm master commit as this fixes an issue due to an anyhow update.

push

acoglio push acl2/acl2

acoglio
acoglio

[ATC] Extend checksum test.

Leave the old test (on ints) as "legacy" (still a good test), and add a version that is more realistic, using unsigned chars for bytes and unsigned int for the checksum. Also update the handwritten C test code.

acoglio
acoglio

[ATC] Improve user doc.

Factor the text about untranslated vs. translated terms into separate section.

acoglio
acoglio

[ATC] Import more symbols into the package.

Avoid many ACL2:: prefixes.

commit sha: 3539b191c01521bbf98a68c60cc612baa3f4d325

push time in 5 days ago
push

acoglio push acl2/acl2

acoglio
acoglio

[axe] Collect docs for JVM version of Axe.

acoglio
acoglio

[axe] Include JVM version docs in main Axe doc.

acoglio
acoglio

[kestrel] Allow all ttags and skip-proofs in doc book.

acoglio
acoglio

Allow skip-proofs in books/top.

This seems fine, as the purpose of this book is to check for name conficts.

acoglio
acoglio

Merge commit '82fccb78cee875066380e8c680d030e43d82152e' into HEAD

acoglio
acoglio

[ATC] Extend checksum test.

Leave the old test (on ints) as "legacy" (still a good test), and add a version that is more realistic, using unsigned chars for bytes and unsigned int for the checksum. Also update the handwritten C test code.

acoglio
acoglio

[ATC] Improve user doc.

Factor the text about untranslated vs. translated terms into separate section.

acoglio
acoglio

[ATC] Import more symbols into the package.

Avoid many ACL2:: prefixes.

commit sha: 3539b191c01521bbf98a68c60cc612baa3f4d325

push time in 5 days ago
Nov
29
6 days ago
push

acoglio push acl2/acl2

acoglio
acoglio

[ATC] Add MV-LET designations.

These generalize the DECLAR and ASSIGN designations for LET.

See the updated documentation for details.

acoglio
acoglio

[ATC] Refactor some code.

Introduce some dedicated code to check for MV-LET statement terms, for the purpose of more easily extending this code to allow more forms of those terms.

acoglio
acoglio

[ATC] Locally include APPLY$.

So we can use LOOP$ for some upcoming code, and perhaps also to shorten some current code.

This inclusion must be local for now, to avoid a conflict in PERM in downstream books (in the Kestrel private repos).

acoglio
acoglio

[ATC] Use LOOP$ to make some code shorter and clearer.

acoglio
acoglio

[ATC] Add code to recognize DECLARn and ASSIGNn.

These are new macros to represent declarations of assignments with initializers and expressions that have side effects.

Also have the main code to generate C statements call the new function to recognize and categorize MV-LETs.

acoglio
acoglio

[ATC] Generalize code that recognizes MV-LET.

This now recognizes also declarations and assignments with initializers and expressions with side effects.

acoglio
acoglio

[ATC] Add support for DECLARn and ASSIGNn.

These are versions of DECLAR and ASSIGN for MV-LET instead of LET. They represent declarations and assignments whose initializer or expression have side effects.

acoglio
acoglio
acoglio
acoglio
acoglio
acoglio

Merge commit '82fccb78cee875066380e8c680d030e43d82152e' into HEAD

commit sha: 25ea667f2ee4fa42f66f76bb88207c744aecf96a

push time in 5 days ago
Activity icon
issue

acoglio issue AleoHQ/leo

acoglio
acoglio

[Feature] Prototype transaction model

🚀 Feature

Even though the design of the new transaction model has not been finalized yet, it seems prudent to start building some initial version of it, along the lines of the approach to explicitly construct Transaction values described in the transaction model document. This involves defining (initial) data types for records, transitions, etc. (in the Leo stdlib) and implementing a 'transaction builder' as part of the Leo CLI.

While some of these features may change as we figure out an improved model, it is likely that this initial prototype will uncover, and make us solve, some general issues. Furthermore, it will give us an opportunity to try and implement example applications, which will help inform the evolution of the design.

Activity icon
issue

acoglio issue comment AleoHQ/leo

acoglio
acoglio

[Change] Update State Record Model for Testnet 2

In Testnet2 some of the Record struct in snarkVM has been changed. We should update our testnet2 branch to match this behavior.

acoglio
acoglio

It would be also good to update https://developer.aleo.org/aleo/concepts/records in the welcome repo, in the next-release branch there.

pull request

acoglio merge to AleoHQ/leo

acoglio
acoglio

[Impl] Adds ir.json

This PR should be merged only after this one is in: https://github.com/AleoHQ/snarkVM/pull/503

Motivation

Closes #1440

Test Plan

None.

push

acoglio push acl2/acl2

acoglio
acoglio

[alists-light] Add a rule (commented out for now).

acoglio
acoglio

[axe] Move/drop library rules.

acoglio
acoglio

[typed-lists-light] Add a rule about nat-listp.

Thanks to Stephen Westfold for working an example that led to this.

acoglio
acoglio

[axe] Add a rule class and some comments.

acoglio
acoglio

[axe] Fix/improve some comments.

acoglio
acoglio

[axe] Add some rules about merging terms into DAGs.

acoglio
acoglio

[axe] Add support for :use hints in generated Axe provers.

acoglio
acoglio

[ATC] Add MV-LET designations.

These generalize the DECLAR and ASSIGN designations for LET.

See the updated documentation for details.

acoglio
acoglio

[ATC] Refactor some code.

Introduce some dedicated code to check for MV-LET statement terms, for the purpose of more easily extending this code to allow more forms of those terms.

acoglio
acoglio

[ATC] Locally include APPLY$.

So we can use LOOP$ for some upcoming code, and perhaps also to shorten some current code.

This inclusion must be local for now, to avoid a conflict in PERM in downstream books (in the Kestrel private repos).

acoglio
acoglio

[ATC] Use LOOP$ to make some code shorter and clearer.

acoglio
acoglio

[ATC] Add code to recognize DECLARn and ASSIGNn.

These are new macros to represent declarations of assignments with initializers and expressions that have side effects.

Also have the main code to generate C statements call the new function to recognize and categorize MV-LETs.

acoglio
acoglio

[ATC] Generalize code that recognizes MV-LET.

This now recognizes also declarations and assignments with initializers and expressions with side effects.

acoglio
acoglio

[ATC] Add support for DECLARn and ASSIGNn.

These are versions of DECLAR and ASSIGN for MV-LET instead of LET. They represent declarations and assignments whose initializer or expression have side effects.

commit sha: 2255b06fdfcd3bb1ef9ec5aca174d2a5905c25df

push time in 6 days ago
Nov
28
1 week ago
Activity icon
issue

acoglio issue comment ethereum/yellowpaper

acoglio
acoglio

Implement EIP-2681: Limit account nonce to 2^64-1

Fixes #813. Please note that this applies from genesis, and geth implements it now.

I tried to implement this and I think I found the correct place for the external transaction validation. However I have no good idea where to describe the rules for CREATE/CREATE2.

acoglio
acoglio

Equations (13) and (17) say that the nonce is a 256-bit word. Should they be changed too?

Previous