Use latestPriceInfoPublishTime when possible (#377)

This commit is contained in:
Ali Behjati 2022-11-04 17:16:14 +01:00 committed by GitHub
parent b23258112d
commit 8db2af6ee5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -195,16 +195,16 @@ abstract contract Pyth is PythGetters, PythSetters, AbstractPyth {
index += attestationSize;
// Store the attestation
PythInternalStructs.PriceInfo memory latestPrice = latestPriceInfo(priceId);
uint64 latestPublishTime = latestPriceInfoPublishTime(priceId);
bool fresh = false;
if(info.price.publishTime > latestPrice.price.publishTime) {
if(info.price.publishTime > latestPublishTime) {
freshPrices += 1;
fresh = true;
setLatestPriceInfo(priceId, info);
}
emit PriceFeedUpdate(priceId, fresh, vm.emitterChainId, vm.sequence, latestPrice.price.publishTime,
emit PriceFeedUpdate(priceId, fresh, vm.emitterChainId, vm.sequence, latestPublishTime,
info.price.publishTime, info.price.price, info.price.conf);
}
@ -230,8 +230,7 @@ abstract contract Pyth is PythGetters, PythSetters, AbstractPyth {
}
function priceFeedExists(bytes32 id) public override view returns (bool) {
PythInternalStructs.PriceInfo memory info = latestPriceInfo(id);
return (info.price.publishTime != 0);
return (latestPriceInfoPublishTime(id) != 0);
}
function getValidTimePeriod() public override view returns (uint) {

View File

@ -27,6 +27,10 @@ contract PythGetters is PythState {
return _state.latestPriceInfo[priceId];
}
function latestPriceInfoPublishTime(bytes32 priceId) public view returns (uint64) {
return _state.latestPriceInfo[priceId].price.publishTime;
}
function hashDataSource(PythInternalStructs.DataSource memory ds) public pure returns (bytes32) {
return keccak256(abi.encodePacked(ds.chainId, ds.emitterAddress));
}