Token vesting standard contract written in Cairo 1 (compiler 2)
This contract handles the vesting of ERC20 tokens on Starknet for a given beneficiary. Custody of multiple tokens can be given to this contract, which will release the token to the beneficiary following a given vesting schedule. The vesting schedule is customizable through the vested_amount function.
Any token transferred to this contract will follow the vesting schedule as if they were locked from the beginning. Consequently, if the vesting has already started, any amount of tokens sent to this contract will (at least partly) be immediately releasable. By setting the duration to 0, one can configure this contract to behave like an asset timelock that hold tokens for a beneficiary until a specified time.
This standard aims to be imported into the OpenZeppelin Cairo-contracts repository of standard Cairo language contracts.
This project uses Starknet Cairo V1 (Compiler 2). This project is built and tested with Scarb. This project includes some basic unit tests, with room for more advanced tests to be added once the OpenZeppelin Cairo-Contracts repository is brought up to date with Cairo 1 (Compiler 2). This project is deployed on Starknet Goerli testnet using Starkli.