SIP-334: Add Optional Bytes Field for Oracle Manager Requests

Author
StatusSC_Review_Pending
TypeGovernance
NetworkEthereum & Optimism
ImplementorTBD
ReleaseTBD
Created2023-07-25

Abstract

This SIP proposes enhancing the Oracle Manager in the Synthetix protocol to support custom bytes data in requests, enabling Oracle Manager nodes to alter outcomes based on the provided information. This upgrade opens up new possibilities for use cases, such as sensitivity to order size when quoting prices.

Motivation

The current Oracle Manager in the Synthetix protocol does not allow the inclusion of custom bytes data in requests. This limitation restricts the flexibility of the system and prevents certain use cases that require additional information to be passed to nodes. For example, the V3 Perpetual Futures Market implementation accepts synthetic spot assets as collateral. To get an accurate quote of the value of these assets from the V3 Spot Market implementation, it should have the ability to specify the amount of the spot assets it is assessing the value of to get a more accurate price for each unit, if they were to be liquidated in a single transaction.

Specification

The proposed upgrade involves modifying the NodeModule of the Oracle Manager system to add an overloaded function for the process function. The new function signature will be as follows:

function process(bytes32 nodeId, bytes calldata customData) external;

This is a non-breaking change. The existing process function will continue to operate as before for regular oracle price requests that do not have custom data.

When a request is made with the new process function which includes customData, the Oracle Manager will pass this data to the nodes along with the usual oracle price information. This enables the oracle manager nodes to utilize the custom data while executing the request and alter the outcome based on the provided information.

Configurable Values (Via SCCP)

N/A

Copyright and related rights waived via CC0.