Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
edd6347
📝 More comments
transmissions11 Nov 8, 2021
421ceeb
👷‍♂️ Lower optimizer runs
transmissions11 Nov 8, 2021
14a0a8c
📝 Comment fixes
transmissions11 Nov 8, 2021
3ce535e
♻️ Remove VaultFactory import
transmissions11 Nov 9, 2021
3e2958f
♻️ Cleanup tests
transmissions11 Nov 10, 2021
a35ecf1
✨ VaultRouterModule
transmissions11 Nov 10, 2021
031c776
🐛 Missing equal sign
transmissions11 Nov 10, 2021
0d8fe9d
♻️ Reorder and make vars public in VaultConfigurationModule
transmissions11 Nov 10, 2021
6f8cff7
🔊 Add event to VaultCreationModule
transmissions11 Nov 10, 2021
202381a
📝 Comment on cast overflow
transmissions11 Nov 10, 2021
64a47ac
🐛 Seize strategy operator flip
transmissions11 Nov 10, 2021
a44f067
🔒 Add requireAuth to more queue funcs
transmissions11 Nov 11, 2021
ba8c5a3
🔒 Pop untrusted and depleted strats from queue
transmissions11 Nov 11, 2021
fdb9242
⚡️ Unchecked and cast optimizations
transmissions11 Nov 11, 2021
38baae1
👷‍♂️ Update optimize runs
transmissions11 Nov 11, 2021
895f081
📝 Comment fix
transmissions11 Nov 11, 2021
9735fde
dapp upgrade solmate
transmissions11 Nov 11, 2021
3e10da8
✅ More tests & assorted fixes
transmissions11 Nov 12, 2021
da2178c
dapp upgrade solmate
transmissions11 Nov 12, 2021
74364d2
♻️ Upgrade to solc 0.8.10
transmissions11 Nov 12, 2021
f33cfb9
👷‍♂️ Upgrade dapptools
transmissions11 Nov 12, 2021
27dbbe6
dapp upgrade solmate
transmissions11 Nov 12, 2021
80f6a5f
✅ Basic integration tests
transmissions11 Nov 12, 2021
53ba195
🚧 Batch harvest
transmissions11 Nov 14, 2021
0152a2f
📝 Comment fixes
transmissions11 Nov 14, 2021
ba3e59f
🐛 Use lockedProfit() to update maxLockedProfit
transmissions11 Nov 15, 2021
b813e71
✅ Test exchange rate remains constant during multi harvests
transmissions11 Nov 15, 2021
d0610cd
♻️ fvToken -> rvToken
transmissions11 Nov 15, 2021
5bfaca1
📝 Typos
transmissions11 Nov 15, 2021
740a298
📝 Comment fix
transmissions11 Nov 15, 2021
8c5b427
📝 Better comment
transmissions11 Nov 15, 2021
65e59fa
♻️ Rename
transmissions11 Nov 15, 2021
85e0fa1
🔥 Remove TODO
transmissions11 Nov 15, 2021
f84d6d4
📝 Comment fix
transmissions11 Nov 15, 2021
2f04e2e
👷‍♂️ Upgrade DappTools
transmissions11 Nov 16, 2021
609a1c5
📝 Clear up use of underflow/overflow
transmissions11 Nov 16, 2021
a62f4e1
♻️ Naming and comment fixes
transmissions11 Nov 18, 2021
650c7a2
🔒 Creation -> Initialization Module
transmissions11 Nov 18, 2021
edcc8a2
📝 Comment fixes
transmissions11 Nov 18, 2021
1c697e0
dapp upgrade solmate
transmissions11 Nov 18, 2021
cb36bba
📝 Normalize tenses
transmissions11 Nov 18, 2021
5133668
🔥 Unused lib binding
transmissions11 Nov 19, 2021
575cbda
🔊 Index WithdrawalQueueIndexReplacedWithTip field
transmissions11 Nov 19, 2021
53fa979
dapp upgrade solmate
transmissions11 Nov 19, 2021
7ce2a21
👷‍♂️ Update vscode settings
transmissions11 Nov 19, 2021
c0136ff
dapp upgrade solmate
transmissions11 Nov 19, 2021
aba1ca0
👷‍♂️ Update snapshots
transmissions11 Nov 19, 2021
6eb7afb
📝 Typo
transmissions11 Nov 21, 2021
0914ad6
🍱 Initial audits
transmissions11 Nov 22, 2021
a1f5787
📝 Update contributing section
transmissions11 Nov 22, 2021
3d92dbb
📝 Contributing updates
transmissions11 Nov 22, 2021
dd32bfc
📝 Cleanup docs
transmissions11 Nov 22, 2021
17e416f
📝 Update architecture
transmissions11 Nov 22, 2021
b44eeae
📝 Simplify tagline
transmissions11 Nov 22, 2021
49cb54a
📝 Missing comments
transmissions11 Nov 23, 2021
6a86710
📝 Fix broken link
transmissions11 Nov 23, 2021
3153dbe
📝 Comment fixes
transmissions11 Nov 24, 2021
0872738
dapp upgrade solmate
transmissions11 Nov 24, 2021
8cb90f6
dapp upgrade solmate
transmissions11 Nov 24, 2021
78e2a7d
🐛 safeCastTo224 -> safeCastTo248
transmissions11 Nov 24, 2021
fc36e3b
🔊 User field for more events
transmissions11 Nov 27, 2021
6691962
🔊 User field for strategy trust
transmissions11 Nov 27, 2021
2bb04b6
🔥 Remove stale comment
transmissions11 Nov 27, 2021
eb18d7a
🔊 Single event per harvest
transmissions11 Nov 27, 2021
9eb5915
👷‍♂️ Use = instead of ==
transmissions11 Nov 29, 2021
1a3028e
👷‍♂️ Check gas snapshots
transmissions11 Nov 29, 2021
77714d8
⚡️ Unchecked optimization
transmissions11 Nov 29, 2021
32f5f43
🔒 Require auth to harvest
transmissions11 Nov 30, 2021
887e434
✨ Self destruct
transmissions11 Nov 30, 2021
33e0bef
👷‍♂️ More optimizer runs
transmissions11 Nov 30, 2021
60bbb6a
✅ Test self destruct
transmissions11 Nov 30, 2021
5238361
💥 Add public capabilities and remove root
transmissions11 Nov 30, 2021
ce998ce
dapp upgrade solmate
transmissions11 Nov 30, 2021
057ed8b
♻️ Punctuation fix
transmissions11 Nov 30, 2021
79d62d5
📝 Fix misleading comment
transmissions11 Dec 3, 2021
0d57d65
✅ isVaultDeployed test
transmissions11 Dec 11, 2021
ebf8301
🔒 Fix set target float percent check (#100)
refcell Dec 24, 2021
9f227ea
♻️ Only approve min in router
transmissions11 Jan 17, 2022
b9a57c1
♻️ Internal BASE_UNIT
transmissions11 Jan 17, 2022
993ae52
🔒 [QSP-5] Prevent duplicate syncing (#105)
transmissions11 Jan 17, 2022
b3150ed
📝 [QSP-2] Direct to Vault for config bounds (#106)
transmissions11 Jan 17, 2022
021fb61
♻️ [QSP-BestPractices] Rename withdrawalQueue to withdrawalStack (#107)
transmissions11 Jan 17, 2022
9741db8
🔒 Cap withdrawal stack size
transmissions11 Jan 17, 2022
4d8d801
🔥 Remove amount != 0 checks
transmissions11 Jan 17, 2022
6136d0e
dapp upgrade solmate
transmissions11 Jan 17, 2022
fb3530a
🔥 Remove VaultAuthorityModule
transmissions11 Jan 17, 2022
ed2e566
📝 Update diagram
transmissions11 Jan 17, 2022
31ee7b6
💥 Allow seizing untrusted strats
transmissions11 Jan 17, 2022
ba0317b
♻️ Only check decimal match if newUnderlyingIsWETH is true
transmissions11 Jan 17, 2022
2edd5eb
🍱 Add Quantstamp report
transmissions11 Jan 19, 2022
adadf27
♻️ Upgrade solmate
JetJadeja Mar 5, 2022
30068df
♻️ Use updated solmate fixedpointmath
JetJadeja Mar 5, 2022
2b8bb26
♻️ Gas snapshot
JetJadeja Mar 6, 2022
113727d
Merge pull request #116 from Rari-Capital/fixes
JetJadeja Mar 6, 2022
c2458cd
🎨 Update import structure
JetJadeja Mar 6, 2022
0263bc9
Inherit from ERC4626
JetJadeja Mar 17, 2022
b219520
Implement deposit/withdrawal hooks
JetJadeja Mar 18, 2022
f78e8fb
Fix Vault test compilation errors
JetJadeja Mar 18, 2022
e7fef16
Fix compilation errors in Integration tests
JetJadeja Mar 18, 2022
deccaff
Fix Vault router module
JetJadeja Mar 18, 2022
6a26f35
forge install: forge-std
JetJadeja Apr 4, 2022
a93f805
Add foundry configuration
JetJadeja Apr 4, 2022
4de54ad
Implement deposit/withdraw/redeem fuzz tests
JetJadeja Apr 4, 2022
5f58576
Fuzzify deposit/withdraw/redeem sanity tests
JetJadeja Apr 4, 2022
9df3554
Fix testFailWithdrawWithNoBalance non-revert case
JetJadeja Apr 6, 2022
fb38617
Update strategy enter/exit tests
JetJadeja Apr 7, 2022
bfbc855
Remove assertions from enter/exit single pool test
JetJadeja Apr 11, 2022
6649cd9
Update VSCode compiler verison
JetJadeja Apr 12, 2022
46ad267
Enabled prettier
JetJadeja Apr 12, 2022
c727b4b
Enable fuzzing for strategy tests
JetJadeja Apr 12, 2022
883ea49
Enable fuzzing on strategy sanity check tests
JetJadeja Apr 12, 2022
b120dd8
Fix incorrect balance math bug
JetJadeja Apr 13, 2022
98dfdf8
MockStrategy should return total underlying balance
JetJadeja Apr 13, 2022
9766f8b
Remove irrelevant functions
JetJadeja Apr 14, 2022
5338bc7
Replace balanceOfUnderlying with 4626 covertToAssets
JetJadeja Apr 14, 2022
e60f219
Fix profitable harvest test
JetJadeja Apr 16, 2022
2a3013c
Update max delta on harvest exchange rate test
JetJadeja Apr 17, 2022
03f1ab8
Remove assertions from harvest test
JetJadeja Apr 17, 2022
36d6bcf
Eliminate unused parameter warnings
JetJadeja Apr 17, 2022
b611d6b
Fix profitable harvest test
JetJadeja Apr 17, 2022
9e753ef
scion vault
0x0scion Apr 19, 2022
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
10 changes: 7 additions & 3 deletions .dapprc
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
# Basic build/test configuration.
export DAPP_SOLC_VERSION=0.8.9
export DAPP_SOLC_VERSION=0.8.10
export DAPP_BUILD_OPTIMIZE=1
export DAPP_BUILD_OPTIMIZE_RUNS=1000000
export DAPP_BUILD_OPTIMIZE_RUNS=8000
export DAPP_LINK_TEST_LIBRARIES=0
export DAPP_TEST_VERBOSITY=1
export DAPP_TEST_SMTTIMEOUT=500000

if [ "$DEEP_FUZZ" == "true" ]
# These normally default to 0 which breaks some tests.
export DAPP_TEST_TIMESTAMP=1000000000
export DAPP_TEST_NUMBER=10000000

if [ "$DEEP_FUZZ" = "true" ]
then
export DAPP_TEST_FUZZ_RUNS=10000 # Fuzz for a long time if DEEP_FUZZ is set to true.
else
Expand Down
109 changes: 72 additions & 37 deletions .gas-snapshot
Original file line number Diff line number Diff line change
@@ -1,37 +1,72 @@
testFailWithdrawFromStrategyWithNotEnoughBalance() (gas: 300443)
testAtomicDepositRedeem() (gas: 208401)
testAtomicEnterExitSinglePool() (gas: 387115)
testFailDepositIntoStrategyZero() (gas: 28111)
testFailWithdrawFromStrategyZero() (gas: 28156)
testAtomicDepositWithdraw() (gas: 208445)
testPushingToWithdrawalQueue() (gas: 129874)
testFailDepositIntoStrategyWithNoBalance() (gas: 130185)
testFailRedeemWithNotEnoughBalance() (gas: 153411)
testUnprofitableHarvest() (gas: 522343)
testFailDepositWithNotEnoughApproval() (gas: 121418)
testFailDepositIntoStrategyWithNotEnoughBalance() (gas: 274096)
testFailWithdrawFromStrategyWithNoBalance() (gas: 28413)
testFailRedeemZero() (gas: 1184)
testFailWithdrawWithNotEnoughBalance() (gas: 153401)
testReplaceWithdrawalQueueIndex() (gas: 124837)
testFailWithdrawWithIncompleteQueue() (gas: 521082)
testProfitableHarvest() (gas: 585931)
testFailDepositZero() (gas: 1208)
testFailWithdrawWithNoBalance() (gas: 3564)
testPoppingFromWithdrawalQueue() (gas: 143346)
testFailWithdrawZero() (gas: 1163)
testFailWithdrawFromStrategyWithoutTrust() (gas: 302863)
testFailDepositWithNoApproval() (gas: 51113)
testFailRedeemWithNoBalance() (gas: 3638)
testAtomicEnterExitMultiPool() (gas: 531020)
testReplaceWithdrawalQueueIndexWithTip() (gas: 126949)
testFailTrustStrategyWithWrongUnderlying() (gas: 2002337)
testSwapWithdrawalQueueIndexes() (gas: 127230)
testFailWithdrawWithEmptyQueue() (gas: 313058)
testFailDepositIntoNotWETHVault() (gas: 10760)
testFailRedeemFromNotWETHVault() (gas: 245181)
testAtomicDepositRedeemETH() (gas: 329700)
testFailWithdrawFromNotWETHVault() (gas: 245115)
testAtomicDepositWithdrawETH() (gas: 331361)
testFailNoDuplicateVaults() (gas: 272747603310794)
testDeployVault() (gas: 4749517)
testIntegration() (gas: 5105473)
testFailDeposit() (gas: 80992)
testInitializeAndDeposit() (gas: 173385)
testTrustStrategyWithWETHUnderlying() (gas: 28084)
testTrustStrategyWithETHUnderlying() (gas: 27502)
testAtomicDepositWithdrawIntoETHStrategies() (gas: 618638)
testDestroyVaultReturnsETH() (gas: 13378)
testFailWithdrawFromStrategyWithNotEnoughBalance() (gas: 298484)
testAtomicDepositRedeem() (gas: 203256)
testFailPushStackFull() (gas: 118311)
testUpdatingHarvestDelay() (gas: 78825)
testFailPopStackEmpty() (gas: 3568)
testAtomicEnterExitSinglePool() (gas: 378899)
testFailHarvestUntrustedStrategy() (gas: 324767)
testAtomicDepositWithdraw() (gas: 203300)
testFailSetStackTooBig() (gas: 5493)
testDestroyVault() (gas: 6316)
testFailDepositIntoStrategyWithNoBalance() (gas: 129069)
testWithdrawingWithUntrustedStrategyInStack() (gas: 1759083)
testFailRedeemWithNotEnoughBalance() (gas: 152131)
testUnprofitableHarvest() (gas: 541816)
testPoppingFromWithdrawalStack() (gas: 147691)
testPushingToWithdrawalStack() (gas: 132102)
testFailDepositWithNotEnoughApproval() (gas: 120370)
testFailDepositIntoStrategyWithNotEnoughBalance() (gas: 271975)
testSeizeStrategyWithBalanceGreaterThanTotalAssets() (gas: 482498)
testWithdrawingWithDuplicateStrategiesInStack() (gas: 667651)
testFailWithdrawFromStrategyWithNoBalance() (gas: 28736)
testFailWithdrawWithEmptyStack() (gas: 310196)
testClaimFees() (gas: 200865)
testFailWithdrawWithNotEnoughBalance() (gas: 152145)
testSeizeStrategy() (gas: 436037)
testFailTrustStrategyWithETHUnderlying() (gas: 933256)
testProfitableHarvest() (gas: 577935)
testFailWithdrawWithIncompleteStack() (gas: 517606)
testFailWithdrawWithNoBalance() (gas: 3628)
testReplaceWithdrawalStackIndexWithTip() (gas: 128330)
testReplaceWithdrawalStackIndex() (gas: 126510)
testFailHarvestAfterWindowBeforeDelay() (gas: 471999)
testFailInitializeTwice() (gas: 1542)
testMultipleHarvestsInWindow() (gas: 525917)
testFailWithdrawFromStrategyWithoutTrust() (gas: 301422)
testFailDepositWithNoApproval() (gas: 50047)
testFailRedeemWithNoBalance() (gas: 3635)
testAtomicEnterExitMultiPool() (gas: 520005)
testFailTrustStrategyWithWrongUnderlying() (gas: 1889496)
testSwapWithdrawalStackIndexes() (gas: 128780)
testSetDefaultTargetFloatPercent() (gas: 55620)
testDefaultHarvestDelayOverridesCustomOfZero() (gas: 58529)
testDefaultTargetFloatPercentOverridesCustomOfZero() (gas: 57765)
testCustomHarvestDelayOverridesDefault() (gas: 78322)
testSetCustomHarvestDelay() (gas: 55230)
testCustomHarvestWindowOverridesDefault() (gas: 88769)
testSetCustomFeePercent() (gas: 54616)
testSetDefaultFeePercent() (gas: 55683)
testSetCustomHarvestWindow() (gas: 86131)
testCustomTargetFloatPercentOverridesDefault() (gas: 77607)
testDefaultFeePercentOverridesCustomOfZero() (gas: 57860)
testSetDefaultHarvestWindow() (gas: 66772)
testDefaultHarvestWindowOverridesCustomOfZero() (gas: 68987)
testSetCustomTargetFloatPercent() (gas: 54473)
testSetDefaultHarvestDelay() (gas: 56390)
testIsVaultDeployed() (gas: 3690)
testFailNoDuplicateVaults() (gas: 272747603290173)
testDeployVault() (gas: 4074195)
testVaultCreation() (gas: 4232391)
testSetConfigurationModule() (gas: 3498)
testFailDepositIntoNotWETHVault() (gas: 10656)
testFailRedeemFromNotWETHVault() (gas: 243420)
testAtomicDepositRedeemETH() (gas: 325421)
testFailWithdrawFromNotWETHVault() (gas: 243320)
testAtomicDepositWithdrawETH() (gas: 326998)
3 changes: 3 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
- name: Install dependencies
run: nix-shell --run 'make'

- name: Check gas snapshots
run: nix-shell --run 'dapp check-snapshot'

- name: Run tests
run: nix-shell --run 'dapp test'
env:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/out
/cache
/node_modules
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "lib/solmate"]
path = lib/solmate
url = https://github.com/rari-capital/solmate
[submodule "lib/forge-std"]
path = lib/forge-std
url = https://github.com/brockelmore/forge-std
5 changes: 3 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
{
"solidity.packageDefaultDependenciesContractsDirectory": "src",
"solidity.packageDefaultDependenciesDirectory": "lib",
"solidity.compileUsingRemoteVersion": "v0.8.9",
"solidity.compileUsingRemoteVersion": "v0.8.10+commit.fc410830",
"search.exclude": { "lib": true },
"files.associations": {
".dapprc": "shellscript"
".dapprc": "shellscript",
".gas-snapshot": "julia"
}
}
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
all: solc install update
# Install proper solc version.
solc:; nix-env -f https://github.com/dapphub/dapptools/archive/master.tar.gz -iA solc-static-versions.solc_0_8_9
solc:; nix-env -f https://github.com/dapphub/dapptools/archive/master.tar.gz -iA solc-static-versions.solc_0_8_10
# Install npm dependencies.
install:; npm install
# Install dapp dependencies.
Expand Down
46 changes: 43 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,51 @@
# vaults
# Vaults • [![Tests](https://github.com/Rari-Capital/vaults/actions/workflows/tests.yml/badge.svg)](https://github.com/Rari-Capital/vaults/actions/workflows/tests.yml) [![License](https://img.shields.io/badge/License-AGPL--3.0-blue)](LICENSE.md)

Flexible, minimalist, and gas-optimized yield aggregator protocol for earning interest on any ERC20 token.
Flexible, minimalist, and **gas-optimized yield aggregator protocol** for earning interest on any ERC20 token.

## Getting Started
- [Documentation](https://docs.rari.capital/vaults)
- [Deployments](https://github.com/Rari-Capital/vaults/releases)
- [Whitepaper](whitepaper/Whitepaper.pdf)
- [Audits](audits)

## Architecture

- [`Vault.sol`](src/Vault.sol): Flexible, minimalist, and gas-optimized yield aggregator for earning interest on any ERC20 token.
- [`VaultFactory.sol`](src/VaultFactory.sol): Factory which enables deploying a Vault contract for any ERC20 token.
- [`modules/`](src/modules): Contracts used for managing and/or simplifying interaction with Vaults and the Vault Factory.
- [`VaultRouterModule.sol`](src/modules/VaultRouterModule.sol): Module that enables depositing ETH and approval-free deposits via permit.
- [`VaultConfigurationModule.sol`](src/modules/VaultConfigurationModule.sol): Module for configuring Vault parameters.
- [`VaultInitializationModule.sol`](src/modules/VaultInitializationModule.sol): Module for initializing newly created Vaults.
- [`interfaces/`](src/interfaces): Interfaces of external contracts Vaults and modules interact with.
- [`Strategy.sol`](src/interfaces/Strategy.sol): Minimal interfaces for ERC20 and ETH compatible strategies.

![Diagram](https://lucid.app/publicSegments/view/8069beaa-d2fc-48de-8f38-9e30edcb5f08/image.png)

## Contributing

You will need a copy of [DappTools](https://dapp.tools) installed before proceeding. See the [installation guide](https://github.com/dapphub/dapptools#installation) for details.

### Setup

```sh
git clone https://github.com/Rari-Capital/vaults.git
cd vaults
make
```

### Run Tests

```sh
dapp test
```

### Measure Coverage

```sh
dapp test --coverage
```

### Update Gas Snapshots

```sh
dapp snapshot
```
Binary file added audits/Fixed-Point-Solutions/Vault.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added audits/Quantstamp/Rari Vaults - Final Report.pdf
Binary file not shown.
Binary file added audits/yAcademy/Dhurv.Kat.Amanusk.pdf
Binary file not shown.
Binary file added audits/yAcademy/Nibbler.Bebis.Zokunei.Carl.pdf
Binary file not shown.
2 changes: 2 additions & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[default]
fuzz_runs = 1000
1 change: 1 addition & 0 deletions lib/forge-std
Submodule forge-std added at 8f1a97
2 changes: 1 addition & 1 deletion lib/solmate
32 changes: 32 additions & 0 deletions scripts/contract-size.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash

set -eo pipefail

contract_size() {
NAME=$1
ARGS=${@:2}
# select the filename and the contract in it
PATTERN=".contracts[\"src/$NAME.sol\"].$NAME"

dapp build # first, build the contract

# get the bytecode from the compiled file
BYTECODE=0x$(jq -r "$PATTERN.evm.bytecode.object" out/dapp.sol.json)
length=$(echo "$BYTECODE" | wc -m)
echo $(($length / 2))
}

if [[ -z $contract ]]; then
if [[ -z ${1} ]];then
echo '"$contract" env variable is not set. Set it to the name of the contract you want to estimate size for.'
exit 1
else
contract=${1}
fi
fi

contract_size=$(contract_size ${contract})
echo "Contract Name: ${contract}"
echo "Contract Size: ${contract_size} bytes"
echo
echo "$(( 24576 - ${contract_size} )) bytes left to reach the smart contract size limit of 24576 bytes."
4 changes: 2 additions & 2 deletions shell.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ let
pkgs = import (builtins.fetchGit rec {
name = "dapptools-${rev}";
url = https://github.com/dapphub/dapptools;
rev = "d7a23096d8ae8391e740f6bdc4e8b9b703ca4764";
rev = "fb9476ded759da44c449eb391cc67bfb0df61112";
}) {};

in
Expand All @@ -12,4 +12,4 @@ in
buildInputs = with pkgs; [
pkgs.dapp
];
}
}
Loading