Skip to content

Extremely performant EVM oracle utilizing aggregated Schnorr signatures

License

Notifications You must be signed in to change notification settings

chronicleprotocol/scribe

Repository files navigation

Unit Tests

Scribe is an efficient Schnorr multi-signature based Oracle. For more info, see docs/Scribe.md.

Bug Bounty

This repository is subject to Chronicle Protocol's Bug Bounty program, per the terms defined here.

Installation

Install module via Foundry:

$ forge install chronicleprotocol/scribe

Contributing

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]

Dependencies

Licensing

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 under MIT (as indicated in their SPDX headers), see src/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 under MIT (as indicated in their SPDX headers)

About

Extremely performant EVM oracle utilizing aggregated Schnorr signatures

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages