An extension of OpenZeppelin's VestingWallet contract. This contract adds the following functionality:
- Add a vesting cliff:
beneficiarycannot claim any vested tokens until a cliff duration has elapsed - Add
owner: contract isOwnable2Step - Add clawbacks: contract
ownercan clawback any unvested tokens - Add post-clawback sweeps: contract
ownercan sweep any excess tokens sent to the contract after clawback - Add release guard: only
beneficiarycan callrelease()andrelease(token)
forge build
forge test
solhint ./src/*.sol ./test/*.sol
# Setup an env file
cp sample.env .env
# Now, edit your .env file with RPC address, private key, and Etherscan API key
# To load the variables in the .env file
source .env
# To deploy and verify our contract
forge script script/EnhancedVestingWalletFactoryDeploymentScript.s.sol:EnhancedVestingWalletFactoryDeploymentScript --rpc-url $RPC_URL --broadcast --verify -vvvv