├── .env.example ├── .gitattributes ├── .github ├── CODEOWNERS ├── pull_request_template.md └── workflows │ ├── canary.yml │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .gitmodules ├── .husky ├── .gitignore ├── commit-msg └── pre-commit ├── .solhint.json ├── .solhint.tests.json ├── .solhintignore ├── LICENSE ├── README.md ├── commitlint.config.js ├── foundry.toml ├── natspec-smells.config.js ├── package.json ├── remappings.txt ├── solidity ├── contracts │ ├── Module.sol │ ├── Oracle.sol │ ├── Validator.sol │ ├── access │ │ ├── CommonAccessController.sol │ │ ├── ModuleAccessController.sol │ │ └── OracleAccessController.sol │ └── utils │ │ └── OracleTypehash.sol ├── interfaces │ ├── IModule.sol │ ├── IOracle.sol │ ├── IValidator.sol │ ├── access │ │ ├── IAccessController.sol │ │ ├── IModuleAccessController.sol │ │ └── IOracleAccessController.sol │ └── modules │ │ ├── access │ │ └── IAccessModule.sol │ │ ├── dispute │ │ └── IDisputeModule.sol │ │ ├── finality │ │ └── IFinalityModule.sol │ │ ├── request │ │ └── IRequestModule.sol │ │ ├── resolution │ │ └── IResolutionModule.sol │ │ └── response │ │ └── IResponseModule.sol ├── libraries │ └── ValidatorLib.sol ├── scripts │ └── Deploy.sol └── test │ ├── integration │ ├── EscalateDispute.t.sol │ ├── Finalization.t.sol │ ├── IntegrationBase.sol │ ├── ResponseDispute.t.sol │ └── ResponseProposal.t.sol │ ├── mocks │ ├── contracts │ │ ├── MockAccessModule.sol │ │ ├── MockAccounting.sol │ │ ├── MockArbitrator.sol │ │ ├── MockAtomicArbitrator.sol │ │ ├── MockCallback.sol │ │ ├── MockDisputeModule.sol │ │ ├── MockFinalityModule.sol │ │ ├── MockRequestModule.sol │ │ ├── MockResolutionModule.sol │ │ └── MockResponseModule.sol │ └── interfaces │ │ ├── IMockAccessModule.sol │ │ ├── IMockAccounting.sol │ │ ├── IMockDisputeModule.sol │ │ ├── IMockFinalityModule.sol │ │ ├── IMockRequestModule.sol │ │ ├── IMockResolutionModule.sol │ │ └── IMockResponseModule.sol │ ├── unit │ ├── CommonAccessController.t.sol │ ├── Module.t.sol │ ├── ModuleAccessController.t.sol │ ├── Oracle.t.sol │ ├── OracleAccessController.t.sol │ ├── Validator.t.sol │ └── ValidatorLib.t.sol │ └── utils │ ├── Helpers.sol │ ├── TestConstants.sol │ └── external │ ├── IERC20.sol │ └── IWETH9.sol └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | OPTIMISM_RPC= 2 | DEPLOYER_PK= 3 | 4 | ETHERSCAN_API_KEY= 5 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @defi-wonderland/prophet-codeowner -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | # 🤖 Linear 2 | 3 | Closes OPT-XXX 4 | -------------------------------------------------------------------------------- /.github/workflows/canary.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/.github/workflows/canary.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | npx --no-install commitlint --edit $1 -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npx lint-staged 2 | -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/.solhint.json -------------------------------------------------------------------------------- /.solhint.tests.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/.solhint.tests.json -------------------------------------------------------------------------------- /.solhintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/.solhintignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/README.md -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { extends: ['@commitlint/config-conventional'] }; 2 | -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/foundry.toml -------------------------------------------------------------------------------- /natspec-smells.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/natspec-smells.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/package.json -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/remappings.txt -------------------------------------------------------------------------------- /solidity/contracts/Module.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/contracts/Module.sol -------------------------------------------------------------------------------- /solidity/contracts/Oracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/contracts/Oracle.sol -------------------------------------------------------------------------------- /solidity/contracts/Validator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/contracts/Validator.sol -------------------------------------------------------------------------------- /solidity/contracts/access/CommonAccessController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/contracts/access/CommonAccessController.sol -------------------------------------------------------------------------------- /solidity/contracts/access/ModuleAccessController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/contracts/access/ModuleAccessController.sol -------------------------------------------------------------------------------- /solidity/contracts/access/OracleAccessController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/contracts/access/OracleAccessController.sol -------------------------------------------------------------------------------- /solidity/contracts/utils/OracleTypehash.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/contracts/utils/OracleTypehash.sol -------------------------------------------------------------------------------- /solidity/interfaces/IModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/IModule.sol -------------------------------------------------------------------------------- /solidity/interfaces/IOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/IOracle.sol -------------------------------------------------------------------------------- /solidity/interfaces/IValidator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/IValidator.sol -------------------------------------------------------------------------------- /solidity/interfaces/access/IAccessController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/access/IAccessController.sol -------------------------------------------------------------------------------- /solidity/interfaces/access/IModuleAccessController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/access/IModuleAccessController.sol -------------------------------------------------------------------------------- /solidity/interfaces/access/IOracleAccessController.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/access/IOracleAccessController.sol -------------------------------------------------------------------------------- /solidity/interfaces/modules/access/IAccessModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/modules/access/IAccessModule.sol -------------------------------------------------------------------------------- /solidity/interfaces/modules/dispute/IDisputeModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/modules/dispute/IDisputeModule.sol -------------------------------------------------------------------------------- /solidity/interfaces/modules/finality/IFinalityModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/modules/finality/IFinalityModule.sol -------------------------------------------------------------------------------- /solidity/interfaces/modules/request/IRequestModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/modules/request/IRequestModule.sol -------------------------------------------------------------------------------- /solidity/interfaces/modules/resolution/IResolutionModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/modules/resolution/IResolutionModule.sol -------------------------------------------------------------------------------- /solidity/interfaces/modules/response/IResponseModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/interfaces/modules/response/IResponseModule.sol -------------------------------------------------------------------------------- /solidity/libraries/ValidatorLib.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/libraries/ValidatorLib.sol -------------------------------------------------------------------------------- /solidity/scripts/Deploy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/scripts/Deploy.sol -------------------------------------------------------------------------------- /solidity/test/integration/EscalateDispute.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/integration/EscalateDispute.t.sol -------------------------------------------------------------------------------- /solidity/test/integration/Finalization.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/integration/Finalization.t.sol -------------------------------------------------------------------------------- /solidity/test/integration/IntegrationBase.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/integration/IntegrationBase.sol -------------------------------------------------------------------------------- /solidity/test/integration/ResponseDispute.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/integration/ResponseDispute.t.sol -------------------------------------------------------------------------------- /solidity/test/integration/ResponseProposal.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/integration/ResponseProposal.t.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockAccessModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockAccessModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockAccounting.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockAccounting.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockArbitrator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockArbitrator.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockAtomicArbitrator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockAtomicArbitrator.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockCallback.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockCallback.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockDisputeModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockDisputeModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockFinalityModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockFinalityModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockRequestModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockRequestModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockResolutionModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockResolutionModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/contracts/MockResponseModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/contracts/MockResponseModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/interfaces/IMockAccessModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/interfaces/IMockAccessModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/interfaces/IMockAccounting.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.19; 3 | 4 | interface IMockAccounting {} 5 | -------------------------------------------------------------------------------- /solidity/test/mocks/interfaces/IMockDisputeModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/interfaces/IMockDisputeModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/interfaces/IMockFinalityModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/interfaces/IMockFinalityModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/interfaces/IMockRequestModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/interfaces/IMockRequestModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/interfaces/IMockResolutionModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/interfaces/IMockResolutionModule.sol -------------------------------------------------------------------------------- /solidity/test/mocks/interfaces/IMockResponseModule.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/mocks/interfaces/IMockResponseModule.sol -------------------------------------------------------------------------------- /solidity/test/unit/CommonAccessController.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/unit/CommonAccessController.t.sol -------------------------------------------------------------------------------- /solidity/test/unit/Module.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/unit/Module.t.sol -------------------------------------------------------------------------------- /solidity/test/unit/ModuleAccessController.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/unit/ModuleAccessController.t.sol -------------------------------------------------------------------------------- /solidity/test/unit/Oracle.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/unit/Oracle.t.sol -------------------------------------------------------------------------------- /solidity/test/unit/OracleAccessController.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/unit/OracleAccessController.t.sol -------------------------------------------------------------------------------- /solidity/test/unit/Validator.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/unit/Validator.t.sol -------------------------------------------------------------------------------- /solidity/test/unit/ValidatorLib.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/unit/ValidatorLib.t.sol -------------------------------------------------------------------------------- /solidity/test/utils/Helpers.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/utils/Helpers.sol -------------------------------------------------------------------------------- /solidity/test/utils/TestConstants.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/utils/TestConstants.sol -------------------------------------------------------------------------------- /solidity/test/utils/external/IERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/utils/external/IERC20.sol -------------------------------------------------------------------------------- /solidity/test/utils/external/IWETH9.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/solidity/test/utils/external/IWETH9.sol -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/defi-wonderland/prophet-core/HEAD/yarn.lock --------------------------------------------------------------------------------