├── .gitignore ├── README.md ├── contracts ├── MedianOracle.sol └── uniswap │ ├── Oracle.sol │ └── StubUniswapV3Pool.sol ├── generate-toc.pl ├── hardhat.config.js ├── package.json ├── pics ├── binary-search.svg ├── gas-growth.png ├── gas-usage-usdc-dai.png ├── gas-usage-usdc-weth-10min-window.png ├── gas-usage-usdc-weth-normal-period.png ├── gas-usage-usdc-weth.png ├── gas-usage-wbtc-weth.png ├── linear-search.svg ├── overview.png ├── pivot-selection.png ├── quantisation.png ├── ring-buffer.svg ├── simulation.png ├── uniswap-ring-buffer-sizes.png └── weighted-median.svg ├── sim ├── README.md ├── crawl-uniswap │ ├── crawl-uniswap.js │ ├── import-bigquery.pl │ └── schema.sql └── plot.gnu ├── tasks └── sim.js └── test └── basic.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/README.md -------------------------------------------------------------------------------- /contracts/MedianOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/contracts/MedianOracle.sol -------------------------------------------------------------------------------- /contracts/uniswap/Oracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/contracts/uniswap/Oracle.sol -------------------------------------------------------------------------------- /contracts/uniswap/StubUniswapV3Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/contracts/uniswap/StubUniswapV3Pool.sol -------------------------------------------------------------------------------- /generate-toc.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/generate-toc.pl -------------------------------------------------------------------------------- /hardhat.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/hardhat.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/package.json -------------------------------------------------------------------------------- /pics/binary-search.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/binary-search.svg -------------------------------------------------------------------------------- /pics/gas-growth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/gas-growth.png -------------------------------------------------------------------------------- /pics/gas-usage-usdc-dai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/gas-usage-usdc-dai.png -------------------------------------------------------------------------------- /pics/gas-usage-usdc-weth-10min-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/gas-usage-usdc-weth-10min-window.png -------------------------------------------------------------------------------- /pics/gas-usage-usdc-weth-normal-period.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/gas-usage-usdc-weth-normal-period.png -------------------------------------------------------------------------------- /pics/gas-usage-usdc-weth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/gas-usage-usdc-weth.png -------------------------------------------------------------------------------- /pics/gas-usage-wbtc-weth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/gas-usage-wbtc-weth.png -------------------------------------------------------------------------------- /pics/linear-search.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/linear-search.svg -------------------------------------------------------------------------------- /pics/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/overview.png -------------------------------------------------------------------------------- /pics/pivot-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/pivot-selection.png -------------------------------------------------------------------------------- /pics/quantisation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/quantisation.png -------------------------------------------------------------------------------- /pics/ring-buffer.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/ring-buffer.svg -------------------------------------------------------------------------------- /pics/simulation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/simulation.png -------------------------------------------------------------------------------- /pics/uniswap-ring-buffer-sizes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/uniswap-ring-buffer-sizes.png -------------------------------------------------------------------------------- /pics/weighted-median.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/pics/weighted-median.svg -------------------------------------------------------------------------------- /sim/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/sim/README.md -------------------------------------------------------------------------------- /sim/crawl-uniswap/crawl-uniswap.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/sim/crawl-uniswap/crawl-uniswap.js -------------------------------------------------------------------------------- /sim/crawl-uniswap/import-bigquery.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/sim/crawl-uniswap/import-bigquery.pl -------------------------------------------------------------------------------- /sim/crawl-uniswap/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/sim/crawl-uniswap/schema.sql -------------------------------------------------------------------------------- /sim/plot.gnu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/sim/plot.gnu -------------------------------------------------------------------------------- /tasks/sim.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/tasks/sim.js -------------------------------------------------------------------------------- /test/basic.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/euler-xyz/median-oracle/HEAD/test/basic.js --------------------------------------------------------------------------------