Scribe is an efficient Schnorr multi-signature based Oracle. For more info, see docs/Scribe.md.
This repository is subject to Chronicle Protocol's Bug Bounty program, per the terms defined here.
Install module via Foundry:
$ forge install chronicleprotocol/scribe
The project uses the Foundry toolchain. You can find installation instructions here.
Setup:
$ git clone https://github.com/chronicleprotocol/scribe
$ cd scribe/
$ forge install
$ yarn install # Installs dependencies for vector-based tests
Run tests:
$ forge test # Run all tests, including differential fuzzing tests
$ forge test -vvvv # Run all tests with full stack traces
$ FOUNDRY_PROFILE=intense forge test # Run all tests in intense mode
$ forge test --nmt "FuzzDifferentialOracleSuite" # Run only non-differential fuzz tests
Note that in order to run the whole test suite, i.e. including differential fuzz tests, the oracle-suite's musig schnorr
binary needs to be present inside the bin/
directory.
Lint:
$ forge fmt [--check]
Update gas snapshots:
$ forge snapshot --nmt "Fuzz" [--check]
The primary license for Scribe is the Business Source License 1.1 (BUSL-1.1
), see LICENSE
. However, some files are dual licensed under MIT
:
- All files in
src/libs/
may also be licensed underMIT
(as indicated in their SPDX headers), seesrc/libs/LICENSE
- Several Solidity interface files may also be licensed under
MIT
(as indicated in their SPDX headers) - Several files in
script/
may also be licensed underMIT
(as indicated in their SPDX headers)