Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
The GnosisSafe smart contract allows payment of transactions and creation with ERC20 tokens. As the ERC20 token standard did initially not define a return type for the `transfer` function there are different results for failing transfer:
1. `transfer` returns `false`
1. `transfer` reverts
1. `transfer` throws and uses up all remaining gas
All different implementations should be tested with a failing and a successful transfer.
#### Acceptance Criteria
- There are tests for all mentioned ERC20 token implementations of `transfer` (could be mocked via https://github.com/fleupold/mock-contract)
- [x] There are test cases for successful and failing payments of transactions (token as `gasToken` in `GnosisSafe.execTransaction`)
- [x] There are test cases for successful and failing payments of safe deployments (`PayingProxy`)
- [x] There are test cases for successful and failing transfers as a Safe transaction (send an ERC20 token from a Safe to another account)