├── .env.example ├── .gitattributes ├── .github └── workflows │ ├── lint.yml │ └── tests.yml ├── .gitignore ├── .husky ├── .gitignore ├── commit-msg └── pre-commit ├── .mocharc.js ├── .prettierignore ├── .prettierrc ├── .solcover.js ├── .solhint.json ├── .solhintignore ├── BUG_BOUNTY.md ├── LICENSE ├── README.md ├── commitlint.config.js ├── deploy ├── 001_stateful_chainlink_oracle.ts ├── 002_uniswap_v3_adapter.ts ├── 003_identity_oracle.ts ├── 004_oracle_aggregator.ts ├── 005_transformer_oracle.ts ├── 006_api3_chainlink_adapter_factory.ts └── 007_dia_chainlink_adapter_factory.ts ├── hardhat.config.ts ├── package.json ├── scripts └── verify-contracts.ts ├── slither.config.json ├── solidity ├── contracts │ ├── IdentityOracle.sol │ ├── OracleAggregator.sol │ ├── StatefulChainlinkOracle.sol │ ├── TransformerOracle.sol │ ├── adapters │ │ ├── UniswapV3Adapter.sol │ │ ├── api3-chainlink-adapter │ │ │ ├── API3ChainlinkAdapter.sol │ │ │ └── API3ChainlinkAdapterFactory.sol │ │ └── dia-chainlink-adapter │ │ │ ├── DIAChainlinkAdapter.sol │ │ │ └── DIAChainlinkAdapterFactory.sol │ ├── base │ │ ├── BaseOracle.sol │ │ └── SimpleOracle.sol │ ├── libraries │ │ └── TokenSorting.sol │ └── test │ │ ├── OracleAggregator.sol │ │ ├── StatefulChainlinkOracle.sol │ │ ├── TransformerOracle.sol │ │ ├── UniswapV3Pool.sol │ │ ├── adapters │ │ └── UniswapV3Adapter.sol │ │ └── base │ │ └── SimpleOracle.sol └── interfaces │ ├── IOracleAggregator.sol │ ├── IStatefulChainlinkOracle.sol │ ├── ITokenPriceOracle.sol │ ├── ITransformerOracle.sol │ └── adapters │ └── IUniswapV3Adapter.sol ├── tasks └── npm-publish-clean-typechain.ts ├── test ├── e2e │ └── oracle-aggregator.spec.ts ├── integration │ ├── api3_chainlink_adapter.spec.ts │ ├── comprehensive-oracle-test.spec.ts │ ├── dia_chainlink_adapter.spec.ts │ ├── stateful-chainlink-oracle.spec.ts │ ├── transformer-oracle.spec.ts │ └── uniswap-v3-add-support-gas.spec.ts ├── unit │ ├── adapters │ │ ├── api3-chainlink-adapter │ │ │ ├── api3-chainlink-adapter-factory.spec.ts │ │ │ └── api3-chainlink-adapter.spec.ts │ │ ├── dia-chainlink-adapter │ │ │ ├── dia-chainlink-adapter-factory.spec.ts │ │ │ └── dia-chainlink-adapter.spec.ts │ │ └── uniswap-v3-adapter.spec.ts │ ├── base │ │ └── simple-oracle.spec.ts │ ├── identity-oracle.spec.ts │ ├── oracle-aggregator.spec.ts │ ├── stateful-chainlink-oracle.spec.ts │ └── transformer-oracle.spec.ts └── utils │ ├── bdd.ts │ ├── behaviours.ts │ ├── bn.ts │ ├── contracts.ts │ ├── defillama.ts │ ├── erc165.ts │ ├── event-utils.ts │ ├── evm.ts │ ├── index.ts │ ├── uniswap.ts │ └── wallet.ts ├── tsconfig.json ├── tsconfig.publish.json ├── utils ├── deploy.ts └── env.ts ├── workspace.code-workspace └── yarn.lock /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.env.example -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.husky/commit-msg -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx lint-staged -------------------------------------------------------------------------------- /.mocharc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.mocharc.js -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.prettierrc -------------------------------------------------------------------------------- /.solcover.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.solcover.js -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/.solhint.json -------------------------------------------------------------------------------- /.solhintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | contracts/mock 3 | -------------------------------------------------------------------------------- /BUG_BOUNTY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/BUG_BOUNTY.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/README.md -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { extends: ['@commitlint/config-conventional'] }; 2 | -------------------------------------------------------------------------------- /deploy/001_stateful_chainlink_oracle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/deploy/001_stateful_chainlink_oracle.ts -------------------------------------------------------------------------------- /deploy/002_uniswap_v3_adapter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/deploy/002_uniswap_v3_adapter.ts -------------------------------------------------------------------------------- /deploy/003_identity_oracle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/deploy/003_identity_oracle.ts -------------------------------------------------------------------------------- /deploy/004_oracle_aggregator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/deploy/004_oracle_aggregator.ts -------------------------------------------------------------------------------- /deploy/005_transformer_oracle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/deploy/005_transformer_oracle.ts -------------------------------------------------------------------------------- /deploy/006_api3_chainlink_adapter_factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/deploy/006_api3_chainlink_adapter_factory.ts -------------------------------------------------------------------------------- /deploy/007_dia_chainlink_adapter_factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/deploy/007_dia_chainlink_adapter_factory.ts -------------------------------------------------------------------------------- /hardhat.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/hardhat.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/package.json -------------------------------------------------------------------------------- /scripts/verify-contracts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/scripts/verify-contracts.ts -------------------------------------------------------------------------------- /slither.config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/slither.config.json -------------------------------------------------------------------------------- /solidity/contracts/IdentityOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/IdentityOracle.sol -------------------------------------------------------------------------------- /solidity/contracts/OracleAggregator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/OracleAggregator.sol -------------------------------------------------------------------------------- /solidity/contracts/StatefulChainlinkOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/StatefulChainlinkOracle.sol -------------------------------------------------------------------------------- /solidity/contracts/TransformerOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/TransformerOracle.sol -------------------------------------------------------------------------------- /solidity/contracts/adapters/UniswapV3Adapter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/adapters/UniswapV3Adapter.sol -------------------------------------------------------------------------------- /solidity/contracts/adapters/api3-chainlink-adapter/API3ChainlinkAdapter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/adapters/api3-chainlink-adapter/API3ChainlinkAdapter.sol -------------------------------------------------------------------------------- /solidity/contracts/adapters/api3-chainlink-adapter/API3ChainlinkAdapterFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/adapters/api3-chainlink-adapter/API3ChainlinkAdapterFactory.sol -------------------------------------------------------------------------------- /solidity/contracts/adapters/dia-chainlink-adapter/DIAChainlinkAdapter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/adapters/dia-chainlink-adapter/DIAChainlinkAdapter.sol -------------------------------------------------------------------------------- /solidity/contracts/adapters/dia-chainlink-adapter/DIAChainlinkAdapterFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/adapters/dia-chainlink-adapter/DIAChainlinkAdapterFactory.sol -------------------------------------------------------------------------------- /solidity/contracts/base/BaseOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/base/BaseOracle.sol -------------------------------------------------------------------------------- /solidity/contracts/base/SimpleOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/base/SimpleOracle.sol -------------------------------------------------------------------------------- /solidity/contracts/libraries/TokenSorting.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/libraries/TokenSorting.sol -------------------------------------------------------------------------------- /solidity/contracts/test/OracleAggregator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/test/OracleAggregator.sol -------------------------------------------------------------------------------- /solidity/contracts/test/StatefulChainlinkOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/test/StatefulChainlinkOracle.sol -------------------------------------------------------------------------------- /solidity/contracts/test/TransformerOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/test/TransformerOracle.sol -------------------------------------------------------------------------------- /solidity/contracts/test/UniswapV3Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/test/UniswapV3Pool.sol -------------------------------------------------------------------------------- /solidity/contracts/test/adapters/UniswapV3Adapter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/test/adapters/UniswapV3Adapter.sol -------------------------------------------------------------------------------- /solidity/contracts/test/base/SimpleOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/contracts/test/base/SimpleOracle.sol -------------------------------------------------------------------------------- /solidity/interfaces/IOracleAggregator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/interfaces/IOracleAggregator.sol -------------------------------------------------------------------------------- /solidity/interfaces/IStatefulChainlinkOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/interfaces/IStatefulChainlinkOracle.sol -------------------------------------------------------------------------------- /solidity/interfaces/ITokenPriceOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/interfaces/ITokenPriceOracle.sol -------------------------------------------------------------------------------- /solidity/interfaces/ITransformerOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/interfaces/ITransformerOracle.sol -------------------------------------------------------------------------------- /solidity/interfaces/adapters/IUniswapV3Adapter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/solidity/interfaces/adapters/IUniswapV3Adapter.sol -------------------------------------------------------------------------------- /tasks/npm-publish-clean-typechain.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/tasks/npm-publish-clean-typechain.ts -------------------------------------------------------------------------------- /test/e2e/oracle-aggregator.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/e2e/oracle-aggregator.spec.ts -------------------------------------------------------------------------------- /test/integration/api3_chainlink_adapter.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/integration/api3_chainlink_adapter.spec.ts -------------------------------------------------------------------------------- /test/integration/comprehensive-oracle-test.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/integration/comprehensive-oracle-test.spec.ts -------------------------------------------------------------------------------- /test/integration/dia_chainlink_adapter.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/integration/dia_chainlink_adapter.spec.ts -------------------------------------------------------------------------------- /test/integration/stateful-chainlink-oracle.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/integration/stateful-chainlink-oracle.spec.ts -------------------------------------------------------------------------------- /test/integration/transformer-oracle.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/integration/transformer-oracle.spec.ts -------------------------------------------------------------------------------- /test/integration/uniswap-v3-add-support-gas.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/integration/uniswap-v3-add-support-gas.spec.ts -------------------------------------------------------------------------------- /test/unit/adapters/api3-chainlink-adapter/api3-chainlink-adapter-factory.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/adapters/api3-chainlink-adapter/api3-chainlink-adapter-factory.spec.ts -------------------------------------------------------------------------------- /test/unit/adapters/api3-chainlink-adapter/api3-chainlink-adapter.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/adapters/api3-chainlink-adapter/api3-chainlink-adapter.spec.ts -------------------------------------------------------------------------------- /test/unit/adapters/dia-chainlink-adapter/dia-chainlink-adapter-factory.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/adapters/dia-chainlink-adapter/dia-chainlink-adapter-factory.spec.ts -------------------------------------------------------------------------------- /test/unit/adapters/dia-chainlink-adapter/dia-chainlink-adapter.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/adapters/dia-chainlink-adapter/dia-chainlink-adapter.spec.ts -------------------------------------------------------------------------------- /test/unit/adapters/uniswap-v3-adapter.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/adapters/uniswap-v3-adapter.spec.ts -------------------------------------------------------------------------------- /test/unit/base/simple-oracle.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/base/simple-oracle.spec.ts -------------------------------------------------------------------------------- /test/unit/identity-oracle.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/identity-oracle.spec.ts -------------------------------------------------------------------------------- /test/unit/oracle-aggregator.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/oracle-aggregator.spec.ts -------------------------------------------------------------------------------- /test/unit/stateful-chainlink-oracle.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/stateful-chainlink-oracle.spec.ts -------------------------------------------------------------------------------- /test/unit/transformer-oracle.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/unit/transformer-oracle.spec.ts -------------------------------------------------------------------------------- /test/utils/bdd.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/bdd.ts -------------------------------------------------------------------------------- /test/utils/behaviours.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/behaviours.ts -------------------------------------------------------------------------------- /test/utils/bn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/bn.ts -------------------------------------------------------------------------------- /test/utils/contracts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/contracts.ts -------------------------------------------------------------------------------- /test/utils/defillama.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/defillama.ts -------------------------------------------------------------------------------- /test/utils/erc165.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/erc165.ts -------------------------------------------------------------------------------- /test/utils/event-utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/event-utils.ts -------------------------------------------------------------------------------- /test/utils/evm.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/evm.ts -------------------------------------------------------------------------------- /test/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/index.ts -------------------------------------------------------------------------------- /test/utils/uniswap.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/uniswap.ts -------------------------------------------------------------------------------- /test/utils/wallet.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/test/utils/wallet.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.publish.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/tsconfig.publish.json -------------------------------------------------------------------------------- /utils/deploy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/utils/deploy.ts -------------------------------------------------------------------------------- /utils/env.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/utils/env.ts -------------------------------------------------------------------------------- /workspace.code-workspace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/workspace.code-workspace -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Balmy-protocol/oracles/HEAD/yarn.lock --------------------------------------------------------------------------------