Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ImpactVault smart contract - Doctors Without Borders (MSF Switzerland) Stake2Care Project

Intro

The ImpactVault smart contract is an ERC 4626 Vault, which is used to donate the revenues of a value-accruing token to a NGO. In the present case, users will deposit Lido ST-ETH and the staking yield will be distributed to Doctors Without Borders (MSF).

On Deposit of stETH, the user receives MSF-ETH. Withdrawals are instantaneous and handled in stETH only.

Deposits into the ImpactVault are further mediated by the LidoImpactVaultDepositor to convert-and-deposit ETH as well. When converting ETH, the user can choose which proportion of the obtained stETH is to be deposited into the Impact Vault while the remainder is sent back to them.

How It Works

The depositor has the option of staking the obtained msfETH through the charityEscrow contract and receive MSF-Karma rewards. The charityEscrow implements a modified voting-escrow mechanism with several distinct features:

  • Upon staking, users receive upfront a bonus in a transferrable ERC-20 token, the "MSF-Karma".
  • The Bonus increases quadratically with the time locked.
  • Users may unstake before the unlock if they burn MSF-Karma tokens.
  • MSF-Karma tokens can be directly purchased from the smart contract.

A precise whitepaper on the charity-escrow logic is available here.

ERC4626 ImpactVault

The system has been generalised to donate the revenues of any value-accruing ERC4626 Vault. FIrst Deployments are Done using mainnet Morpho Steakhouse SteakHouse USDC and Morpho Steakhouse SteakHouse USDT as underlyings.

Getting started

  • install npm i
  • build contract using solidity : npx hardhat compile
  • run tests npx hardhat test
  • deploy npx hardhat run scripts/deploy.ts --network mainnet

Audits

You can find all audit reports under the audits folder:

Deployment Addresses

Contracts have been deployed to Ethereum Mainnet:

Official Website

Stake2Care official website.

Tests

Impact Vault

  • โœ” Deployer has correct stETH balance at test start and can set stETH accrual
  • โœ” Only deployer can set stETH accrual and call the mint function
  • โœ” Anyone can submit by sending ETH directly to the stETH contract
  • โœ” Deployer has correct msfETH balance at test start
  • โœ” Depositor can Mint Asset by sending ETH to receive() of lidoImpactVaultDepositor and then Withdraw
  • โœ” Depositor can Mint Asset by sending stETH via depositAsset() function of lidoImpactVaultDepositor
  • โœ” Depositor can Mint Asset by sending ETH to depositETH() of lidoImpactVaultDepositor with a depositProportion of 80%
  • โœ” depositToken() should revert with NotImplementedError
  • โœ” Only owner can set AutoCollectThreshold
  • โœ” Depositor can mint shares by sending ETH via mint() of impactVault and then withdraw
  • โœ” collectDonations is timelocked for 3 days after second deposit
  • โœ” collectDonations does not update pending surplus if it is below autoCollectThreshold
  • โœ” collectDonations can be called with custom minimalTransfer to bypass minimalCollectAmount

MSFPoint and CharityEscrow

MSFPoint

  • โœ” MSFP deployment should set the right name and symbol (1185ms)
  • โœ” Only MINTER_ROLE could mint (90ms)
  • โœ” Only DEFAULT_ADMIN_ROLE could recoverERC20 (88ms)

CharityEscrow deployment

  • โœ” CharityEscrow deployment should be possible only if baseEarnRate_ and yearlyBonus_ below their max value (143ms)

