├── .env.example ├── .github └── workflows │ └── CI.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── Makefile ├── README.md ├── deploy ├── arbitrum.sh ├── common.sh ├── goerli.sh ├── mainnet.sh ├── mocks-goerli.sh ├── mocks-rinkeby.sh ├── optimism.sh ├── polygon.sh └── rinkeby.sh ├── deployments ├── arbitrum.json ├── goerli.json ├── mainnet.json ├── mocks-goerli.json ├── mocks-rinkeby.json ├── optimism.json ├── polygon.json └── rinkeby.json ├── foundry.toml ├── remappings.txt └── src ├── Factory.sol ├── Gate.sol ├── NegativeYieldToken.sol ├── PerpetualYieldToken.sol ├── external ├── IxPYT.sol └── YearnVault.sol ├── gates ├── ERC20Gate.sol ├── ERC4626Gate.sol └── YearnGate.sol ├── lib ├── BaseERC20.sol ├── FullMath.sol ├── Multicall.sol └── SelfPermit.sol └── test ├── base ├── BaseGateTest.sol └── BaseTest.sol ├── gates ├── ERC4626Gate.t.sol └── YearnGate.t.sol ├── mocks ├── TestERC20.sol ├── TestERC4626.sol ├── TestXPYT.sol └── TestYearnVault.sol └── utils ├── Echo.sol ├── VM.sol └── console.sol /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/.env.example -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/.github/workflows/CI.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .env 4 | .vscode -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/.gitmodules -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/README.md -------------------------------------------------------------------------------- /deploy/arbitrum.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/arbitrum.sh -------------------------------------------------------------------------------- /deploy/common.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/common.sh -------------------------------------------------------------------------------- /deploy/goerli.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/goerli.sh -------------------------------------------------------------------------------- /deploy/mainnet.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/mainnet.sh -------------------------------------------------------------------------------- /deploy/mocks-goerli.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/mocks-goerli.sh -------------------------------------------------------------------------------- /deploy/mocks-rinkeby.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/mocks-rinkeby.sh -------------------------------------------------------------------------------- /deploy/optimism.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/optimism.sh -------------------------------------------------------------------------------- /deploy/polygon.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/polygon.sh -------------------------------------------------------------------------------- /deploy/rinkeby.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deploy/rinkeby.sh -------------------------------------------------------------------------------- /deployments/arbitrum.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/arbitrum.json -------------------------------------------------------------------------------- /deployments/goerli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/goerli.json -------------------------------------------------------------------------------- /deployments/mainnet.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/mainnet.json -------------------------------------------------------------------------------- /deployments/mocks-goerli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/mocks-goerli.json -------------------------------------------------------------------------------- /deployments/mocks-rinkeby.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/mocks-rinkeby.json -------------------------------------------------------------------------------- /deployments/optimism.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/optimism.json -------------------------------------------------------------------------------- /deployments/polygon.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/polygon.json -------------------------------------------------------------------------------- /deployments/rinkeby.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/deployments/rinkeby.json -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/foundry.toml -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/remappings.txt -------------------------------------------------------------------------------- /src/Factory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/Factory.sol -------------------------------------------------------------------------------- /src/Gate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/Gate.sol -------------------------------------------------------------------------------- /src/NegativeYieldToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/NegativeYieldToken.sol -------------------------------------------------------------------------------- /src/PerpetualYieldToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/PerpetualYieldToken.sol -------------------------------------------------------------------------------- /src/external/IxPYT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/external/IxPYT.sol -------------------------------------------------------------------------------- /src/external/YearnVault.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/external/YearnVault.sol -------------------------------------------------------------------------------- /src/gates/ERC20Gate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/gates/ERC20Gate.sol -------------------------------------------------------------------------------- /src/gates/ERC4626Gate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/gates/ERC4626Gate.sol -------------------------------------------------------------------------------- /src/gates/YearnGate.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/gates/YearnGate.sol -------------------------------------------------------------------------------- /src/lib/BaseERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/lib/BaseERC20.sol -------------------------------------------------------------------------------- /src/lib/FullMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/lib/FullMath.sol -------------------------------------------------------------------------------- /src/lib/Multicall.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/lib/Multicall.sol -------------------------------------------------------------------------------- /src/lib/SelfPermit.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/lib/SelfPermit.sol -------------------------------------------------------------------------------- /src/test/base/BaseGateTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/base/BaseGateTest.sol -------------------------------------------------------------------------------- /src/test/base/BaseTest.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/base/BaseTest.sol -------------------------------------------------------------------------------- /src/test/gates/ERC4626Gate.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/gates/ERC4626Gate.t.sol -------------------------------------------------------------------------------- /src/test/gates/YearnGate.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/gates/YearnGate.t.sol -------------------------------------------------------------------------------- /src/test/mocks/TestERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/mocks/TestERC20.sol -------------------------------------------------------------------------------- /src/test/mocks/TestERC4626.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/mocks/TestERC4626.sol -------------------------------------------------------------------------------- /src/test/mocks/TestXPYT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/mocks/TestXPYT.sol -------------------------------------------------------------------------------- /src/test/mocks/TestYearnVault.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/mocks/TestYearnVault.sol -------------------------------------------------------------------------------- /src/test/utils/Echo.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/utils/Echo.sol -------------------------------------------------------------------------------- /src/test/utils/VM.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/utils/VM.sol -------------------------------------------------------------------------------- /src/test/utils/console.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timeless-fi/timeless/HEAD/src/test/utils/console.sol --------------------------------------------------------------------------------