* Rename privacyGroupId to createPrivacyGroupId
Also add test for eea_createPrivacyGroup
* Update the JsonRpcError list
* Update orion version
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* add json rpc method to change the logs without restarting the client
* Update ethereum/jsonrpc/src/main/java/tech/pegasys/pantheon/ethereum/jsonrpc/internal/methods/AdminChangeLogLevel.java
change the log level from DEGUB to OFF
Co-Authored-By: Danno Ferrin <danno.ferrin@shemnon.com>
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Add privacy group id to private transaction
* Update enclave send methods to accept privacy group id
* Update eea sendRawTransaction endpoint
* extract privacy group id from private transaction if present
* extract privateFor/privateFrom if privacy group id is not present
* Fix tests
* Change abstract class invocation to concrete class.
* Utility method to load enclave public key
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Add support for working within Network Address Translation (NAT) environments.
This adds a CLI flag `--nat-method` with two options, `NONE` (the default and
current behavior) and `UPNP.` `--nat-method` will affect what IP address and
ports are advertised via the P2P discovery and other APIs that report the
address and port for P2P actions.
`UPNP` is intended for a typical home or small office environment where a
wireless router or modem provides NAT isolation.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Currently when json-rpc and ws services are configured with a port value of 0, the "net_services" endpoint will display their ports as "0". A configured port of "0" actually means "choose a random port". We need to get the actual port that those services are using displayed in the "net_services" JSON-RPC response.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Add nonce too low unit tests to grahql and json-rpc
Also, add all the private transacton failures mappings to graphql
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Updated TransactionValidationParams with checkLocalPermissioning flag
* Added TransactionValidationParam to TxProcessor
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Add eea_createPrivacyGroup endpoint
* Update orion version
* Fix the failing create privacy group test
* Add eea deletePrivacyGroup API in pantheon
* Update Orion to 1.1.0 release
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Add eea_getPrivacyPrecompileAddress API in pantheon
* Return error is privacy is not enabled
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Make MetricCategory an interface so it isn't locked into the pantheon specific categories.
* Split categories into StandardMetricCategory and PanteonMetricCategory to separate the common and Pantheon specific categories.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Query params can be used to adjust the number of peers required and number of blocks tolerance to be considered in sync.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
- Previously you had to sign the private transaction with the same key as the privacy marker transaction.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* streamline `JsonRpcParameter.required` method
* add test cases for PAN-2721
* clarify TopicParameter parsing comments
* consume end of array in TopicParameter custom deserializer
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Return specific error for enclave
* Serialize into error object instead of regex to find the error.
* Return EnclaveException for errors in Enclave
* Fix enclave error response after rebase
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Previously it was possible for a transaction to be "missed" by this call if it was added to a block between when we checked the blockchain and when we checked the pending transaction pool.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Don't create a new SecureRandom instance every time a filter ID is generated.
Fix intermittency in FilterIdGeneratorTest - quantity values omit leading 0s.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Connection ID is now tracked as a property of the subscription rather than as a separate map, so we can use a single concurrent map to track all details of subscriptions.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Prevents intermittent `eth_getFilterLogs` failure when the `filterId`
began with a hex 0. Previously leading 0's were not trimmed so depending
on the randomly generated value, a filter could appear to not exist in
the `FilterRegistry`
* standardize Quantity.format to Quantity.create
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Validate private transaction nonce before submitting to Transaction Pool
* Update tests for Incorrect Nonce and Nonce Too Low exceptions
* Differentiate Incorrect Nonce and Nonce Too Low error messages
* Fixed flaky tests
* Change log level from Info to Debug
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
Per the eth JSON-RPC spec all values are strings, not raw json numbers, hence eth_protocolVersion is a Quantity ("0x3f"), not an Integer (63)
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>
* Don't copy collections if we don't need to. Change types higher up if needed.
* Don't use Guava's Object.equal, use Java's Objects.equals.
** add errorprone test to enforce the banning of Guava's Objects class.
Signed-off-by: Adrian Sutton <adrian.sutton@consensys.net>