Charity escrow usage

  • โœ” Only owner could recoverERC20, but only if token is different from MSF-STETH
  • โœ” Only owner could setPointPrice, but only if new price is not too low nor too high, unless if zero (46ms)
  • โœ” Only owner could setEarnStructure, but only within allowed bounds
  • โœ” InvestorA locks his MSF-STETH into CharityEscrow for 3 years
  • โœ” View functions lockReward and baseRewardDelta return expected values
  • โœ” totalSupply returns ImpactVault Balance
  • โœ” The transfer, transferFrom and approve functions exist for CharityEscrow but are not implemented
  • โœ” user can buy Points at pointPrice (42ms)
  • โœ” user cannot buy Points when pointPrice is 0
  • โœ” InvestorA can unlock his MSF-STETH after the end of the lock period (46ms)
  • โœ” InvestorA can increaseLock with additional funds and duration
  • โœ” InvestorA can increaseLock with just additional funds (42ms)
  • โœ” InvestorA can increaseLock with just additional duration
  • โœ” InvestorA cannot increaseLock if newEffectiveLockDuration is maximumLockDuration or below minimumLockDuration
  • โœ” InvestorA can decreaseLock by just decreasing duration (38ms)
  • โœ” InvestorA can decreaseLock by just decreasing amount (43ms)
  • โœ” When increasing Lock, due Time Reward stays similar (51ms)
  • โœ” decreaseLock is equivalent to an unlock, after lock duration ends
  • โœ” decreaseLock does an unlock, if newEffectiveLockDuration is null if decrease exceeds duration (41ms)
  • โœ” decreaseLock reduces all lockedBalance if newLockBalance is null or if decrease exceeds balance
  • โœ” decreaseLock reverts if new values are below minimums but non-zero

ERC4626ImpactVault

Deployment

  • โœ” Should deploy with correct name and symbol (50ms)
  • โœ” Should set correct underlying vault
  • โœ” Should set correct asset (same as underlying vault asset)
  • โœ” Should approve underlying vault for max uint256
  • โœ” Should have correct initial total supply after seeding (100 USDC)
  • โœ” Should have correct decimals (6)
  • โœ” Should have correct initial totalAssets (100 USDC)

    totalAssets

  • โœ” Should return underlying vault assets via convertToAssets
  • โœ” Should increase by exact yield amount when underlying vault has yield
  • โœ” Should decrease by exact loss amount when underlying vault has loss

    Deposit

  • โœ” Should revert if deposit is below minimum
  • โœ” Should mint shares exactly equal to assets when NAV = 1
  • โœ” Should transfer exact assets to underlying vault
  • โœ” Should emit Deposit event with correct values
  • โœ” Should mint more shares when NAV < 1 (after loss)

    Mint

  • โœ” Should revert if assets needed are below minimum
  • โœ” Should mint exact number of shares requested
  • โœ” Should take exact assets +1 for shares when NAV = 1
  • โœ” Should take fewer assets when NAV < 1

    Withdraw

  • โœ” Should withdraw exact assets requested (72ms)
  • โœ” Should burn exact shares +1 when NAV = 1
  • โœ” Should emit Withdraw event with correct values
  • โœ” Should burn more shares after loss (NAV < 1)

    Redeem

  • โœ” Should burn exact shares specified
  • โœ” Should give exact assets - 1 when NAV = 1
  • โœ” Should give fewer assets when NAV < 1
  • โœ” Should give assets = shares - 1 after yield when NAV >= 1 (post donation collection)

    Preview Functions

  • โœ” previewDeposit should return exact shares for deposit
  • โœ” previewMint should return exact assets for mint
  • โœ” previewWithdraw should return exact shares for withdraw (82ms)
  • โœ” previewRedeem should return exact assets for redeem
  • โœ” previewDeposit should match actual deposit exactly
  • โœ” previewMint should match actual mint exactly
  • โœ” previewWithdraw should match actual withdraw exactly (91ms)
  • โœ” previewRedeem should match actual redeem exactly

    Max Functions

  • โœ” maxDeposit should return underlying vault's maxDeposit
  • โœ” maxMint should return shares corresponding to maxDeposit
  • โœ” maxWithdraw should return exact redeemable assets for owner (73ms)
  • โœ” maxRedeem should return owner's shares

    Conversion Functions

  • โœ” convertToShares should be exact when NAV = 1
  • โœ” convertToAssets should be exact when NAV = 1
  • โœ” convertToShares should return more shares when NAV < 1
  • โœ” convertToAssets should return fewer assets when NAV < 1
  • โœ” convertToShares and convertToAssets should be inverse (within rounding)

    collectDonations

  • โœ” Should not update timelock if surplus is below minimal transfer threshold
  • โœ” Should set timelock on first collection with surplus above threshold
  • โœ” Should not transfer during timelock period
  • โœ” Should transfer exact surplus to owner after 3-day timelock
  • โœ” Should use default minimalCollectAmount when 0 is passed
  • โœ” Should trigger collection via deposit when timelock expired

    setAutoCollectThreshold

  • โœ” Should only be callable by owner
  • โœ” Should update minimalCollectAmount to exact value
  • โœ” Should emit SetAutoCollectThreshold event with correct values

    recoverERC20

  • โœ” Should only be callable by owner
  • โœ” Should revert when trying to recover underlying vault tokens
  • โœ” Should transfer exact amount of other ERC20 tokens to owner
  • โœ” Should allow recovering the asset token sent directly
  • โœ” Should emit RecoveredERC20 event with correct values

    Ownership

  • โœ” Should have correct initial owner
  • โœ” Should transfer ownership with 2-step process

    ERC20 Standard Functions

  • โœ” Should have decimals equal to asset decimals
  • โœ” Should transfer exact amount between accounts (56ms)
  • โœ” Should set exact allowance on approve
  • โœ” Should transferFrom and reduce allowance exactly

    Invariants

  • โœ” Total supply should equal sum of all balances
  • โœ” User cannot withdraw more than maxWithdraw
  • โœ” User cannot redeem more than maxRedeem
  • โœ” After full redemption, user balance should be exactly zero
  • โœ” Vault should never hold assets directly (all goes to underlying)
  • โœ” totalAssets should equal underlying vault position exactly
  • โœ” collectDonations should preserve user shares exactly

    Edge Cases

  • โœ” Should handle deposit when totalSupply is 0 after all redemptions
  • โœ” Should track exact balances through multiple deposits and withdrawals
  • โœ” Should handle very large deposits correctly
  • โœ” Should handle yield followed by loss scenario correctly

