├── .circleci └── config.yml ├── .env.example ├── .eslintrc.js ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .prettierrc ├── .solcover.js ├── LICENSE ├── README.md ├── contracts ├── core │ └── OpynPerpVault.sol ├── example-actions │ ├── ShortOToken.sol │ └── ShortPutWithETH.sol ├── interfaces │ ├── IAction.sol │ ├── ICEth.sol │ ├── ICToken.sol │ ├── IChainlink.sol │ ├── IComptroller.sol │ ├── IController.sol │ ├── IERC20Detailed.sol │ ├── IEasyAuction.sol │ ├── IOToken.sol │ ├── IOracle.sol │ ├── IOtokenFactory.sol │ ├── IPool.sol │ ├── IPriceFeed.sol │ ├── ISwap.sol │ ├── ITreasury.sol │ ├── IVault.sol │ ├── IWETH.sol │ ├── IWhitelist.sol │ └── IZeroXV4.sol ├── libraries │ └── SwapTypes.sol ├── mocks │ ├── MockAction.sol │ ├── MockCompoundContracts.sol │ ├── MockController.sol │ ├── MockERC20.sol │ ├── MockEasyAuction.sol │ ├── MockOToken.sol │ ├── MockOpynOracle.sol │ ├── MockOracle.sol │ ├── MockPool.sol │ ├── MockPricer.sol │ ├── MockSwap.sol │ ├── MockWETH.sol │ ├── MockWhitelist.sol │ └── MockZeroXV4.sol ├── proxy │ ├── CTokenProxy.sol │ └── ETHProxy.sol ├── tests │ └── CompoundUtilTester.sol └── utils │ ├── AirswapUtils.sol │ ├── AuctionUtils.sol │ ├── CompoundUtils.sol │ ├── GammaUtils.sol │ ├── RollOverBase.sol │ └── ZeroXUtils.sol ├── hardhat.config.ts ├── lint-staged.config.js ├── package.json ├── scripts ├── create-airswap-order-and-trade.ts ├── deploy-example-kovan.ts └── deposit.ts ├── test ├── integration-tests │ └── ppn.ts ├── mainnet-fork │ ├── short-put-with-weth.ts │ ├── short-vault-auction.ts │ └── short-vault-swap.ts ├── unit-tests │ ├── action-examples │ │ ├── SellAction.ts │ │ └── ShortPutWithETH.ts │ ├── core │ │ └── OpynPerpVault.ts │ └── utils-contracts │ │ └── CompoundUtils.ts └── utils │ └── orders.ts └── tsconfig.json /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx lint-staged 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/.prettierrc -------------------------------------------------------------------------------- /.solcover.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/.solcover.js -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/README.md -------------------------------------------------------------------------------- /contracts/core/OpynPerpVault.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/core/OpynPerpVault.sol -------------------------------------------------------------------------------- /contracts/example-actions/ShortOToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/example-actions/ShortOToken.sol -------------------------------------------------------------------------------- /contracts/example-actions/ShortPutWithETH.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/example-actions/ShortPutWithETH.sol -------------------------------------------------------------------------------- /contracts/interfaces/IAction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IAction.sol -------------------------------------------------------------------------------- /contracts/interfaces/ICEth.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/ICEth.sol -------------------------------------------------------------------------------- /contracts/interfaces/ICToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/ICToken.sol -------------------------------------------------------------------------------- /contracts/interfaces/IChainlink.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IChainlink.sol -------------------------------------------------------------------------------- /contracts/interfaces/IComptroller.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IComptroller.sol -------------------------------------------------------------------------------- /contracts/interfaces/IController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IController.sol -------------------------------------------------------------------------------- /contracts/interfaces/IERC20Detailed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IERC20Detailed.sol -------------------------------------------------------------------------------- /contracts/interfaces/IEasyAuction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IEasyAuction.sol -------------------------------------------------------------------------------- /contracts/interfaces/IOToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IOToken.sol -------------------------------------------------------------------------------- /contracts/interfaces/IOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IOracle.sol -------------------------------------------------------------------------------- /contracts/interfaces/IOtokenFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IOtokenFactory.sol -------------------------------------------------------------------------------- /contracts/interfaces/IPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IPool.sol -------------------------------------------------------------------------------- /contracts/interfaces/IPriceFeed.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IPriceFeed.sol -------------------------------------------------------------------------------- /contracts/interfaces/ISwap.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/ISwap.sol -------------------------------------------------------------------------------- /contracts/interfaces/ITreasury.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/ITreasury.sol -------------------------------------------------------------------------------- /contracts/interfaces/IVault.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IVault.sol -------------------------------------------------------------------------------- /contracts/interfaces/IWETH.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IWETH.sol -------------------------------------------------------------------------------- /contracts/interfaces/IWhitelist.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IWhitelist.sol -------------------------------------------------------------------------------- /contracts/interfaces/IZeroXV4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/interfaces/IZeroXV4.sol -------------------------------------------------------------------------------- /contracts/libraries/SwapTypes.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/libraries/SwapTypes.sol -------------------------------------------------------------------------------- /contracts/mocks/MockAction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockAction.sol -------------------------------------------------------------------------------- /contracts/mocks/MockCompoundContracts.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockCompoundContracts.sol -------------------------------------------------------------------------------- /contracts/mocks/MockController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockController.sol -------------------------------------------------------------------------------- /contracts/mocks/MockERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockERC20.sol -------------------------------------------------------------------------------- /contracts/mocks/MockEasyAuction.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockEasyAuction.sol -------------------------------------------------------------------------------- /contracts/mocks/MockOToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockOToken.sol -------------------------------------------------------------------------------- /contracts/mocks/MockOpynOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockOpynOracle.sol -------------------------------------------------------------------------------- /contracts/mocks/MockOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockOracle.sol -------------------------------------------------------------------------------- /contracts/mocks/MockPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockPool.sol -------------------------------------------------------------------------------- /contracts/mocks/MockPricer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockPricer.sol -------------------------------------------------------------------------------- /contracts/mocks/MockSwap.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockSwap.sol -------------------------------------------------------------------------------- /contracts/mocks/MockWETH.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockWETH.sol -------------------------------------------------------------------------------- /contracts/mocks/MockWhitelist.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockWhitelist.sol -------------------------------------------------------------------------------- /contracts/mocks/MockZeroXV4.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/mocks/MockZeroXV4.sol -------------------------------------------------------------------------------- /contracts/proxy/CTokenProxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/proxy/CTokenProxy.sol -------------------------------------------------------------------------------- /contracts/proxy/ETHProxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/proxy/ETHProxy.sol -------------------------------------------------------------------------------- /contracts/tests/CompoundUtilTester.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/tests/CompoundUtilTester.sol -------------------------------------------------------------------------------- /contracts/utils/AirswapUtils.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/utils/AirswapUtils.sol -------------------------------------------------------------------------------- /contracts/utils/AuctionUtils.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/utils/AuctionUtils.sol -------------------------------------------------------------------------------- /contracts/utils/CompoundUtils.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/utils/CompoundUtils.sol -------------------------------------------------------------------------------- /contracts/utils/GammaUtils.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/utils/GammaUtils.sol -------------------------------------------------------------------------------- /contracts/utils/RollOverBase.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/utils/RollOverBase.sol -------------------------------------------------------------------------------- /contracts/utils/ZeroXUtils.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/contracts/utils/ZeroXUtils.sol -------------------------------------------------------------------------------- /hardhat.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/hardhat.config.ts -------------------------------------------------------------------------------- /lint-staged.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/lint-staged.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/package.json -------------------------------------------------------------------------------- /scripts/create-airswap-order-and-trade.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/scripts/create-airswap-order-and-trade.ts -------------------------------------------------------------------------------- /scripts/deploy-example-kovan.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/scripts/deploy-example-kovan.ts -------------------------------------------------------------------------------- /scripts/deposit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/scripts/deposit.ts -------------------------------------------------------------------------------- /test/integration-tests/ppn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/integration-tests/ppn.ts -------------------------------------------------------------------------------- /test/mainnet-fork/short-put-with-weth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/mainnet-fork/short-put-with-weth.ts -------------------------------------------------------------------------------- /test/mainnet-fork/short-vault-auction.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/mainnet-fork/short-vault-auction.ts -------------------------------------------------------------------------------- /test/mainnet-fork/short-vault-swap.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/mainnet-fork/short-vault-swap.ts -------------------------------------------------------------------------------- /test/unit-tests/action-examples/SellAction.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/unit-tests/action-examples/SellAction.ts -------------------------------------------------------------------------------- /test/unit-tests/action-examples/ShortPutWithETH.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/unit-tests/action-examples/ShortPutWithETH.ts -------------------------------------------------------------------------------- /test/unit-tests/core/OpynPerpVault.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/unit-tests/core/OpynPerpVault.ts -------------------------------------------------------------------------------- /test/unit-tests/utils-contracts/CompoundUtils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/unit-tests/utils-contracts/CompoundUtils.ts -------------------------------------------------------------------------------- /test/utils/orders.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/test/utils/orders.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opynfinance/perp-vault-templates/HEAD/tsconfig.json --------------------------------------------------------------------------------