vsmk98
061c9b85ce
merge with master
2019-01-14 13:53:05 +08:00
Samer Falah
d77cb778ca
Merge pull request #563 from Puneetha17/private_rawtx
...
Do not reset V value if the tx is already set to private
2019-01-07 09:22:20 -05:00
Puneetha
4658a1542e
Do not reset V value if the tx is already set to private
2018-11-07 17:22:45 +00:00
vsmk98
519348e621
Cherry pick pvt abigen. Make errors exist
2018-10-23 10:21:57 +08:00
apratt3377
8b1edde801
allow private transactions with abigen
2018-09-10 15:44:07 -04:00
amalraj.manigmail.com
e6773756fb
merge 1.8.12 with upstream/master to apply the fixes/changes added newly
2018-08-06 19:03:51 +08:00
amalraj.manigmail.com
7c548e0f74
Merge remote-tracking branch 'remotes/geth/release/1.8' into merge-193
...
changes related to merge conflicts
2018-07-24 16:15:38 +08:00
amalraj.manigmail.com
c3c479d2aa
Merge remote-tracking branch 'remotes/geth/release/1.8' into merge-193
...
# Conflicts:
# .github/CODEOWNERS
# .travis.yml
# README.md
# VERSION
# accounts/abi/argument.go
# accounts/abi/bind/backends/simulated.go
# accounts/abi/bind/bind_test.go
# accounts/abi/event_test.go
# accounts/abi/numbers.go
# accounts/abi/numbers_test.go
# accounts/abi/reflect.go
# accounts/accounts.go
# accounts/keystore/keystore.go
# accounts/keystore/keystore_wallet.go
# accounts/usbwallet/internal/trezor/trezor.go
# accounts/usbwallet/ledger.go
# accounts/usbwallet/wallet.go
# appveyor.yml
# build/ci.go
# build/goimports.sh
# cmd/ethkey/generate.go
# cmd/ethkey/inspect.go
# cmd/ethkey/main.go
# cmd/ethkey/message.go
# cmd/ethkey/utils.go
# cmd/faucet/faucet.go
# cmd/geth/chaincmd.go
# cmd/geth/config.go
# cmd/geth/main.go
# cmd/geth/misccmd.go
# cmd/geth/usage.go
# cmd/p2psim/main.go
# cmd/puppeth/genesis.go
# cmd/puppeth/module_dashboard.go
# cmd/puppeth/wizard_faucet.go
# cmd/puppeth/wizard_genesis.go
# cmd/puppeth/wizard_netstats.go
# cmd/puppeth/wizard_node.go
# cmd/puppeth/wizard_wallet.go
# cmd/swarm/config.go
# cmd/swarm/config_test.go
# cmd/swarm/db.go
# cmd/swarm/hash.go
# cmd/swarm/main.go
# cmd/swarm/manifest.go
# cmd/swarm/run_test.go
# cmd/swarm/upload.go
# cmd/swarm/upload_test.go
# cmd/utils/flags.go
# cmd/wnode/main.go
# common/bytes.go
# common/compiler/solidity.go
# common/hexutil/hexutil.go
# common/math/big.go
# common/math/integer.go
# common/mclock/mclock.go
# common/types.go
# common/types_template.go
# consensus/clique/clique.go
# consensus/consensus.go
# consensus/ethash/algorithm.go
# consensus/ethash/consensus.go
# consensus/ethash/ethash.go
# containers/vagrant/Vagrantfile
# contracts/ens/ens_test.go
# core/asm/compiler.go
# core/asm/lexer.go
# core/block_validator.go
# core/blockchain.go
# core/blockchain_test.go
# core/chain_makers.go
# core/database_util.go
# core/database_util_test.go
# core/events.go
# core/genesis.go
# core/genesis_alloc.go
# core/genesis_test.go
# core/headerchain.go
# core/rawdb/accessors_chain.go
# core/rawdb/accessors_indexes.go
# core/rawdb/accessors_metadata.go
# core/rawdb/schema.go
# core/state/state_test.go
# core/state/statedb.go
# core/state/sync.go
# core/state_processor.go
# core/state_transition.go
# core/tx_journal.go
# core/tx_list.go
# core/tx_pool.go
# core/tx_pool_test.go
# core/types.go
# core/types/block.go
# core/types/block_test.go
# core/types/gen_receipt_json.go
# core/types/log.go
# core/types/receipt.go
# core/types/transaction.go
# core/types/transaction_signing.go
# core/types/transaction_signing_test.go
# core/types/transaction_test.go
# core/vm/errors.go
# core/vm/evm.go
# core/vm/gas.go
# core/vm/gas_table.go
# core/vm/instructions.go
# core/vm/instructions_test.go
# core/vm/interface.go
# core/vm/interpreter.go
# core/vm/intpool.go
# core/vm/jump_table.go
# core/vm/logger.go
# core/vm/logger_test.go
# core/vm/memory_table.go
# core/vm/opcodes.go
# core/vm/runtime/env.go
# core/vm/runtime/runtime.go
# crypto/crypto.go
# crypto/crypto_test.go
# eth/api.go
# eth/api_backend.go
# eth/api_tracer.go
# eth/backend.go
# eth/config.go
# eth/downloader/downloader.go
# eth/downloader/queue.go
# eth/downloader/statesync.go
# eth/filters/filter.go
# eth/filters/filter_system.go
# eth/filters/filter_system_test.go
# eth/gen_config.go
# eth/handler.go
# eth/handler_test.go
# eth/helper_test.go
# eth/protocol.go
# eth/sync.go
# eth/tracers/internal/tracers/4byte_tracer.js
# eth/tracers/internal/tracers/assets.go
# eth/tracers/tracer_test.go
# eth/tracers/tracers_test.go
# ethclient/ethclient.go
# ethdb/database.go
# ethdb/interface.go
# ethdb/memory_database.go
# ethstats/ethstats.go
# event/feed.go
# internal/ethapi/api.go
# internal/ethapi/backend.go
# internal/guide/guide_test.go
# internal/web3ext/web3ext.go
# les/api_backend.go
# les/backend.go
# les/fetcher.go
# les/handler.go
# les/helper_test.go
# les/odr_requests.go
# les/odr_test.go
# les/retrieve.go
# les/server.go
# les/serverpool.go
# light/lightchain.go
# light/odr_test.go
# light/postprocess.go
# light/txpool.go
# log/README.md
# log/doc.go
# log/format.go
# log/handler.go
# log/logger.go
# log/root.go
# metrics/exp/exp.go
# metrics/influxdb/influxdb.go
# metrics/metrics.go
# metrics/resetting_timer.go
# metrics/resetting_timer_test.go
# metrics/timer_test.go
# miner/worker.go
# mobile/accounts.go
# mobile/ethereum.go
# mobile/geth.go
# node/config.go
# node/doc.go
# p2p/discover/database.go
# p2p/discover/database_test.go
# p2p/discover/table.go
# p2p/discover/table_test.go
# p2p/discover/udp.go
# p2p/discover/udp_test.go
# p2p/discv5/udp.go
# p2p/enr/enr.go
# p2p/enr/enr_test.go
# p2p/enr/entries.go
# p2p/protocols/protocol.go
# p2p/protocols/protocol_test.go
# p2p/rlpx_test.go
# p2p/server.go
# p2p/simulations/adapters/docker.go
# p2p/simulations/adapters/exec.go
# p2p/simulations/adapters/inproc.go
# p2p/simulations/adapters/types.go
# p2p/simulations/http.go
# p2p/simulations/http_test.go
# p2p/simulations/mocker.go
# p2p/simulations/network.go
# p2p/simulations/network_test.go
# p2p/testing/protocolsession.go
# params/bootnodes.go
# params/config.go
# params/denomination.go
# params/gas_table.go
# params/protocol_params.go
# params/version.go
# rpc/http.go
# rpc/json.go
# rpc/utils.go
# signer/core/api.go
# swarm/api/api.go
# swarm/api/api_test.go
# swarm/api/client/client.go
# swarm/api/client/client_test.go
# swarm/api/config.go
# swarm/api/config_test.go
# swarm/api/filesystem.go
# swarm/api/filesystem_test.go
# swarm/api/http/error.go
# swarm/api/http/error_templates.go
# swarm/api/http/error_test.go
# swarm/api/http/roundtripper.go
# swarm/api/http/server.go
# swarm/api/http/server_test.go
# swarm/api/http/templates.go
# swarm/api/manifest.go
# swarm/api/manifest_test.go
# swarm/api/storage.go
# swarm/api/storage_test.go
# swarm/api/uri.go
# swarm/api/uri_test.go
# swarm/fuse/fuse_dir.go
# swarm/fuse/fuse_file.go
# swarm/fuse/swarmfs.go
# swarm/fuse/swarmfs_test.go
# swarm/fuse/swarmfs_unix.go
# swarm/fuse/swarmfs_util.go
# swarm/metrics/flags.go
# swarm/network/depo.go
# swarm/network/forwarding.go
# swarm/network/hive.go
# swarm/network/kademlia/address.go
# swarm/network/kademlia/kaddb.go
# swarm/network/kademlia/kademlia.go
# swarm/network/kademlia/kademlia_test.go
# swarm/network/messages.go
# swarm/network/protocol.go
# swarm/network/syncdb.go
# swarm/network/syncdb_test.go
# swarm/network/syncer.go
# swarm/services/swap/swap.go
# swarm/services/swap/swap/swap.go
# swarm/storage/chunker.go
# swarm/storage/chunker_test.go
# swarm/storage/common_test.go
# swarm/storage/database.go
# swarm/storage/dbstore.go
# swarm/storage/dbstore_test.go
# swarm/storage/dpa.go
# swarm/storage/dpa_test.go
# swarm/storage/localstore.go
# swarm/storage/memstore.go
# swarm/storage/netstore.go
# swarm/storage/pyramid.go
# swarm/storage/swarmhasher.go
# swarm/storage/types.go
# swarm/swarm.go
# swarm/swarm_test.go
# swarm/testutil/http.go
# tests/block_test_util.go
# tests/difficulty_test.go
# tests/init.go
# tests/state_test_util.go
# tests/transaction_test.go
# tests/util.go
# tests/vm_test_util.go
# trie/database.go
# trie/encoding.go
# trie/hasher.go
# trie/iterator.go
# trie/proof.go
# trie/proof_test.go
# trie/secure_trie.go
# trie/sync.go
# trie/sync_test.go
# trie/trie.go
# vendor/github.com/docker/docker/pkg/reexec/command_linux.go
# vendor/github.com/docker/docker/pkg/reexec/command_unix.go
# vendor/github.com/docker/docker/pkg/reexec/command_unsupported.go
# vendor/github.com/docker/docker/pkg/reexec/command_windows.go
# vendor/github.com/docker/docker/pkg/reexec/reexec.go
# vendor/github.com/eapache/channels/.gitignore
# vendor/github.com/eapache/queue/.gitignore
# vendor/github.com/naoina/toml/encode.go
# vendor/github.com/naoina/toml/parse.go
# vendor/github.com/naoina/toml/parse.peg
# vendor/github.com/naoina/toml/parse.peg.go
# vendor/github.com/rcrowley/go-metrics/.gitignore
# vendor/github.com/rcrowley/go-metrics/.travis.yml
# vendor/github.com/rcrowley/go-metrics/README.md
# vendor/github.com/rcrowley/go-metrics/counter.go
# vendor/github.com/rcrowley/go-metrics/debug.go
# vendor/github.com/rcrowley/go-metrics/ewma.go
# vendor/github.com/rcrowley/go-metrics/exp/exp.go
# vendor/github.com/rcrowley/go-metrics/gauge.go
# vendor/github.com/rcrowley/go-metrics/gauge_float64.go
# vendor/github.com/rcrowley/go-metrics/graphite.go
# vendor/github.com/rcrowley/go-metrics/healthcheck.go
# vendor/github.com/rcrowley/go-metrics/histogram.go
# vendor/github.com/rcrowley/go-metrics/json.go
# vendor/github.com/rcrowley/go-metrics/log.go
# vendor/github.com/rcrowley/go-metrics/meter.go
# vendor/github.com/rcrowley/go-metrics/metrics.go
# vendor/github.com/rcrowley/go-metrics/opentsdb.go
# vendor/github.com/rcrowley/go-metrics/registry.go
# vendor/github.com/rcrowley/go-metrics/runtime.go
# vendor/github.com/rcrowley/go-metrics/sample.go
# vendor/github.com/rcrowley/go-metrics/syslog.go
# vendor/github.com/rcrowley/go-metrics/timer.go
# vendor/github.com/rcrowley/go-metrics/writer.go
# vendor/github.com/syndtr/goleveldb/leveldb/db.go
# vendor/golang.org/x/sys/unix/mksysnum_linux.pl
# vendor/golang.org/x/sys/unix/types_linux.go
# vendor/vendor.json
# whisper/shhclient/client.go
# whisper/whisperv5/api.go
# whisper/whisperv5/peer_test.go
# whisper/whisperv5/whisper.go
# whisper/whisperv6/api.go
# whisper/whisperv6/peer_test.go
# whisper/whisperv6/whisper.go
2018-07-24 16:11:05 +08:00
Qvintvs
87d7c906e9
Use eip155 signer for public transactions ( #375 )
...
Use eip155 for public transaction
2018-06-29 16:17:32 -04:00
Wenbiao Zheng
9b1536b26a
core: remove dead code, limit test code scope ( #17006 )
...
* core: move test util var/func to test file
* core: remove useless func
2018-06-19 14:41:13 +03:00
Qvintvs
4b44bea1d7
Merge attempt
2018-05-31 14:16:44 +08:00
kimmylin
86be91b3e2
core/types: avoid duplicating transactions on changing signer ( #16435 )
2018-04-24 10:39:03 +03:00
thomasmodeneis
ba1030b6b8
build: enable goimports and varcheck linters ( #16446 )
2018-04-18 00:53:50 +02:00
Steven Roose
ec8ee611ca
core/types: remove String methods from struct types ( #16205 )
...
Most of these methods did not contain all the relevant information
inside the object and were not using a similar formatting type.
Moreover, the existence of a suboptimal String method breaks usage
with more advanced data dumping tools like go-spew.
2018-04-05 14:13:02 +02:00
Péter Szilágyi
55599ee95d
core, trie: intermediate mempool between trie and database ( #15857 )
...
This commit reduces database I/O by not writing every state trie to disk.
2018-02-05 17:40:32 +01:00
Joel Burget
f651c1befa
Fix sometimes printing wrong address.
...
Prior to this fix, a series of submitted transactions in the javascript
console would each show a different "from" field when inspected with
`eth.getTransaction`.
It turns out the transactions were all created with the correct sender,
but were just printed incorrectly. We were using the EIP155Signer when
all Quorum transactions expect the HomesteadSigner.
This fix is not exactly satisfying, since in every other place we've
been able to use an `isQuorum` boolean to tell whether a `v` of `37` or
`38` denotes a quorum private tx, but it's particularly hard to do that
in these two places.
2018-02-02 13:46:41 -05:00
Péter Szilágyi
6f69cdd109
all: switch gas limits from big.Int to uint64
2018-01-03 14:45:35 +02:00
Kurkó Mihály
b4cf57a581
core: fix typos ( #15720 )
2017-12-20 19:08:51 +02:00
Airead
8092106abc
core/types: fix typo in comment ( #15619 )
2017-12-07 10:06:44 +01:00
Patrick Mylund Nielsen
3d91976f08
Geth 1.7.2 rebase and addition of Istanbul BFT ( #207 )
2017-10-31 18:24:11 -04:00
Felix Lange
d78ad226c2
ethclient, mobile: add TransactionSender ( #15127 )
...
* core/types: make Signer derive address instead of public key
There are two reasons to do this now: The upcoming ethclient signer
doesn't know the public key, just the address. EIP 208 will introduce a
new signer which derives the 'entry point' address for transactions with
zero signature. The entry point has no public key.
Other changes to the interface ease the path make to moving signature
crypto out of core/types later.
* ethclient, mobile: add TransactionSender
The new method can get the right signer without any crypto, and without
knowledge of the signature scheme that was used when the transaction was
included.
2017-10-01 11:03:28 +02:00
Mark
c1740e4540
core/types, miner: avoid tx sender miscaching ( #14773 )
2017-09-07 23:22:27 +02:00
nkbai
68955ed2eb
core/types: fix create indicator in Transaction.String ( #15025 )
2017-08-24 12:48:13 +02:00
Felix Lange
3d8de95f99
core, core/types: regenerate JSON marshaling, add "hash" to headers ( #13868 )
...
* Makefile: fix devtools target
* core: regenerate genesis marshaling with fjl/gencodec@cbfa5be5a8
* core/types: regenerate marshaling methods with fjl/gencodec@cbfa5be5a8
* core/types: add "hash" to JSON headers
2017-04-06 11:38:21 +03:00
bas-vk
baf20010e7
core/types: rename txdata.gasLimit -> txdata.gas in JSON ( #13848 )
2017-03-29 11:59:13 +02:00
Felix Lange
4be37e91b9
core/types: ensure all EIP155 signer fields are set by deriveSigner
...
Fixes #3819
2017-03-24 22:06:10 +01:00
Felix Lange
37dd9086ec
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.
2017-03-23 15:58:43 +01:00
Felix Lange
8cf08e4b25
core/types: use gencodec for JSON marshaling code
2017-03-07 12:45:12 +01:00
Felix Lange
5f7826270c
all: unify big.Int zero checks, use common/math in more places ( #3716 )
...
* 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
2017-02-28 15:09:11 +01:00
Felix Lange
fc52f2c007
core/types: make Transaction zero value printable ( #3595 )
2017-01-23 18:51:02 +01:00
bas-vk
0126d01435
types: bugfix invalid V derivation on tx json unmarshal ( #3594 )
2017-01-20 23:32:16 +01:00
Felix Lange
e171bf74f8
core/types: remove redundant SignECDSA wrappers, rename to SignTx
2017-01-05 12:59:17 +01:00
Péter Szilágyi
08eea0f0e4
accounts, core, crypto, internal: use normalised V during signature handling ( #3455 )
...
To address increasing complexity in code that handles signatures, this PR
discards all notion of "different" signature types at the library level. Both
the crypto and accounts package is reduced to only be able to produce plain
canonical secp256k1 signatures. This makes the crpyto APIs much cleaner,
simpler and harder to abuse.
2017-01-05 11:35:23 +01:00
Steven Roose
61ccb43487
core/types: Document Transaction.To ( #3366 )
2016-11-28 21:56:38 +01:00
Felix Lange
24f288770e
core/types: use package hexutil for JSON handling
2016-11-28 11:22:52 +01:00
Bas van Kervel
9bb4635f70
cmd,eth enforce gas price of 0
2016-11-15 18:40:08 +01:00
Zsolt Felfoldi
b10bcd924b
core/types: turn off nonce checking for Call messages
2016-11-14 14:16:06 +01:00
Patrick Mylund Nielsen
13eb8db520
Add temporary PrivateTransactionManager integration
2016-11-14 00:33:56 -05:00
Jeffrey Wilcke
4dca5d4db7
core/types, params: EIP#155
2016-11-13 14:55:30 +01:00
Bas van Kervel
2a133748cb
core/types,core/quorum: give vote transactions priority
2016-11-09 16:04:29 +01:00
Jeffrey Wilcke
1ad23deb8e
core, core/types: implemented private transaction check
...
Transactions are considered private when the V param is either 37 or 38.
2016-11-01 22:25:59 +01:00
Bas van Kervel
f7cb85824c
quorum integration
2016-10-30 09:20:48 +01:00
bas-vk
b59c8399fb
internal/ethapi: add personal_sign and fix eth_sign to hash message ( #2940 )
...
This commit includes several API changes:
- The behavior of eth_sign is changed. It now accepts an arbitrary
message, prepends the well-known string
\x19Ethereum Signed Message:\n<length of message>
hashes the result using keccak256 and calculates the signature of
the hash. This breaks backwards compatability!
- personal_sign(hash, address [, password]) is added. It has the same
semantics as eth_sign but also accepts a password. The private key
used to sign the hash is temporarily unlocked in the scope of the
request.
- personal_recover(message, signature) is added and returns the
address for the account that created a signature.
2016-10-28 21:25:49 +02:00
Péter Szilágyi
b6b5ec8f75
core/types: add core type marshal methods too
2016-09-08 18:16:53 +03:00
Péter Szilágyi
affffb39b3
core/types, miner: switch over to the grouped tx sets
2016-09-02 14:12:03 +03:00
Péter Szilágyi
0ef327bbee
core, eth, internal, miner: optimize txpool for quick ops
2016-09-02 14:12:03 +03:00
Felix Lange
704fde01e8
core/types, core/vm: improve docs, add JSON marshaling methods
...
In this commit, core/types's types learn how to encode and decode
themselves as JSON. The encoding is very similar to what the RPC API
uses. The RPC API is missing some output fields (e.g. transaction
signature values) which will be added to the API in a later commit. Some
fields that the API generates are ignored by the decoder methods here.
2016-08-04 03:55:33 +02:00
zsfelfoldi
00787fe781
core: added CheckNonce() to Message interface
2016-07-11 12:35:23 +02:00
Leif Jurvetson
b7bb2d8589
core: various typos
2016-03-15 11:08:18 -07:00
Ricardo Catalinas Jiménez
436fc8d76a
all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()
...
As we aren't really using the standarized SHA-3
2016-02-21 22:34:34 +00:00