Update contract (#213)

This commit is contained in:
Ali Behjati 2022-05-18 12:53:20 +02:00 committed by GitHub
parent 75e354f0f6
commit 4dc863abc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 20 deletions

View File

@ -53,7 +53,6 @@ contract Pyth is PythGetters, PythSetters, AbstractPyth {
function newPriceInfo(PythInternalStructs.PriceAttestation memory pa) private view returns (PythInternalStructs.PriceInfo memory info) { function newPriceInfo(PythInternalStructs.PriceAttestation memory pa) private view returns (PythInternalStructs.PriceInfo memory info) {
info.attestationTime = pa.attestationTime; info.attestationTime = pa.attestationTime;
info.publishTime = pa.publishTime;
info.arrivalTime = block.timestamp; info.arrivalTime = block.timestamp;
info.arrivalBlock = block.number; info.arrivalBlock = block.number;
@ -67,6 +66,10 @@ contract Pyth is PythGetters, PythSetters, AbstractPyth {
info.priceFeed.productId = pa.productId; info.priceFeed.productId = pa.productId;
info.priceFeed.numPublishers = pa.numPublishers; info.priceFeed.numPublishers = pa.numPublishers;
info.priceFeed.maxNumPublishers = pa.maxNumPublishers; info.priceFeed.maxNumPublishers = pa.maxNumPublishers;
info.priceFeed.prevConf = pa.prevConf;
info.priceFeed.prevPublishTime = pa.prevPublishTime;
info.priceFeed.prevPrice = pa.prevPrice;
info.priceFeed.publishTime = pa.publishTime;
return info; return info;
} }
@ -205,9 +208,8 @@ contract Pyth is PythGetters, PythSetters, AbstractPyth {
require(info.priceFeed.id != 0, "no price feed found for the given price id"); require(info.priceFeed.id != 0, "no price feed found for the given price id");
// Check that there is not a significant difference between this chain's time // Check that there is not a significant difference between this chain's time
// and the attestation time. This is a last-resort safety net, and this check // and the price publish time.
// will be iterated on in the future. if (diff(block.timestamp, info.priceFeed.publishTime) > VALID_TIME_PERIOD_SECS) {
if (diff(block.timestamp, info.publishTime) > VALID_TIME_PERIOD_SECS) {
info.priceFeed.status = PythStructs.PriceStatus.UNKNOWN; info.priceFeed.status = PythStructs.PriceStatus.UNKNOWN;
} }

View File

@ -43,25 +43,10 @@ contract PythInternalStructs {
uint64 prevConf; uint64 prevConf;
} }
struct Rational {
int64 value;
int64 numerator;
int64 denominator;
}
struct UpgradeContract {
bytes32 module;
uint8 action;
uint16 chain;
address newContract;
}
struct PriceInfo { struct PriceInfo {
PythStructs.PriceFeed priceFeed;
uint256 attestationTime; uint256 attestationTime;
uint256 publishTime;
uint256 arrivalTime; uint256 arrivalTime;
uint256 arrivalBlock; uint256 arrivalBlock;
PythStructs.PriceFeed priceFeed;
} }
} }