oguimbal / hyvm Goto Github PK
View Code? Open in Web Editor NEWRun arbitrary code on the EVM
License: The Unlicense
Run arbitrary code on the EVM
License: The Unlicense
As a new user, how can I interact with the HyVM?
Are there tools available to compile to the bytecode executable by the HyVM? Or alternatively, Is there a particular method of extracting a specific function's bytecode from a previously compiled evm contract?
At this time, HyVM do not use a verifier but it can be enabled. A verifier can be used to add some check on calls to the HyVM. For example prevent specific opcodes to be executed or being able to only call one contract with the HyVM.
Other checks can be implemented at the discretion of the user.
The feature is not maintained for now, it needs tests, refactor and fixes.
I think the flow would be a bit more consistent if staticExec
was actually just a fallback.
staticHyvm.staticcall("")
vs
staticHyvm.staticExec("")
There's an example here. ๐ซก
At this time, op_jump
only checks if the destination is equal to 0x5B
(jumpdest
). But this is not sufficient to validate that the destination is valid: 0x5B
could be a value inside a PUSH
. More checks need to be done.
In case checks consume too much gas, those could be made optional as not verifying them would not prevent correct bytecode to be correctly executed (for example if bytecode was compiled using solc
or equivalent).
https://ethereum.org/en/developers/tutorials/yellow-paper-evm/#943-jump-dest-valid
is there any particular reason create is not implemented?
Right now it appears like calldata opcodes are essentially unused, they appear to just load zeros.
Would it make sense to add a calldata mechanism where calldata can be appended to the bytecode?
This might be a breaking change though.
Our use case would be that users can sign bytecode they wish to execute (eg. bytecode to do a limit order), but then the executing agent can add some execution-time variables in (eg. the execution fee recipient wallet or an extra slippage parameter).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.