Daniel Chew f899a34206 test(target_chains/fuel): add invalid merkle proof update data test (#1639) 1 år sedan
..
pyth-contract 6d7160585e refactor(target_chains/fuel): refactor to expose libraries (#1634) 1 år sedan
pyth-interface 6d7160585e refactor(target_chains/fuel): refactor to expose libraries (#1634) 1 år sedan
scripts cf7987f4c5 feat(target_chains/fuel): add governance contract (#1518) 1 år sedan
src f899a34206 test(target_chains/fuel): add invalid merkle proof update data test (#1639) 1 år sedan
tests f899a34206 test(target_chains/fuel): add invalid merkle proof update data test (#1639) 1 år sedan
.gitignore c2da454637 add fuel contract by Fuel Labs (#1513) 1 år sedan
Cargo.lock 3513eed6c9 fix(target_chains/fuel): upgrade to fuel testnet from beta-5 (#1625) 1 år sedan
Cargo.toml 3513eed6c9 fix(target_chains/fuel): upgrade to fuel testnet from beta-5 (#1625) 1 år sedan
Forc.lock 3513eed6c9 fix(target_chains/fuel): upgrade to fuel testnet from beta-5 (#1625) 1 år sedan
Forc.toml c2da454637 add fuel contract by Fuel Labs (#1513) 1 år sedan
LICENSE c2da454637 add fuel contract by Fuel Labs (#1513) 1 år sedan
README.md c2da454637 add fuel contract by Fuel Labs (#1513) 1 år sedan
fuel-toolchain.toml 3513eed6c9 fix(target_chains/fuel): upgrade to fuel testnet from beta-5 (#1625) 1 år sedan

README.md

Pyth-integration

NOTE: The project is a WIP.

An implementation of a Pyth Network oracle contract in Sway. Utilising minimal, internal Wormhole functionality and state.

Interfaces

The project provides four interfaces for interaction with the oracle contract:

  • PythCore - provides the core functionality to required to utilise the oracle; getting fees, updating prices and fetching prices.
  • PythInit - provides the functionality to setup the oracle's state.
  • PythInfo - provides additional information about the oracle's state.
  • WormholeGuardians - provides functionality to maintain and query the wormhole-state-elements used by the oracle.

Running the project

Project

Run the following commands from the root of the repository.

Program compilation

forc build

Running the tests

Before running the tests the programs must be compiled with the command above.

cargo test

Before deploying

Before deploying the oracle contract; the deployer must be set to the address of the deploying wallet in the storage block, so that the deployer can setup the contract with the constructor() method.

Parameters for the constructor() method can be seen in the tests of the method, which at the time of writing uses the real up-to-date values as per Pyth's documentation and EVM integrations. Care should be taken to ensure that the most up-to-date values are used for the constructor() method's parameters.

Fuel Beta-5 network deployment:

The Pyth oracle contract has been deployed to Beta-5 at the ContractId: 0xe69daeb9fcf4c536c0fe402403b4b9e9822cc8b1f296e5d754be12cc384554c5.