├── .eslintrc.json ├── .gitattributes ├── .gitignore ├── .prettierrc ├── .solcover.js ├── .solhint.json ├── LICENSE ├── README.md ├── contracts ├── Address.sol ├── FUM.sol ├── IFUM.sol ├── IUSM.sol ├── MinOut.sol ├── OptOutable.sol ├── USM.sol ├── USMView.sol ├── USMWETHProxy.sol ├── WadMath.sol ├── external │ ├── IWETH9.sol │ └── WETH9.sol ├── fuzzing │ ├── WETH9Fuzzing.sol │ └── config.yaml ├── mocks │ ├── GasMeasuredOracleWrapper.sol │ ├── MockChainlinkAggregatorV3.sol │ ├── MockChainlinkOracle.sol │ ├── MockMedianOracle.sol │ ├── MockUniswapV3Pool.sol │ ├── MockWETH9.sol │ ├── MockWadMath.sol │ ├── SettableOracle.sol │ └── TestOracle.sol └── oracles │ ├── ChainlinkOracle.sol │ ├── MedianOracle.sol │ ├── Oracle.sol │ ├── UniswapV3TWAPOracle.sol │ ├── UniswapV3TWAPOracle2.sol │ └── uniswap │ ├── v3-core │ ├── FullMath.sol │ ├── Oracle.sol │ └── TickMath.sol │ └── v3-periphery │ ├── OracleLibrary.sol │ └── PoolAddress.sol ├── deploy ├── 1_deploy_oracle.js ├── 2_deploy_usmfum.js ├── 3_deploy_usmview.js ├── 4_deploy_usmwethproxy.js ├── fum-args-1.js ├── fum-args-42.js ├── oracle-args-1.js ├── usm-args-1.js ├── usm-args-42.js ├── usmview-args-1.js └── usmwethproxy-args-1.js ├── faq.md ├── fee_math_requirements.md ├── hardhat.config.js ├── package.json ├── scripts ├── ganache.sh └── mainnet-ganache.sh ├── test ├── .gitkeep ├── 01_TestOracle.test.js ├── 02_USM_internal.test.js ├── 03_USM.test.js ├── 04_Proxy_Eth.test.js └── fuzzing │ └── 11_USM_Fuzzing.test.js └── vitalik_hard_fork.md /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/.prettierrc -------------------------------------------------------------------------------- /.solcover.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/.solcover.js -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/.solhint.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/README.md -------------------------------------------------------------------------------- /contracts/Address.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/Address.sol -------------------------------------------------------------------------------- /contracts/FUM.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/FUM.sol -------------------------------------------------------------------------------- /contracts/IFUM.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/IFUM.sol -------------------------------------------------------------------------------- /contracts/IUSM.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/IUSM.sol -------------------------------------------------------------------------------- /contracts/MinOut.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/MinOut.sol -------------------------------------------------------------------------------- /contracts/OptOutable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/OptOutable.sol -------------------------------------------------------------------------------- /contracts/USM.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/USM.sol -------------------------------------------------------------------------------- /contracts/USMView.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/USMView.sol -------------------------------------------------------------------------------- /contracts/USMWETHProxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/USMWETHProxy.sol -------------------------------------------------------------------------------- /contracts/WadMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/WadMath.sol -------------------------------------------------------------------------------- /contracts/external/IWETH9.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/external/IWETH9.sol -------------------------------------------------------------------------------- /contracts/external/WETH9.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/external/WETH9.sol -------------------------------------------------------------------------------- /contracts/fuzzing/WETH9Fuzzing.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/fuzzing/WETH9Fuzzing.sol -------------------------------------------------------------------------------- /contracts/fuzzing/config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/fuzzing/config.yaml -------------------------------------------------------------------------------- /contracts/mocks/GasMeasuredOracleWrapper.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/GasMeasuredOracleWrapper.sol -------------------------------------------------------------------------------- /contracts/mocks/MockChainlinkAggregatorV3.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/MockChainlinkAggregatorV3.sol -------------------------------------------------------------------------------- /contracts/mocks/MockChainlinkOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/MockChainlinkOracle.sol -------------------------------------------------------------------------------- /contracts/mocks/MockMedianOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/MockMedianOracle.sol -------------------------------------------------------------------------------- /contracts/mocks/MockUniswapV3Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/MockUniswapV3Pool.sol -------------------------------------------------------------------------------- /contracts/mocks/MockWETH9.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/MockWETH9.sol -------------------------------------------------------------------------------- /contracts/mocks/MockWadMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/MockWadMath.sol -------------------------------------------------------------------------------- /contracts/mocks/SettableOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/SettableOracle.sol -------------------------------------------------------------------------------- /contracts/mocks/TestOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/mocks/TestOracle.sol -------------------------------------------------------------------------------- /contracts/oracles/ChainlinkOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/ChainlinkOracle.sol -------------------------------------------------------------------------------- /contracts/oracles/MedianOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/MedianOracle.sol -------------------------------------------------------------------------------- /contracts/oracles/Oracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/Oracle.sol -------------------------------------------------------------------------------- /contracts/oracles/UniswapV3TWAPOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/UniswapV3TWAPOracle.sol -------------------------------------------------------------------------------- /contracts/oracles/UniswapV3TWAPOracle2.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/UniswapV3TWAPOracle2.sol -------------------------------------------------------------------------------- /contracts/oracles/uniswap/v3-core/FullMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/uniswap/v3-core/FullMath.sol -------------------------------------------------------------------------------- /contracts/oracles/uniswap/v3-core/Oracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/uniswap/v3-core/Oracle.sol -------------------------------------------------------------------------------- /contracts/oracles/uniswap/v3-core/TickMath.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/uniswap/v3-core/TickMath.sol -------------------------------------------------------------------------------- /contracts/oracles/uniswap/v3-periphery/OracleLibrary.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/uniswap/v3-periphery/OracleLibrary.sol -------------------------------------------------------------------------------- /contracts/oracles/uniswap/v3-periphery/PoolAddress.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/contracts/oracles/uniswap/v3-periphery/PoolAddress.sol -------------------------------------------------------------------------------- /deploy/1_deploy_oracle.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/1_deploy_oracle.js -------------------------------------------------------------------------------- /deploy/2_deploy_usmfum.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/2_deploy_usmfum.js -------------------------------------------------------------------------------- /deploy/3_deploy_usmview.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/3_deploy_usmview.js -------------------------------------------------------------------------------- /deploy/4_deploy_usmwethproxy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/4_deploy_usmwethproxy.js -------------------------------------------------------------------------------- /deploy/fum-args-1.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/fum-args-1.js -------------------------------------------------------------------------------- /deploy/fum-args-42.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/fum-args-42.js -------------------------------------------------------------------------------- /deploy/oracle-args-1.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/oracle-args-1.js -------------------------------------------------------------------------------- /deploy/usm-args-1.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/usm-args-1.js -------------------------------------------------------------------------------- /deploy/usm-args-42.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/usm-args-42.js -------------------------------------------------------------------------------- /deploy/usmview-args-1.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/usmview-args-1.js -------------------------------------------------------------------------------- /deploy/usmwethproxy-args-1.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/deploy/usmwethproxy-args-1.js -------------------------------------------------------------------------------- /faq.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/faq.md -------------------------------------------------------------------------------- /fee_math_requirements.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/fee_math_requirements.md -------------------------------------------------------------------------------- /hardhat.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/hardhat.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/package.json -------------------------------------------------------------------------------- /scripts/ganache.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/scripts/ganache.sh -------------------------------------------------------------------------------- /scripts/mainnet-ganache.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/scripts/mainnet-ganache.sh -------------------------------------------------------------------------------- /test/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/01_TestOracle.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/test/01_TestOracle.test.js -------------------------------------------------------------------------------- /test/02_USM_internal.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/test/02_USM_internal.test.js -------------------------------------------------------------------------------- /test/03_USM.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/test/03_USM.test.js -------------------------------------------------------------------------------- /test/04_Proxy_Eth.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/test/04_Proxy_Eth.test.js -------------------------------------------------------------------------------- /test/fuzzing/11_USM_Fuzzing.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/usmfum/USM/HEAD/test/fuzzing/11_USM_Fuzzing.test.js -------------------------------------------------------------------------------- /vitalik_hard_fork.md: -------------------------------------------------------------------------------- 1 | Uh sorry folks that was a joke 2 | --------------------------------------------------------------------------------