- Introduce NativeFiatTokenV2_2 Solidity implementation.
- Add comprehensive test coverage for NativeFiatToken (unit + integration as applicable).
- Add precompile interface definitions required by NativeFiatToken: INativeCoinControl & INativeCoinAuthority
- Add deployment script for NativeFiatToken.
- Mark selected functions in FiatTokenV1, FiatTokenV2, and FiatTokenV2_2 as virtual to enable NativeFiatToken overrides (no functional behavior changes intended beyond extensibility).
- Add
ICeloGasTokenandIFiatTokenFeeAdapterper Celo documentation - Add
FiatTokenFeeAdapterProxyandFiatTokenFeeAdapterV1to support USDC as gas on Celo - Implement
debitGasFeesandcreditGasFeesinFiatTokenCeloV2_2
- Add ERC-1271 signature validation support to EIP-2612 and EIP-3009 functions
- Combine the balance state and the blacklist state for an address in a
balanceAndBlacklistStatesmap to reduce gas usage - Update
DOMAIN_SEPARATORto be a dynamic value - Remove
notBlacklistedmodifiers forapprove,increaseAllowance,decreaseAllowanceandpermit - Enable bypassing
TIMESTAMPopcode inpermitby usinguint256.max
- Add the multi-issuer minter contracts from the
multi-issuerbranch
- Move locked USDC to a "lost and found" address and blacklists itself so that accidental sends will no longer be possible
- Conform to EIP-3009 in FiatToken
- Add
receiveWithAuthorization - Remove
approveWithAuthorization,increaseAllowanceWithAuthorizationanddecreaseAllowanceWithAuthorization
- Add
- Add support for EIP-2612 in FiatToken
- Add
transferWithAuthorization,approveWithAuthorization,increaseAllowanceWithAuthorization,decreaseAllowanceWithAuthorizationto enable ETH-less transactions - Add
increaseAllowanceanddecreaseAllowanceto mitigate the multi-withdrawal attack vulnerability in ERC-20approvefunction - Update Solidity version to
0.6.12
- Add Rescuable functionalities to FiatToken
- Update Solidity version to
0.6.8 - Remove
ifAdminmodifier from admin() and implementation() in FiatTokenProxy
- Create ERC-20 compliant FiatToken contract
- Add Ownable, Pausable and Blacklistable functionalities to FiatToken
- Create FiatTokenProxy contracts based on Zeppelinos's Unstructured-Storage Proxy pattern