* GSN support
Add base Context contract
Add GSNContext and tests
Add RelayHub deployment to tests
Add RelayProvider integration, complete GSNContext tests
Switch dependency to openzeppelin-gsn-provider
Add default txfee to provider
Add basic signing recipient
Sign more values
Add comment clarifying RelayHub's msg.data
Make context constructors internal
Rename SigningRecipient to GSNRecipientSignedData
Add ERC20Charge recipients
Harcode RelayHub address into GSNContext
Fix Solidity linter errors
Run server from binary, use gsn-helpers to fund it
Migrate to published @openzeppelin/gsn-helpers
Silence false-positive compiler warning
Use GSN helper assertions
Rename meta-tx to gsn, take out of drafts
Merge ERC20 charge recipients into a single one
Rename GSNRecipients to Bouncers
Add GSNBouncerUtils to decouple the bouncers from GSNRecipient
Add _upgradeRelayHub
Store RelayHub address using unstructored storage
Add IRelayHub
Add _withdrawDeposits to GSNRecipient
Add relayHub version to recipient
Make _acceptRelayedCall and _declineRelayedCall easier to use
Rename GSNBouncerUtils to GSNBouncerBase, make it IRelayRecipient
Improve GSNBouncerBase, make pre and post sender-protected and optional
Fix GSNBouncerERC20Fee, add tests
Add missing GSNBouncerSignature test
Override transferFrom in __unstable__ERC20PrimaryAdmin
Rhub address slot reduced by 1
Rename relay hub changed event
Use released gsn-provider
* move gsn to all caps
* update to gsn contracts in solidity/master
* Adapt for ethereum-package
* update gsn related packages
* update dependencies to match contracts repo
* remove mocha bail option
* add changelog entry
* add constructors to mocks
* use unstructured storage for bouncer implementations
* Transaction Malleability:
If you allow for both values 0/1 and 27/28, you allow two different
signatures both resulting in a same valid recovery. (r,s,0/1) and
(r,s,27/28) would both be valid, recover the same public key and sign
the same data. Furthermore, given (r,s,0/1), (r,s,27/28) can be
constructed by anyone.
* Transaction Malleability:
EIP-2 still allows signature malleabality for ecrecover(), remove this
possibility and force the signature to be unique.
* Added a reference to appendix F to the yellow paper and improved
comment.
* better test description for testing the version 0, which returns
a zero address
* Check that the conversion from 0/1 to 27/28 only happens if its 0/1
* improved formatting
* Refactor ECDSA code a bit.
* Refactor ECDSA tests a bit.
* Add changelog entry.
* Add high-s check test.
* Refactor Counter to support increment and decrement.
* Move Counter out of drafts.
* Refactor ERC721 to use Counter.
* Rollback Counter returning the current value in increment and decrement.
* Update test/drafts/Counter.test.js
Co-Authored-By: nventuro <nicolas.venturo@gmail.com>
* Improve Counter documentation.
* Move Counter.test to utils.
* Move back Counter to drafts.
* signed safe math
* fix lint errors
* refactor overflow checks and add descriptions
* remove incorrect description
* add test for reversed arguments in multiplication test
* fix power operator
* improve multiplication test descriptions
* Update SafeMath.test.js
* add feature to changelog