-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keystone] Use audited version of OCR2Base.sol in OCR3Capability.sol (#…
…13487) * [Keystone] Use audited version of OCR2Base.sol in OCR3Capability.sol Copied from contracts/src/v0.8/functions/v1_1_0/ocr/ * Update gethwrappers * [Keystone] Use audited version of OCR2Base.sol in OCR3Capability.sol Copied from contracts/src/v0.8/functions/v1_1_0/ocr/ --------- Co-authored-by: app-token-issuer-infra-releng[bot] <120227048+app-token-issuer-infra-releng[bot]@users.noreply.github.com>
- Loading branch information
1 parent
15adf2e
commit 5e27da9
Showing
7 changed files
with
474 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
"chainlink": patch | ||
--- | ||
|
||
#internal Use audited version of OCR2Base.sol in OCR3Capability.sol |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@chainlink/contracts': patch | ||
--- | ||
|
||
#internal Use audited version of OCR2Base.sol in OCR3Capability.sol |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity ^0.8.19; | ||
|
||
import {ITypeAndVersion} from "../../shared/interfaces/ITypeAndVersion.sol"; | ||
|
||
abstract contract OCR2Abstract is ITypeAndVersion { | ||
// Maximum number of oracles the offchain reporting protocol is designed for | ||
uint256 internal constant MAX_NUM_ORACLES = 31; | ||
|
||
/** | ||
* @notice triggers a new run of the offchain reporting protocol | ||
* @param previousConfigBlockNumber block in which the previous config was set, to simplify historic analysis | ||
* @param configDigest configDigest of this configuration | ||
* @param configCount ordinal number of this config setting among all config settings over the life of this contract | ||
* @param signers ith element is address ith oracle uses to sign a report | ||
* @param transmitters ith element is address ith oracle uses to transmit a report via the transmit method | ||
* @param f maximum number of faulty/dishonest oracles the protocol can tolerate while still working correctly | ||
* @param onchainConfig serialized configuration used by the contract (and possibly oracles) | ||
* @param offchainConfigVersion version of the serialization format used for "offchainConfig" parameter | ||
* @param offchainConfig serialized configuration used by the oracles exclusively and only passed through the contract | ||
*/ | ||
event ConfigSet( | ||
uint32 previousConfigBlockNumber, | ||
bytes32 configDigest, | ||
uint64 configCount, | ||
address[] signers, | ||
address[] transmitters, | ||
uint8 f, | ||
bytes onchainConfig, | ||
uint64 offchainConfigVersion, | ||
bytes offchainConfig | ||
); | ||
|
||
/** | ||
* @notice sets offchain reporting protocol configuration incl. participating oracles | ||
* @param signers addresses with which oracles sign the reports | ||
* @param transmitters addresses oracles use to transmit the reports | ||
* @param f number of faulty oracles the system can tolerate | ||
* @param onchainConfig serialized configuration used by the contract (and possibly oracles) | ||
* @param offchainConfigVersion version number for offchainEncoding schema | ||
* @param offchainConfig serialized configuration used by the oracles exclusively and only passed through the contract | ||
*/ | ||
function setConfig( | ||
address[] memory signers, | ||
address[] memory transmitters, | ||
uint8 f, | ||
bytes memory onchainConfig, | ||
uint64 offchainConfigVersion, | ||
bytes memory offchainConfig | ||
) external virtual; | ||
|
||
/** | ||
* @notice information about current offchain reporting protocol configuration | ||
* @return configCount ordinal number of current config, out of all configs applied to this contract so far | ||
* @return blockNumber block at which this config was set | ||
* @return configDigest domain-separation tag for current config (see _configDigestFromConfigData) | ||
*/ | ||
function latestConfigDetails() | ||
external | ||
view | ||
virtual | ||
returns (uint32 configCount, uint32 blockNumber, bytes32 configDigest); | ||
|
||
/** | ||
* @notice optionally emited to indicate the latest configDigest and epoch for | ||
which a report was successfully transmited. Alternatively, the contract may | ||
use latestConfigDigestAndEpoch with scanLogs set to false. | ||
*/ | ||
event Transmitted(bytes32 configDigest, uint32 epoch); | ||
|
||
/** | ||
* @notice optionally returns the latest configDigest and epoch for which a | ||
report was successfully transmitted. Alternatively, the contract may return | ||
scanLogs set to true and use Transmitted events to provide this information | ||
to offchain watchers. | ||
* @return scanLogs indicates whether to rely on the configDigest and epoch | ||
returned or whether to scan logs for the Transmitted event instead. | ||
* @return configDigest | ||
* @return epoch | ||
*/ | ||
function latestConfigDigestAndEpoch() | ||
external | ||
view | ||
virtual | ||
returns (bool scanLogs, bytes32 configDigest, uint32 epoch); | ||
|
||
/** | ||
* @notice transmit is called to post a new report to the contract | ||
* @param report serialized report, which the signatures are signing. | ||
* @param rs ith element is the R components of the ith signature on report. Must have at most maxNumOracles entries | ||
* @param ss ith element is the S components of the ith signature on report. Must have at most maxNumOracles entries | ||
* @param rawVs ith element is the the V component of the ith signature | ||
*/ | ||
function transmit( | ||
// NOTE: If these parameters are changed, expectedMsgDataLength and/or | ||
// TRANSMIT_MSGDATA_CONSTANT_LENGTH_COMPONENT need to be changed accordingly | ||
bytes32[3] calldata reportContext, | ||
bytes calldata report, | ||
bytes32[] calldata rs, | ||
bytes32[] calldata ss, | ||
bytes32 rawVs // signatures | ||
) external virtual; | ||
} |
Oops, something went wrong.