https://github.com/chronicleprotocol/scribe
Extremely performant EVM oracle utilizing aggregated Schnorr signatures
https://github.com/chronicleprotocol/scribe
Last synced: 5 months ago
JSON representation
Extremely performant EVM oracle utilizing aggregated Schnorr signatures
- Host: GitHub
- URL: https://github.com/chronicleprotocol/scribe
- Owner: chronicleprotocol
- License: other
- Created: 2023-03-30T13:27:52.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-06T13:01:07.000Z (over 1 year ago)
- Last Synced: 2025-01-06T13:48:42.383Z (over 1 year ago)
- Language: Solidity
- Homepage:
- Size: 8.76 MB
- Stars: 54
- Watchers: 6
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Audit: audits/ABDK@v1.0.0.pdf
Awesome Lists containing this project
README

[](https://github.com/chronicleprotocol/scribe/actions/workflows/unit-tests.yml)
Scribe is an efficient Schnorr multi-signature based Oracle. For more info, see [docs/Scribe.md](./docs/Scribe.md).
## Bug Bounty
This repository is subject to _Chronicle Protocol_'s Bug Bounty program, per the terms defined [here](https://cantina.xyz/bounties/5240b7c7-6fec-4902-bec0-8cad12f14ec4).
## Installation
Install module via Foundry:
```bash
$ forge install chronicleprotocol/scribe
```
## Contributing
The project uses the Foundry toolchain. You can find installation instructions [here](https://getfoundry.sh/).
Setup:
```bash
$ git clone https://github.com/chronicleprotocol/scribe
$ cd scribe/
$ forge install
$ yarn install # Installs dependencies for vector-based tests
```
Run tests:
```bash
$ 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`](https://github.com/chronicleprotocol/musig/tree/master/cmd/schnorr) binary needs to be present inside the `bin/` directory.
Lint:
```bash
$ forge fmt [--check]
```
Update gas snapshots:
```bash
$ forge snapshot --nmt "Fuzz" [--check]
```
## Dependencies
- [chronicleprotocol/chronicle-std@v2](https://github.com/chronicleprotocol/chronicle-std/tree/v2)
## Licensing
The primary license for Scribe is the Business Source License 1.1 (`BUSL-1.1`), see [`LICENSE`](./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`](./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)