ERC4626ImpactVault with Underlying Vault Fees

Impact on Deposit

  • โœ” Should receive fewer underlying shares due to deposit fee (56ms)
  • โœ” Should calculate correct impact vault shares accounting for fee
  • โœ” previewDeposit should match actual deposit with fee
  • โœ” totalAssets should reflect fee impact correctly

Impact on Mint

  • โœ” Should require more assets to mint due to deposit fee
  • โœ” previewMint should match actual mint with fee

Impact on Withdraw

  • โœ” Should burn more shares to withdraw due to fee (72ms)
  • โœ” previewWithdraw should match actual withdraw with fee
  • โœ” Should calculate exact shares burned with fee

Impact on Redeem

  • โœ” Should receive fewer assets when redeeming due to fee
  • โœ” previewRedeem should match actual redeem with fee
  • โœ” Should calculate exact assets received with fee
  • โœ” maxWithdraw should account for withdraw fee

Underlying Vault with Both Fees

  • โœ” Round-trip deposit then full redeem should reflect both fees (65ms)
  • โœ” previewDeposit should match actual with both fees
  • โœ” previewMint should match actual with both fees
  • โœ” previewWithdraw should match actual with both fees (60ms)
  • โœ” previewRedeem should match actual with both fees
  • โœ” Yield collection should work correctly with fees
  • โœ” Multiple users with fees should maintain fairness

    Edge Cases with Fees

  • โœ” Should handle very small deposits with deposit fee
  • โœ” Should handle maximum fee (99%)
  • โœ” Should handle fee change between operations (71ms)
  • โœ” Loss scenario with fees should work correctly (88ms)
  • โœ” Yield scenario with fees should work correctly (85ms)

    Invariants with Fees

  • โœ” totalSupply should equal sum of all balances with fees (65ms)
  • โœ” User cannot withdraw more than maxWithdraw with fees
  • โœ” User cannot redeem more than maxRedeem with fees
  • โœ” Vault should never hold assets directly with fees (72ms)
  • โœ” Full redemption should zero balance with fees

ยท--------------------------------------------------------|---------------------------|--------------|-----------------------------ยท
|                  Solc version: 0.8.19                  ยท  Optimizer enabled: true  ยท  Runs: 1000  ยท  Block limit: 30000000 gas  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  Methods                                                                                                                        โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  Contract                  ยท  Method                   ยท  Min        ยท  Max        ยท  Avg         ยท  # calls      ยท  usd (avg)  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  buyPoints                ยท          -  ยท          -  ยท       89850  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  decreaseLock             ยท      37924  ยท      77438  ยท       64182  ยท            8  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  increaseLock             ยท      55044  ยท     146811  ยท      121511  ยท           20  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  recoverERC20             ยท          -  ยท          -  ยท       62807  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  setEarnStructure         ยท          -  ยท          -  ยท       31072  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  setPointPrice            ยท      25359  ยท      47300  ยท       32079  ยท            4  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  transferOwnership        ยท      28036  ยท      47936  ยท       37986  ยท            2  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow             ยท  unLock                   ยท          -  ยท          -  ยท       54156  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  approve                  ยท          -  ยท          -  ยท       46713  ยท           13  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  collectDonations         ยท          -  ยท          -  ยท       38088  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  deposit                  ยท      85825  ยท     115249  ยท      111188  ยท           31  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  mint                     ยท      68770  ยท      76294  ยท       72532  ยท            4  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  redeem                   ยท          -  ยท          -  ยท       94719  ยท            2  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  setAutoCollectThreshold  ยท      47731  ยท      47755  ยท       47747  ยท            6  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  transfer                 ยท      46994  ยท      47006  ยท       47000  ยท            2  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault               ยท  withdraw                 ยท          -  ยท          -  ยท       94785  ยท            2  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  LidoImpactVaultDepositor  ยท  depositAsset             ยท          -  ยท          -  ยท       95510  ยท            2  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  LidoImpactVaultDepositor  ยท  depositETH               ยท          -  ยท          -  ยท      126445  ยท            3  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  MSFPoint                  ยท  approve                  ยท      46657  ยท      46669  ยท       46662  ยท            5  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  MSFPoint                  ยท  grantRole                ยท          -  ยท          -  ยท       51615  ยท            3  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  MSFPoint                  ยท  mint                     ยท          -  ยท          -  ยท       70912  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  MSFPoint                  ยท  recoverERC20             ยท          -  ยท          -  ยท       62775  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  SmartAccount              ยท  executeBatch             ยท          -  ยท          -  ยท       37064  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  TestStETH                 ยท  approve                  ยท      46668  ยท      46680  ยท       46673  ยท           35  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  TestStETH                 ยท  changeAccrual            ยท          -  ยท          -  ยท       28856  ยท           16  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  TestStETH                 ยท  mint                     ยท      73003  ยท      73027  ยท       73020  ยท           30  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  Deployments                                           ยท                                          ยท  % of limit   ยท             โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  CharityEscrow                                         ยท    2432401  ยท    2432569  ยท     2432485  ยท        8.1 %  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  acceptOwnership          ยท          -  ยท          -  ยท       28335  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  approve                  ยท          -  ยท          -  ยท       46665  ยท            2  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  collectDonations         ยท      44379  ยท     102017  ยท       69311  ยท           17  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  deposit                  ยท     113745  ยท     163050  ยท      138796  ยท           71  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  mint                     ยท     131292  ยท     155747  ยท      139444  ยท            3  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  recoverERC20             ยท      55693  ยท      60541  ยท       59329  ยท            4  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  redeem                   ยท      98516  ยท     127688  ยท      109170  ยท           13  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  setAutoCollectThreshold  ยท      47800  ยท      47812  ยท       47803  ยท            4  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  transfer                 ยท          -  ยท          -  ยท       34646  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  transferFrom             ยท          -  ยท          -  ยท       42669  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  transferOwnership        ยท          -  ยท          -  ยท       47936  ยท            1  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ERC4626ImpactVault        ยท  withdraw                 ยท     103711  ยท     128166  ยท      115302  ยท           13  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  ImpactVault                                           ยท    1977889  ยท    1977913  ยท     1977912  ยท        6.6 %  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  LidoImpactVaultDepositor                              ยท          -  ยท          -  ยท      716156  ยท        2.4 %  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  MSFPoint                                              ยท          -  ยท          -  ยท     1549720  ยท        5.2 %  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  SmartAccount                                          ยท          -  ยท          -  ยท      525501  ยท        1.8 %  ยท          -  โ”‚
ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยทยท|ยทยทยทยทยทยทยทยทยทยทยทยทยทยท
|  TestStETH                                             ยท          -  ยท          -  ยท     1086007  ยท        3.6 %  ยท          -  โ”‚
ยท--------------------------------------------------------|-------------|-------------|--------------|---------------|-------------ยท

  39 passing (4s)

