All notable changes to this project will be documented in this file.
- Deprecate 1inch
- Support Radiant handler on Ethereum
- Support add, addMany, and sub.
- Support Radiant handler on Arbitrum
- Add diff returns to deposit/supply function of AAVE handlers
- Support Hummus protocol.
- Support Aave Protocol V3 on Metis.
- Support Maia(Uni) protocol.
- Hotfix CompoundV3 handler.
- Support CompoundV3.
- Support Lido ETH submit.
- Fix chained input amountIn for
swapETH()
. - Support Stargate on Fantom.
- Add send token to addresses in
HFunds
. - Support swap ETH/ERC20/STG token on Stargate token bridge.
- Add
setTokenBalance
in utils.js to manipulate token balance for unit testing. - Support Aave Protocol V3 on Ethereum.
- Support Geist Protocol and SpookySwap Protocol and add Fantom unit test stage.
- Support CurveDao handler without mint function.
- Use fixed prettier version 2.8.4 and fixed prettier solidity plugin version 1.1.2.
- Generalize unit tests in
HOneInchV5.test.js
- Replace oneInchV3 with oneInchV5 in Certora files
- Use addresses_xxx.js file as a reference in constants_xxx.js file
- Merge multi-chain unit test stages into single unit test stage in CI.
- Support Foundry fuzzing and add fuzzing tests.
- Add ERC1155 fee rule.
- Replace
RCubeNFT
withRStarNFTV4
. - Replace
HOneInchV3
withHOneInchV5
.
- Support Aave Protocol V3.
- Add multi-chain stages in CI.
- Add free pass fee rule test cases.
- Refactor deploy for multichain.
- Upgrade CI node image from node 14 to node 18.
- Add cube nft fee rule
- Add fee flow for ether and token in
Proxy
andHFunds
respectively. - Add
FeeRuleRegistry
for fee related configurations. - Add
RuleBase
as the base of future rules. - Duplicate
inject
foraddFunds
inHFunds
.
- Static analysis tool - slither
- Support Curve withdraw to gauges in
HCurveDao
.
- Replace if-revertMsg with requireMsg.
- Move cube counter to _execs() local memory.
- Upgrade solidity version to 0.8.10.
- Replace all uint256(-1) with type(uint256).max.
- Unify 0xEeee...eE naming to NATIVE_TOKEN_ADDRESS.
- Replace safeApprove with _tokenApprove.
- Set token allowance to zero after each _tokenApprove.
- Peek first and second element from stack at once in _setPostProcess() to avoid too many push/pop.
- Warning free.
- Archive GasTokens related handlers and tests.
- Support ParaSwapV5.
- Refine token provider for tests.
- Fix bignumber zero checks.
- Support sending ether to miner.
- Add event to log the handler execution.
- Refine gelato v2 limit order handler
- Migrate developing environment from Truffle to Hardhat.
- Archive Balancer v1 related handlers and tests.
- Archive Aave v1 related handlers and tests.
- Archive KyberNetwork related handlers and tests.
- Archive 1inch v2 related handlers and tests.
- Change 1inch v3 unoswap dst token fetching mechanism.
- Support 1inch v3 swap and unoswap.
- Add
updateTokens
toHFunds
and add return value forinject
.
- Fix Curve handler add liquidity getting max amount on native token mechanism.
- Support Curve crypto swap.
- Support Curve factory metapool.
- Support Polygon token bridge.
- Support gelatov2 limit order.
- Support uniswap v3 swapping.
- Archive Uniswap and Mooniswap handlers.
- Change post process handler checking flow.
- Check proxy instead of sender for ban.
- Update audit reports.
- Support for Furucombo rCOMBO.
- Certora audit fix.
- Support Aave v2 borrowETH/borrow.
- Add send tokens function of
HFunds
handler. - Add
Halt
functions inRegistry
. - Add
bannedAgents
and related functions inRegistry
. - Add addition checks for external function call in
Proxy
. - Support for B.Protocol.
- Support for Sushiswap.
- Replace safeApprove with _tokenApprove in Curve and UniswapV2 handler.
- Refine send token/Ether function of
HFunds
handler. - Separate
infos
intohandlers
andcallers
. - Separate
fallback()
andreceive()
inProxy
. - Small refactor in HMaker.sol to allow overriding
CDP_MANAGER
andPROXY_ACTIONS
addresses - Read
MCD_JUG
address from Maker ChainLog contract. This change would support JUG contract upgardes on Maker side.
- Remove Oasis related contracts and tests.
- Remove 1inch related contracts and tests.
- Support Synthetix
StakingRewards
contract by addingStakingRewardsAdapter
contract template. - Support stake/withdraw/getReward/exit onbehalf of user through
StakingRewardsAdapter
inHStakingRewardsAdapter
.
- Fix openzeppelin contracts dependency to 3.3.0.
- Update Maker unit test for dust handling.
- Update curve handler to support eth and aave pools.
- Update curve handler to remove onesplit swap.
- Support 1inch v2.
- Support Aave v2 depositETH/withdrawETH/repayETH.
- Dynamic input mechanism.
- Apply new
cache
mapping structure andLibCache
to handler sender related functions. - Cube counting error message handling.
- Support check slippage function in
HFunds
. - Support Aave v2 deposit/withdraw/repay/flashloan in
HAaveProtocolV2
. - Support get proxy current balance by using
-1
feature in several handlers. - Speed up CI process by contract migration improvement.
- Update to solidity 0.6.x.
- Sender related functions is removed from
LibCache
and implemented incontract Storage
. Cache.sol
is changed toStorage.sol
.Cache
is nowStack
.LibCache
is nowLibStack
.Registry
allows to register non-deprecated registration to apply new info.- Rename
handlers
toinfos
inRegistry
.
- Fixed execs issue.
- Support Compound borrow, repayBorrow and claimComp with DSProxy in
HSCompound
andFCompoundActions
. - Support Stake, unstake and claimAll
$COMBO
inHFurucombo
.
- Refine Curve handler supporting hbtc, 3pool and meta pools.
- Support CHI and GST2 gas tokens in
HGasTokens
. - Support Balancer multihop swapping in
HBalancerExchange
.
- Support Yearn vault depositETH and withdrawETH in
HYVault
.
- Apply slippage to swapping and add/remove liquidity related testcases.
- Apply evm state reset to every testcase.
- Upgrade
prettier-plugin-solidity
to1.0.0-alpha.57
- Support Yearn vault deposit and withdraw in
HYVault
. - Support Mooniswap deposit/withdraw liquidity function in
HMooniswap
.
- Unused
HERC20TokenIn
.
- Support Curve add liquidity in
HCurve
. - Support Curve remove liquidity one coin in
HCurve
. - Support WETH deposit and withdraw function in
HWeth
. - Support Curve deposit to gauges in
HCurveDao
. - Support Curve mint and mint_many CRV in
HCurveDao
.
- Add token and ether sending function in
HFunds
. - Support Balancer add liquidity single assert/all asserts function in
HBalancer
. - Support Balancer remove liquidity single assert/all asserts function in
HBalancer
. - Support Compound repay function in
HCEther
andHCToken
. - Support OneInch fixed input eth to token swap.
- Support OneInch fixed input token to eth swap.
- Support OneInch fixed input token to token swap.
- Wrap
HERC20TokenIn
toHFunds
.
- Unused
HERC20TokenIn
.
- Support Curve swap through curve pools in
HCurve
. - Support Curve swap through OneSplit aggregator in
HCurve
.
- Support UniswapV2 fixed input/output eth to token swap.
- Support UniswapV2 fixed input/output token to eth swap.
- Support UniswapV2 fixed input/output token to token swap.
- Apply solhint.
- Support UniswapV2 add eth/token liquidity .
- Support UniswapV2 remove eth/token liquidity.
- Support Compound claim COMP token.
- Fixed error handling on custom handler followed by noop.
- Unintuitive post-process handling in
_setPostProcess()
.
- Add cache handling mechanism.
- Support customized handler post processor.
- Support Maker create CDP.
- Support Maker deposit.
- Support Maker withdraw.
- Support Maker generate.
- Support Maker pay back.
- Support Oasis fixed input/output eth to token swap.
- Support Oasis fixed input/output token to eth swap.
- Support Oasis fixed input/output token to token swap.
- Change
address[] tokens
tobytes32[] cache
.
- Fix USDT transfer failure.
- Support Aave deposit and redeem.
- Support Compound CEther and CToken redeem and redeemUnderlying.
- Gas profiling.
- Apply prettier for solidity and js files.
- Revert CEther redeem and redeemUnderlying on failure.
- Revert CToken mint, redeem and redeemUnderlying on failure.
- Support Uniswap token to token swapping.
- Change proxy structure to support a callback from flashloan service.
- Prevent user direct transfer to proxy contract.
- Combine the uniswap handlers into a single contract.
- Change Kyber proxy address to constant.
- Support KyberNetwork ether to token.
- Support KyberNetwork token to ether.
- Support KyberNetwork token to token.
- Support Uniswap fix output swapping.
- Proxy interface for Furucombo.
- Registry for handler verification.
- Support Uniswap ether to token swapping (fix input).
- Support Uniswap add liquidity.
- Support Compound CEther and CToken mint.
- Support Uniswap token to ether swapping (fix input).
- Support erc20 token inject.
- Support Uniswap remove liquidity.