diff --git a/script/optimized-deployer-meta b/script/optimized-deployer-meta index d8fe7f34..7742b2f5 100644 --- a/script/optimized-deployer-meta +++ b/script/optimized-deployer-meta @@ -1,6 +1,6 @@ { - "constant_product_hash": "0x0d88f1315e17e158728b50a3b541d72fca6fb319bd3b40f5d77ec5bc14e1b5f0", - "factory_hash": "0xf26eca6c3685e02d8ed650af75358a3a77a4e56341aa2ab4eeaa0af7b72ff1a5", - "oracle_caller_hash": "0x1f76e9132423bbe7c6e8ab5fd2d1a5ac5f9ce2cfd6bafa7173fec4e7e2f8636f", - "stable_hash": "0x146377d2702444609b7597a3c2a665a566396eb86996b9d27c70daf1cc6eaff8" + "constant_product_hash": "0xc76b43fa1476112c559b63206e8bbf49b93a41e8d7ef98c987084af683e5ed45", + "factory_hash": "0xd20459c5a251f10047ce49e7c183cc2346cec22882957a7dfd55ed348dd4926f", + "oracle_caller_hash": "0x44e853c535a85438ba6f7bf16eb2be67a0a746783c671d4760f6f8dd15632382", + "stable_hash": "0xdaeb6328160335e59d03c244e4f057e14058ff4c1a6b32096ead8400b0d2619b" } \ No newline at end of file diff --git a/src/ReservoirDeployer.sol b/src/ReservoirDeployer.sol index 75aff769..f84d3e03 100644 --- a/src/ReservoirDeployer.sol +++ b/src/ReservoirDeployer.sol @@ -17,12 +17,12 @@ contract ReservoirDeployer { uint256 public step = 0; // Bytecode hashes. - bytes32 public constant FACTORY_HASH = bytes32(0xf26eca6c3685e02d8ed650af75358a3a77a4e56341aa2ab4eeaa0af7b72ff1a5); + bytes32 public constant FACTORY_HASH = bytes32(0xd20459c5a251f10047ce49e7c183cc2346cec22882957a7dfd55ed348dd4926f); bytes32 public constant CONSTANT_PRODUCT_HASH = - bytes32(0x0d88f1315e17e158728b50a3b541d72fca6fb319bd3b40f5d77ec5bc14e1b5f0); - bytes32 public constant STABLE_HASH = bytes32(0x146377d2702444609b7597a3c2a665a566396eb86996b9d27c70daf1cc6eaff8); + bytes32(0xc76b43fa1476112c559b63206e8bbf49b93a41e8d7ef98c987084af683e5ed45); + bytes32 public constant STABLE_HASH = bytes32(0xdaeb6328160335e59d03c244e4f057e14058ff4c1a6b32096ead8400b0d2619b); bytes32 public constant ORACLE_CALLER_HASH = - bytes32(0x1f76e9132423bbe7c6e8ab5fd2d1a5ac5f9ce2cfd6bafa7173fec4e7e2f8636f); + bytes32(0x44e853c535a85438ba6f7bf16eb2be67a0a746783c671d4760f6f8dd15632382); // Deployment addresses. GenericFactory public factory; diff --git a/test/unit/ConstantProductPair.t.sol b/test/unit/ConstantProductPair.t.sol index 38430d16..d6e93740 100644 --- a/test/unit/ConstantProductPair.t.sol +++ b/test/unit/ConstantProductPair.t.sol @@ -319,46 +319,6 @@ contract ConstantProductPairTest is BaseTest, IReservoirCallee { assertEq(lIndex, 3); } - function testWriteObservations() external { - // arrange - // swap 1 - _stepTime(1); - _tokenA.mint(address(_constantProductPair), 1e17); - _constantProductPair.swap(1e17, true, address(this), ""); - - // swap 2 - _stepTime(1); - _tokenA.mint(address(_constantProductPair), 1e17); - _constantProductPair.swap(1e17, true, address(this), ""); - - // sanity - (,,, uint256 lIndex) = _constantProductPair.getReserves(); - assertEq(lIndex, 1); - - Observation memory lObs = _oracleCaller.observation(_constantProductPair, 0); - assertTrue(lObs.logAccRawPrice == 0); - assertTrue(lObs.timestamp != 0); - - lObs = _oracleCaller.observation(_constantProductPair, 1); - assertTrue(lObs.logAccRawPrice != 0); - assertTrue(lObs.timestamp != 0); - - // act - _writeObservation(_constantProductPair, 0, int24(12), int24(-34), int88(56), int88(-78), uint32(666)); - - // assert - lObs = _oracleCaller.observation(_constantProductPair, 0); - assertEq(lObs.logInstantRawPrice, int24(12)); - assertEq(lObs.logInstantClampedPrice, int24(-34)); - assertEq(lObs.logAccRawPrice, int88(56)); - assertEq(lObs.logAccClampedPrice, int88(-78)); - assertEq(lObs.timestamp, uint32(666)); - - lObs = _oracleCaller.observation(_constantProductPair, 1); - assertTrue(lObs.logAccRawPrice != 0); - assertTrue(lObs.timestamp != 0); - } - function testOracle_OverflowAccPrice(uint32 aNewStartTime) public randomizeStartTime(aNewStartTime) { // arrange - make the last observation close to overflowing (,,, uint16 lIndex) = _constantProductPair.getReserves(); diff --git a/test/unit/OracleWriter.t.sol b/test/unit/OracleWriter.t.sol index 0a50e17a..63638fc2 100644 --- a/test/unit/OracleWriter.t.sol +++ b/test/unit/OracleWriter.t.sol @@ -31,6 +31,55 @@ contract OracleWriterTest is BaseTest { } } + function testWriteObservations() external allPairs { + // arrange + // swap 1 + _stepTime(1); + (uint256 lReserve0, uint256 lReserve1,,) = _pair.getReserves(); + _tokenA.mint(address(_pair), 5e18); + _pair.swap(5e18, true, address(this), ""); + + // swap 2 + _stepTime(1); + (lReserve0, lReserve1,,) = _pair.getReserves(); + _tokenA.mint(address(_pair), 5e18); + _pair.swap(5e18, true, address(this), ""); + + // sanity + (,,, uint16 lIndex) = _pair.getReserves(); + assertEq(lIndex, 1); + + Observation memory lObs = _oracleCaller.observation(_pair, 0); + assertEq(lObs.logAccRawPrice, 0); + assertEq(lObs.logAccClampedPrice, 0); + assertNotEq(lObs.logInstantRawPrice, 0); + assertNotEq(lObs.logInstantClampedPrice, 0); + assertNotEq(lObs.timestamp, 0); + + lObs = _oracleCaller.observation(_pair, 1); + assertNotEq(lObs.logAccRawPrice, 0); + assertNotEq(lObs.logAccClampedPrice, 0); + assertNotEq(lObs.logInstantRawPrice, 0); + assertNotEq(lObs.logInstantClampedPrice, 0); + assertNotEq(lObs.timestamp, 0); + + // act + _writeObservation(_pair, 0, int24(123), int24(-456), int88(789), int56(-1011), uint32(666)); + + // assert + lObs = _oracleCaller.observation(_pair, 0); + assertEq(lObs.logInstantRawPrice, int24(123)); + assertEq(lObs.logInstantClampedPrice, int24(-456)); + assertEq(lObs.logAccRawPrice, int88(789)); + assertEq(lObs.logAccClampedPrice, int88(-1011)); + assertEq(lObs.timestamp, uint32(666)); + + lObs = _oracleCaller.observation(_pair, 1); + assertNotEq(lObs.logAccRawPrice, 0); + assertNotEq(lObs.logAccClampedPrice, 0); + assertNotEq(lObs.timestamp, 0); + } + function testObservation_NotOracleCaller(uint256 aIndex) external allPairs { // assume uint256 lIndex = bound(aIndex, 0, type(uint16).max); diff --git a/test/unit/StablePair.t.sol b/test/unit/StablePair.t.sol index a30766b8..bbd34560 100644 --- a/test/unit/StablePair.t.sol +++ b/test/unit/StablePair.t.sol @@ -1546,51 +1546,6 @@ contract StablePairTest is BaseTest { assertEq(lIndex, 3); } - function testWriteObservations() external { - // arrange - // swap 1 - _stepTime(1); - (uint256 lReserve0, uint256 lReserve1,,) = _stablePair.getReserves(); - _tokenA.mint(address(_stablePair), 5e18); - _stablePair.swap(5e18, true, address(this), ""); - - // swap 2 - _stepTime(1); - (lReserve0, lReserve1,,) = _stablePair.getReserves(); - _tokenA.mint(address(_stablePair), 5e18); - _stablePair.swap(5e18, true, address(this), ""); - - // sanity - (,,, uint16 lIndex) = _stablePair.getReserves(); - assertEq(lIndex, 1); - - Observation memory lObs = _oracleCaller.observation(_stablePair, 0); - assertTrue(lObs.logAccRawPrice == 0); - assertTrue(lObs.logAccClampedPrice == 0); - assertTrue(lObs.timestamp != 0); - - lObs = _oracleCaller.observation(_stablePair, 1); - assertTrue(lObs.logAccRawPrice != 0); - assertTrue(lObs.logAccClampedPrice != 0); - assertTrue(lObs.timestamp != 0); - - // act - _writeObservation(_stablePair, 0, int24(123), int24(-456), int88(789), int56(-1011), uint32(666)); - - // assert - lObs = _oracleCaller.observation(_stablePair, 0); - assertEq(lObs.logInstantRawPrice, int24(123)); - assertEq(lObs.logInstantClampedPrice, int24(-456)); - assertEq(lObs.logAccRawPrice, int88(789)); - assertEq(lObs.logAccClampedPrice, int88(-1011)); - assertEq(lObs.timestamp, uint32(666)); - - lObs = _oracleCaller.observation(_stablePair, 1); - assertTrue(lObs.logAccRawPrice != 0); - assertTrue(lObs.logAccClampedPrice != 0); - assertTrue(lObs.timestamp != 0); - } - function testOracle_OverflowAccPrice(uint32 aNewStartTime) public randomizeStartTime(aNewStartTime) { // assume vm.assume(aNewStartTime >= 1);