| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Improve the duplication method of the stack to reuse big ints by passing
in an existing integer pool.
|
| |
|
|
|
|
|
| |
Improved push instructions by removing unnecessary big int allocations
and by making it int instead of big.Int
|
| |
|
| |
|
|
|
|
|
|
| |
Add the object to the list of destructed objects during a selfdestruct /
suicide operation and also remove it from the list once the journal
reverts.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit is a preparation for the upcoming metropolis hardfork. It
prepares the state, core and vm packages such that integration with
metropolis becomes less of a hassle.
* Difficulty calculation requires header instead of individual
parameters
* statedb.StartRecord renamed to statedb.Prepare and added Finalise
method required by metropolis, which removes unwanted accounts from
the state (i.e. selfdestruct)
* State keeps record of destructed objects (in addition to dirty
objects)
* core/vm pre-compiles may now return errors
* core/vm pre-compiles gas check now take the full byte slice as argument
instead of just the size
* core/vm now keeps several hard-fork instruction tables instead of a
single instruction table and removes the need for hard-fork checks in
the instructions
* core/vm contains a empty restruction function which is added in
preparation of metropolis write-only mode operations
* Adds the bn256 curve
* Adds and sets the metropolis chain config block parameters (2^64-1)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
execQueue used an atomic counter to track whether the queue had been
closed, but the checking the counter didn't happen because the queue was
blocked on its channel.
Fix it by using a condition variable instead of sync/atomic. I tried an
implementation based on channels first, but it was hard to make it
reliable.
quit now waits for the queue loop to exit.
|
| |
|
|
|
|
|
|
|
| |
Previously, resolve errors were being swallowed and the returned error
was a generic "not a content hash" which isn't helpful.
This updates the Resolve function to fail fast rather than only
returning an error at the end, and also adds test coverage.
|
| |
|
|
|
|
|
|
| |
CentOS has been added as a multi-machine option to the Vagrant script.
Ubuntu is still the default option. For starting the CentOS machine, use:
vagrant up centos
|
|\
| |
| | |
mobile: add toString & rlp/json encoding for protocol types
|
|/ |
|
|\
| |
| | |
cmd, node: support different bootnodes, fix default light port
|
|/ |
|
| |
|
|\
| |
| | |
core: fix processing regression during receipt import
|
| | |
|
|\ \
| |/
|/| |
common/bitutil: added data compression algorithm
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
travis: adapt build script to new travis VM settings
|
|/ |
|
|\
| |
| | |
common/bitutil, consensus/ethash: reusable bitutil package
|
|/ |
|
| |
|
| |
|
|\
| |
| | |
cmd, core, params: add --rinkeby flag for fast connectivity
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* core: Fix for consensus test gasLimit > 2^63-1 https://github.com/ethereum/tests/blob/develop/BlockchainTests/bcInvalidHeaderTest.json#L238
* core: fix testcase for uncle gasUsage > gasLimit : https://github.com/ethereum/tests/blob/develop/BlockchainTests/EIP150/bcUncleHeaderValiditiy.json#L986
* math/big: rename TTM63m1 -> MaxBig63, + go fmt
* core: documentation
|
|\ \
| | |
| | | |
Migrate remaining flags/command to new style
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |_|/
|/| | |
cmd/faucet, cmd/puppeth: support multi-tiered faucet
|
| | | |
|
|/ / |
|
|\ \
| |/
|/| |
build: wnode added to the build configuration
|
| | |
|
|\ \
| | |
| | | |
cmd/geth, cmd/utils: init/removedb on light/full dbs simultaneously
|
|/ / |
|
|\ \
| | |
| | | |
consensus/clique: fix overflow on recent signer check around genesis
|
| |/ |
|
|\ \
| |/
|/| |
rpc: support subscriptions under custom namespaces
|
| | |
|
| |
| |
| | |
README: add config to genesis.json
|
| | |
|
|\ \
| | |
| | | |
consensus/ethash: fix a timestamp update race
|
| | | |
|
|\ \ \
| |/ /
|/| | |
eth/downloader: fix a potential issue against future refactors
|
| | | |
|
|\ \ \
| | | |
| | | | |
console: avoid float64 when remarshaling parameters
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
With Go 1.7, encoding/json marshals float64 using scientific
notation ("10e+6"), but Go's int and *big.Int decoders don't accept such
numbers. This change disables use of float64 to avoid the problem.
|
|\ \ \ \
| |_|/ /
|/| | | |
rpc: disable CORS if user has not specified a custom config
|
|/ / / |
|
|\ \ \
| |/ /
|/| | |
cmd/geth: reorganise account/wallet command/flags
|
|/ / |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* whisper: salt removed from AES encryption
* whisper: padding format updated
* whisper: padding test added
* whisper: padding refactored, tests fixed
* whisper: padding test updated
* whisper: wnode bugfix
* whisper: send/receive protocol updated
* whisper: minor update
* whisper: bugfix in test
* whisper: updated parameter names and comments
* whisper: functions renamed
* whisper: minor refactoring
|
|\ \
| | |
| | | |
node: fixes deadlock on Wait()
|
| |/ |
|
|\ \
| |/
|/| |
cmd, eth, les, mobile: make networkid uint64 everywhere
|
|/ |
|
|\
| |
| | |
eth: add debug_storageRangeAt
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The 'step' method is split into two parts, 'peek' and 'push'. peek
returns the next state but doesn't make it current.
The end of iteration was previously tracked by setting 'trie' to nil.
End of iteration is now tracked using the 'iteratorEnd' error, which is
slightly cleaner and requires less code.
|
| |
| |
| |
| |
| |
| |
| | |
Make it so each iterator has exactly one public constructor:
- NodeIterators can be created through a method.
- Iterators can be created through NewIterator on any NodeIterator.
|
| |
| |
| |
| |
| | |
'encode' and 'decode' are meaningless because the code deals with three
encodings. Document the encodings and give a name to each one.
|
| |
| |
| |
| |
| |
| | |
The key was constructed from nibbles, which isn't possible for all
nodes. Remove the only use of Key in LightTrie by always retrying with
the original key that was looked up.
|
|\ \
| | |
| | | |
cmd/bootnode: stop after generating/writing nodekey
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
* internal/ethapi: return empty arrays instead of null
* internal/ethapi: minor comments to avoid future regressions
|
|\ \ \
| |/ /
|/| | |
core, light: delete SplitStatTy, ChainSplitEvent (unused)
|
|/ / |
|
|\ \
| | |
| | | |
cmd/faucet: further user validations and bot protection
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
|\ \
| | |
| | | |
cmd, node: add --nousb and node.Config.NoUSB to disable hw wallets
|
| | | |
|
|\ \ \
| |/ /
|/| | |
core: make genesis incompatibility error more explicit
|
|/ / |
|
|\ \
| |/
|/| |
rpc: improve BlockNumber unmarshal parsing
|
| | |
|
| | |
|
| | |
|
|\ \ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
cmd/geth: update flag groups in the geth command usage
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
common/compiler: add metadata output for solc > 0.4.6
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Metadata is provided as JSON string, rather than as JSON object. This
ensures that we can decode to a set of bytes that will be consistent
with the swarm hash embedded in the code, without worrying about
ambiguities of spacing, ordering, or escaping.
|
|\ \ \ \
| |_|/ /
|/| | | |
build: bump launchpad builds to Go 1.8.1
|
| | | | |
|
| | | | |
|
|/ / /
| | |
| | | |
Fixes #3608
|
|\ \ \
| | | |
| | | | |
consensus/ethash: simplify concurrency in VerifyHeaders
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This change removes a convoluted use of sync/atomic from VerifyHeaders.
It also fixes the annoying error about future blocks.
|
| | | |
| | | |
| | | |
| | | | |
The genesis block doesn't have a valid ancestor.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently http cors and websocket origins are a comma separated string in the
config object. These are replaced with string arrays that are more expressive in
case of a config file.
|
|\ \ \ \
| |/ / /
|/| | | |
cmd/rlpdump: support dumping only the first entity
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* p2p/discover, p2p/discv5: add marshaling methods to Node
* p2p/netutil: make Netlist decodable from TOML
* common/math: encode nil HexOrDecimal256 as 0x0
* cmd/geth: add --config file flag
* cmd/geth: add missing license header
* eth: prettify Config again, fix tests
* eth: use gasprice.Config instead of duplicating its fields
* eth/gasprice: hide nil default from dumpconfig output
* cmd/geth: hide genesis block in dumpconfig output
* node: make tests compile
* console: fix tests
* cmd/geth: make TOML keys look exactly like Go struct fields
* p2p: use discovery by default
This makes the zero Config slightly more useful. It also fixes package
node tests because Node detects reuse of the datadir through the
NodeDatabase.
* cmd/geth: make ethstats URL settable through config file
* cmd/faucet: fix configuration
* cmd/geth: dedup attach tests
* eth: add comment for DefaultConfig
* eth: pass downloader.SyncMode in Config
This removes the FastSync, LightSync flags in favour of a more
general SyncMode flag.
* cmd/utils: remove jitvm flags
* cmd/utils: make mutually exclusive flag error prettier
It now reads:
Fatal: flags --dev, --testnet can't be used at the same time
* p2p: fix typo
* node: add DefaultConfig, use it for geth
* mobile: add missing NoDiscovery option
* cmd/utils: drop MakeNode
This exposed a couple of places that needed to be updated to use
node.DefaultConfig.
* node: fix typo
* eth: make fast sync the default mode
* cmd/utils: remove IPCApiFlag (unused)
* node: remove default IPC path
Set it in the frontends instead.
* cmd/geth: add --syncmode
* cmd/utils: make --ipcdisable and --ipcpath mutually exclusive
* cmd/utils: don't enable WS, HTTP when setting addr
* cmd/utils: fix --identity
|
|\ \ \ \
| | | | |
| | | | | |
cmd/puppeth: format dashboard html, update syncmode flags
|
|/ / / / |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* consensus, core, ethstats: use engine specific block beneficiary
* core, eth, les, miner: use explicit beneficiary during mining
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
* consensus/clique, internal/web3ext: support hash based API queries
* consensus/clique: make RPC return types public
|
|\ \ \
| | | |
| | | | |
internal/ethapi: Add support for fetching information about the current call in JS traces
|
| | | |
| | | |
| | | |
| | | | |
in JS traces
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Moved fuse related code in a new package, swarm/fuse
- Added write support
- Create new files
- Delete existing files
- Append to files (with limitations)
- More test coverage
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |_|/
|/| | |
|
| | |
| | |
| | |
| | | |
This PR is a prototype implementation of plugable consensus engines and the
Clique PoA protocol ethereum/EIPs#225
|
| | | |
|
|\ \ \
| | | |
| | | | |
eth: announce block after sync cycle (star topology)
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* whisper: GetMessages fixed; size restriction updated
* whisper: made PoW and MaxMsgSize customizable
* whisper: test added
* whisper: sym key management changed
* whisper: identity management refactored
* whisper: API refactoring (Post and Filter)
* whisper: big refactoring complete
* whisper: spelling fix
* whisper: variable topic size allowed for a filter
* whisper: final update
* whisper: formatting
* whisper: file exchange introduced in wnode
* whisper: bugfix
* whisper: API updated + new tests
* whisper: statistics updated
* whisper: wnode server updated
* whisper: allowed filtering for variable topic size
* whisper: tests added
* whisper: resolving merge conflicts
* whisper: refactoring (documenting mostly)
* whsiper: tests fixed
* whisper: down cased error messages
* whisper: documenting the API functions
* whisper: logging fixed
* whisper: fixed wnode parameters
* whisper: logs fixed (typos)
|
|\ \ \
| | | |
| | | | |
travis, appveyor: update to Go 1.8.1
|
|/ / / |
|
|\ \ \
| |/ /
|/| | |
consensus/ethash, eth: don't mine if 0 threads are set
|
|/ / |
|
|\ \
| | |
| | | |
all: clean up various error handling in core and the miner
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This PR deprecates the file related RPC calls in favour of an improved HTTP API.
The main aim is to expose a simple to use API which can be consumed by thin
clients (e.g. curl and HTML forms) without the need for complex logic (e.g.
manipulating prefix trie manifests).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* cmd, les, eth, eth/gasprice: using new gas price oracle
* eth/gasprice: renamed source file
* eth/gasprice: added security checks for gpo params
* eth/gasprice: fixed naming issues
* eth/gasprice: max limit, maxEmpty
|
| | |
| | |
| | |
| | |
| | |
| | | |
- intended to be a swarm alternative to termbin.com
- added --stdin flag to swarm executable. if set, swarm will
read data from stdin and postRaw it.
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
This commit adds a build step to travis to auto-delete unstable archives older than
14 days (our regular release schedule) from Azure via ci.go purge.
The commit also pulls in the latest Azure storage code, also switching over from
the old import path (github.com/Azure/azure-sdk-for-go) to the new split one
(github.com/Azure/azure-storage-go).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Makefile: fix devtools target
* core: regenerate genesis marshaling with fjl/gencodec@cbfa5be5a8a8
* core/types: regenerate marshaling methods with fjl/gencodec@cbfa5be5a8a8
* core/types: add "hash" to JSON headers
|
| | |
|
| |
| |
| |
| |
| |
| | |
* debug: Converted uint64-blocknumber into rpc.Blocknumber
* api/debug: Fix pending block issues in DumpBlock
|
| |
| |
| |
| |
| |
| | |
In `touch` operation, only `touched` filed has been changed. Therefore
in the related undo function, only `touched` field should be reverted.
In addition, whether remove this obj from dirty map should depend on
prevDirty flag.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a swarm ls command which lists files and directories stored in a
manifest. Rather than listing all files, it uses "directory prefixes" in case there are a
lot of files in a manifest but you just want to traverse it.
This also includes some refactoring to the tests and the introduction of a
swarm/api/client package to make things easier to test.
|
| |
| |
| |
| |
| | |
This commit adds pluggable consensus engines to go-ethereum. In short, it
introduces a generic consensus interface, and refactors the entire codebase to
use this interface.
|
|\ \
| | |
| | | |
ethstats: sanity check ethstats history queries
|
| | | |
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* swarm/api: fix build/tests on unsupported platforms
Skip FUSE tests if FUSE is unavailable and change build constraints so
the 'lesser' platforms aren't mentioned explicitly. The test are
compiled on all platforms to prevent regressions in _fallback.go
Also gofmt -w -s because why not.
* internal/web3ext: fix swarmfs wrappers
Remove inputFormatter specifications so users get an error
when passing the wrong number of arguments.
* swarm/api: improve FUSE-related logging and APIs
The API now returns JSON objects instead of strings.
Log messages for invalid arguments are removed.
|
|\ \
| | |
| | | |
ethstats: work around weird URL scheme parsing issues
|
|/ / |
|
| |
| |
| | |
Fixes #3792 by stripping debug symbols.
|
| | |
|
|\ \
| | |
| | | |
core, core/types: use non-pointer receiver for Marshal* methods
|
| | |
| | |
| | |
| | |
| | | |
Regenerated with fjl/gencodec@1a75a2161009
Also add ,omitempty to optional GenesisAccount fields.
|
|\ \ \
| |/ /
|/| | |
accounts/usbwallet: fix Ledger hidapi/libusb protocol violation
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
core/types: ensure all EIP155 signer fields are set by deriveSigner
|
|/ / /
| | |
| | |
| | | |
Fixes #3819
|
| | | |
|
|\ \ \
| | | |
| | | | |
build: unify vendor skipping, always run go vet
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This ensures 'make test' finds all errors that remote CI would find.
Go 1.7 vet reports a false positive in package log, add a workaround.
|
| |/ /
| | |
| | |
| | |
| | | |
This fixes a recent bug where 'make geth' built everything instead of
just geth.
|
| | | |
|
|\ \ \
| |/ /
|/| | |
core: refactor genesis handling
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit solves several issues concerning the genesis block:
* Genesis/ChainConfig loading was handled by cmd/geth code. This left
library users in the cold. They could specify a JSON-encoded
string and overwrite the config, but didn't get any of the additional
checks performed by geth.
* Decoding and writing of genesis JSON was conflated in
WriteGenesisBlock. This made it a lot harder to embed the genesis
block into the forthcoming config file loader. This commit changes
things so there is a single Genesis type that represents genesis
blocks. All uses of Write*Genesis* are changed to use the new type
instead.
* If the chain config supplied by the user was incompatible with the
current chain (i.e. the chain had already advanced beyond a scheduled
fork), it got overwritten. This is not an issue in practice because
previous forks have always had the highest total difficulty. It might
matter in the future though. The new code reverts the local chain to
the point of the fork when upgrading configuration.
The change to genesis block data removes compression library
dependencies from package core.
|
| | |
| | |
| | |
| | |
| | |
| | | |
All uses of ChainConfig.ChainId eventually end up in NewEIP155Signer.
This fixes the case where users forget to set the ChainId in their
config.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
pow: fix Search with ethash test mode
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The cache/dataset methods crashed with a nil pointer error if
cachesinmem/dagsinmem were zero. Fix it by skipping the eviction logic
if there are no caches/datasets.
Search always used the regular dataset size regardless of test mode. Fix
it by removing the redundant size parameter of hashimotoFull.
Fixes #3784
|
|\ \
| | |
| | | |
all: import "context" instead of "golang.org/x/net/context"
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is no need to depend on the old context package now that the
minimum Go version is 1.7. The move to "context" eliminates our weird
vendoring setup. Some vendored code still uses golang.org/x/net/context
and it is now vendored in the normal way.
This change triggered new vet checks around context.WithTimeout which
didn't fire with golang.org/x/net/context.
|
| |
| |
| |
| |
| | |
* les: implement request distributor, fix blocking issues
* core: moved header validation before chain mutex lock
|
|\ \
| | |
| | | |
build: require Go >= 1.7
|
| | |
| | |
| | |
| | | |
We don't use the opencl build tag anymore.
|
|/ /
| |
| |
| |
| |
| |
| | |
We have decided to bump the requirement to Go 1.7 because it enables
subtests and allows dropping backwards-compatibility code. This is in
line with Go's support policy. Go 1.6 and earlier no longer receive
security updates.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
core/types: use gencodec for JSON marshaling code
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
travis: switch to cocoapods 1.2.0 stable
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
ethstats: try both ws:// and wss:// if none specified
|
| | | | |
|
| | | | |
|
| | | | |
|
| |_|/
|/| |
| | |
| | | |
Fixes #3762. Details about parameter:
https://github.com/rs/cors/blob/a62a804a8a009876ca59105f7899938a1349f4b3/cors.go#L50-L54
|
|/ / |
|
|\ \
| | |
| | | |
light: added new CHT
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* main,import: Add --nocompaction flag + multiple import files
* geth/import: documentation
* import: Added more info to err message
* fix :P
|
|\ \
| |/
|/| |
mobile: Fix typo ( Ethereun -> Ethereum )
|
|/ |
|
|\
| |
| | |
all: update light logs (and a few others) to the new model
|
| | |
|
|\ \
| | |
| | | |
core: reorg logs crashed, add a check for corner cases
|
| |/ |
|
|\ \
| |/
|/| |
build: fix xgo argument order when building from make
|
|/ |
|
| |
|
|\
| |
| | |
build: bundle the bootnode too into alltools
|
| | |
|
|\ \
| |/
|/| |
travis: support building mips32 and mips64 too
|
| | |
|
|\ \
| | |
| | | |
common/hexutil: implement TextMarshaler, TextUnmarshaler
|
| | |
| | |
| | |
| | | |
Restricting encoding is silly.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit makes the wrapper types more generally applicable.
encoding.TextMarshaler is supported by most codec implementations (e.g.
for yaml).
The tests now ensure that package json actually recognizes the custom
marshaler implementation irrespective of how it is implemented.
The Uint type has new tests, too. These are tricky because uint size
depends on the CPU word size. Turns out that there was one incorrect
case where decoding returned ErrUint64Range instead of ErrUintRange.
|
| | |
| | |
| | |
| | |
| | | |
All other functions return errors from package hexutil, ensure that
Decode does too.
|
| | |
| | |
| | |
| | | |
This follows the change to common/math big integer parsing in PR #3699.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* accounts, cmd, eth, ethdb: port logs over to new system
* ethdb: drop concept of cache distribution between dbs
* eth: fix some log nitpicks to make them nicer
|
|\ \ \
| |/ /
|/| | |
core/evm, core/vm: improved evm trace output
|
| | |
| | |
| | |
| | |
| | |
| | | |
Added the ability to directly compile and run ethereum assembly using
the evm utility: `evm run <file>`. This is equivalant to `evm compile
<file> | evm run`.
|
| |/
| |
| |
| |
| |
| |
| |
| | |
* Improved the standard evm tracer output and renamed it to WriteTrace
which now takes an io.Writer to write the logs to.
* Added WriteLogs which writes logs to the given writer in a readable
format.
* evm utility now also prints logs generated during the execution.
|
|/ |
|
|
|
|
|
| |
The evm compile command implements a simple assembly language that compiles to
EVM bytecode.
|
| |
|
|\
| |
| | |
errs: kill it with fire
|
|/ |
|
|\
| |
| | |
Logger updates
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* common/math: optimize PaddedBigBytes, use it more
name old time/op new time/op delta
PaddedBigBytes-8 71.1ns ± 5% 46.1ns ± 1% -35.15% (p=0.000 n=20+19)
name old alloc/op new alloc/op delta
PaddedBigBytes-8 48.0B ± 0% 32.0B ± 0% -33.33% (p=0.000 n=20+20)
* all: unify big.Int zero checks
Various checks were in use. This commit replaces them all with Int.Sign,
which is cheaper and less code.
eg templates:
func before(x *big.Int) bool { return x.BitLen() == 0 }
func after(x *big.Int) bool { return x.Sign() == 0 }
func before(x *big.Int) bool { return x.BitLen() > 0 }
func after(x *big.Int) bool { return x.Sign() != 0 }
func before(x *big.Int) int { return x.Cmp(common.Big0) }
func after(x *big.Int) int { return x.Sign() }
* common/math, crypto/secp256k1: make ReadBits public in package math
|