Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: upgrade dependencies #21

Merged
merged 8 commits into from
Jul 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ jobs:
- uses: actions/checkout@v2
- uses: ApeWorX/github-action@v1
- run: ape compile --size
- run: ape test -s
- run: ape test -s --gas
4 changes: 2 additions & 2 deletions ape-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ plugins:
dependencies:
- name: OpenZeppelin
github: OpenZeppelin/openzeppelin-contracts
version: 4.7.3
version: 4.8.0

solidity:
import_remapping:
- "@OpenZeppelin=OpenZeppelin/4.7.3"
- "@OpenZeppelin=OpenZeppelin/4.8.0"

test:
gas:
Expand Down
20 changes: 0 additions & 20 deletions contracts/ERC4626.sol

This file was deleted.

10 changes: 5 additions & 5 deletions contracts/SolidityVault.sol
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pragma solidity ^0.8;

import { IERC4626 } from "ERC4626.sol";
import { IERC4626 } from "@OpenZeppelin/interfaces/IERC4626.sol";
import { ERC20 } from "@OpenZeppelin/token/ERC20/ERC20.sol";

contract SolidityVault is IERC4626, ERC20 {
Expand Down Expand Up @@ -41,7 +41,7 @@ contract SolidityVault is IERC4626, ERC20 {

_mint(receiver, shares);
emit Deposit(msg.sender, receiver, assets, shares);
emit Transfer(address(0), receiver, shares);
// IMPORTANT: `_mint` does ERC20 `Transfer` log

return shares;
}
Expand Down Expand Up @@ -69,7 +69,7 @@ contract SolidityVault is IERC4626, ERC20 {

_mint(receiver, shares);
emit Deposit(msg.sender, receiver, assets, shares);
emit Transfer(address(0), receiver, shares);
// IMPORTANT: `_mint` does ERC20 `Transfer` log

return assets;
}
Expand Down Expand Up @@ -105,7 +105,7 @@ contract SolidityVault is IERC4626, ERC20 {

ERC20(asset).transfer(receiver, assets);
emit Withdraw(msg.sender, receiver, owner, assets, shares);
emit Transfer(owner, address(0), shares);
// IMPORTANT: `_burn` does ERC20 `Transfer` log

return shares;
}
Expand Down Expand Up @@ -143,7 +143,7 @@ contract SolidityVault is IERC4626, ERC20 {

ERC20(asset).transfer(receiver, assets);
emit Withdraw(msg.sender, receiver, owner, assets, shares);
emit Transfer(owner, address(0), shares);
// IMPORTANT: `_burn` does ERC20 `Transfer` log

return assets;
}
Expand Down
10 changes: 5 additions & 5 deletions contracts/VyperVault.vy
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# @version 0.3.2
# @version 0.3.9
from vyper.interfaces import ERC20

import ERC4626 as ERC4626
Expand Down Expand Up @@ -152,8 +152,8 @@ def deposit(assets: uint256, receiver: address=msg.sender) -> uint256:

self.totalSupply += shares
self.balanceOf[receiver] += shares
log Deposit(msg.sender, receiver, assets, shares)
log Transfer(empty(address), receiver, shares)
log Deposit(msg.sender, receiver, assets, shares)
return shares


Expand Down Expand Up @@ -186,8 +186,8 @@ def mint(shares: uint256, receiver: address=msg.sender) -> uint256:

self.totalSupply += shares
self.balanceOf[receiver] += shares
log Deposit(msg.sender, receiver, assets, shares)
log Transfer(empty(address), receiver, shares)
log Deposit(msg.sender, receiver, assets, shares)
return assets


Expand Down Expand Up @@ -224,8 +224,8 @@ def withdraw(assets: uint256, receiver: address=msg.sender, owner: address=msg.s
self.balanceOf[owner] -= shares

self.asset.transfer(receiver, assets)
log Withdraw(msg.sender, receiver, owner, assets, shares)
log Transfer(owner, empty(address), shares)
log Withdraw(msg.sender, receiver, owner, assets, shares)
return shares


Expand All @@ -251,8 +251,8 @@ def redeem(shares: uint256, receiver: address=msg.sender, owner: address=msg.sen
self.balanceOf[owner] -= shares

self.asset.transfer(receiver, assets)
log Withdraw(msg.sender, receiver, owner, assets, shares)
log Transfer(owner, empty(address), shares)
log Withdraw(msg.sender, receiver, owner, assets, shares)
return assets


Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
eth-ape>=0.5.4
eth-ape>=0.6
black
jsbeautifier
39 changes: 23 additions & 16 deletions tests/test_methods.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
AMOUNT = 100 * 10 ** 18
AMOUNT = 100 * 10**18
from ape.utils import ZERO_ADDRESS


def test_asset(vault, token):
Expand All @@ -8,30 +9,36 @@ def test_asset(vault, token):
def test_max_methods(accounts, vault):
a = accounts[0]

assert vault.maxDeposit(a) == 2 ** 256 - 1
assert vault.maxMint(a) == 2 ** 256 - 1
assert vault.maxWithdraw(a) == 2 ** 256 - 1
assert vault.maxRedeem(a) == 2 ** 256 - 1
assert vault.maxDeposit(a) == 2**256 - 1
assert vault.maxMint(a) == 2**256 - 1
assert vault.maxWithdraw(a) == 2**256 - 1
assert vault.maxRedeem(a) == 2**256 - 1


def test_preview_methods(accounts, token, vault):
a = accounts[0]

assert vault.totalAssets() == 0
assert vault.convertToAssets(10 ** 18) == 0 # no assets
assert vault.convertToShares(10 ** 18) == 10 ** 18 # 1:1 price
assert vault.convertToAssets(10**18) == 0 # no assets
assert vault.convertToShares(10**18) == 10**18 # 1:1 price
assert vault.previewDeposit(AMOUNT) == AMOUNT # 1:1 price
assert vault.previewMint(AMOUNT) == AMOUNT # 1:1 price
assert vault.previewWithdraw(AMOUNT) == 0 # but no assets
assert vault.previewRedeem(AMOUNT) == 0 # but no assets

token.DEBUG_mint(a, AMOUNT, sender=a)
token.approve(vault, AMOUNT, sender=a)
vault.deposit(AMOUNT, sender=a)
tx = vault.deposit(AMOUNT, sender=a)

assert tx.events == [
token.Transfer(a, vault, AMOUNT),
vault.Transfer(ZERO_ADDRESS, a, AMOUNT),
vault.Deposit(a, a, AMOUNT, AMOUNT),
]

assert vault.totalAssets() == AMOUNT
assert vault.convertToAssets(10 ** 18) == 10 ** 18 # 1:1 price
assert vault.convertToShares(10 ** 18) == 10 ** 18 # 1:1 price
assert vault.convertToAssets(10**18) == 10**18 # 1:1 price
assert vault.convertToShares(10**18) == 10**18 # 1:1 price
assert vault.previewDeposit(AMOUNT) == AMOUNT # 1:1 price
assert vault.previewMint(AMOUNT) == AMOUNT # 1:1 price
assert vault.previewWithdraw(AMOUNT) == AMOUNT # 1:1 price
Expand All @@ -40,8 +47,8 @@ def test_preview_methods(accounts, token, vault):
token.DEBUG_mint(vault, AMOUNT, sender=a)

assert vault.totalAssets() == 2 * AMOUNT
assert vault.convertToAssets(10 ** 18) == 2 * 10 ** 18 # 2:1 price
assert vault.convertToShares(2 * 10 ** 18) == 10 ** 18 # 2:1 price
assert vault.convertToAssets(10**18) == 2 * 10**18 # 2:1 price
assert vault.convertToShares(2 * 10**18) == 10**18 # 2:1 price
assert vault.previewDeposit(AMOUNT) == AMOUNT // 2 # 2:1 price
assert vault.previewMint(AMOUNT // 2) == AMOUNT # 2:1 price
assert vault.previewWithdraw(AMOUNT) == AMOUNT // 2 # 2:1 price
Expand All @@ -50,8 +57,8 @@ def test_preview_methods(accounts, token, vault):
vault.DEBUG_steal_tokens(AMOUNT, sender=a)

assert vault.totalAssets() == AMOUNT
assert vault.convertToAssets(10 ** 18) == 10 ** 18 # 1:1 price
assert vault.convertToShares(10 ** 18) == 10 ** 18 # 1:1 price
assert vault.convertToAssets(10**18) == 10**18 # 1:1 price
assert vault.convertToShares(10**18) == 10**18 # 1:1 price
assert vault.previewDeposit(AMOUNT) == AMOUNT # 1:1 price
assert vault.previewMint(AMOUNT) == AMOUNT # 1:1 price
assert vault.previewWithdraw(AMOUNT) == AMOUNT # 1:1 price
Expand All @@ -60,8 +67,8 @@ def test_preview_methods(accounts, token, vault):
vault.DEBUG_steal_tokens(AMOUNT // 2, sender=a)

assert vault.totalAssets() == AMOUNT // 2
assert vault.convertToAssets(10 ** 18) == 10 ** 18 // 2 # 1:2 price
assert vault.convertToShares(10 ** 18 // 2) == 10 ** 18 # 1:2 price
assert vault.convertToAssets(10**18) == 10**18 // 2 # 1:2 price
assert vault.convertToShares(10**18 // 2) == 10**18 # 1:2 price
assert vault.previewDeposit(AMOUNT) == 2 * AMOUNT # 1:2 price
assert vault.previewMint(2 * AMOUNT) == AMOUNT # 1:2 price
assert vault.previewWithdraw(AMOUNT) == 2 * AMOUNT # 1:2 price
Expand Down
Loading