Coverage

-------------------------------|----------|----------|----------|----------|----------------|
File                           |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
-------------------------------|----------|----------|----------|----------|----------------|
 src/                          |    87.95 |    83.78 |    86.81 |    88.19 |                |
  CharityEscrow.sol            |      100 |      100 |    90.91 |    98.39 |        198,203 |
  ERC4626ImpactVault.sol       |    86.67 |     77.5 |      100 |    86.47 |... 202,205,532 |
  ImpactVault.sol              |      100 |      100 |      100 |      100 |                |
  ImpactVaultDepositor.sol     |    77.78 |      100 |      100 |    77.78 |108,109,110,111 |
  LidoImpactVaultDepositor.sol |      100 |      100 |      100 |      100 |                |
  MSFPoint.sol                 |      100 |      100 |      100 |      100 |                |
  MetaMorphoImpactVault.sol    |        0 |        0 |        0 |        0 | 51,52,53,61,62 |
  StEth.sol                    |        0 |        0 |        0 |        0 |... 40,44,45,49 |
  testStEth.sol                |       75 |     62.5 |    85.71 |    83.33 |          38,39 |
 src/intf/                     |      100 |      100 |      100 |      100 |                |
  ICharityEscrow.sol           |      100 |      100 |      100 |      100 |                |
  IERC4626ImpactVault.sol      |      100 |      100 |      100 |      100 |                |
  IImpactVault.sol             |      100 |      100 |      100 |      100 |                |
  IImpactVaultDepositor.sol    |      100 |      100 |      100 |      100 |                |
  IMSFPoint.sol                |      100 |      100 |      100 |      100 |                |
 src/test/                     |      100 |       50 |      100 |      100 |                |
  SmartAccount.sol             |      100 |       50 |      100 |      100 |                |
 src/test/mocks/               |    68.42 |     37.5 |    88.24 |    67.39 |                |
  MockERC20.sol                |      100 |      100 |      100 |      100 |                |
  UnderlyingVaultMock.sol      |    66.67 |     37.5 |    85.71 |    65.12 |... 112,114,115 |
-------------------------------|----------|----------|----------|----------|----------------|
All files                      |    85.57 |    78.57 |    87.27 |    85.99 |                |
-------------------------------|----------|----------|----------|----------|----------------|

About

Smart Contracts for the Doctors Without Border (MSF Switzerland) Stake2Care Project

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages