From d57e8f6478778ae82280fe1ba1b74bbac71ffc6e Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Wed, 2 Feb 2022 09:43:09 +1000 Subject: [PATCH] Example Curve Sampler --- .../contracts/test/CurveSamplerTest.sol | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 packages/asset-swapper/contracts/test/CurveSamplerTest.sol diff --git a/packages/asset-swapper/contracts/test/CurveSamplerTest.sol b/packages/asset-swapper/contracts/test/CurveSamplerTest.sol new file mode 100644 index 0000000000..bccd5464c5 --- /dev/null +++ b/packages/asset-swapper/contracts/test/CurveSamplerTest.sol @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.6; +pragma experimental ABIEncoderV2; + +import "./TestBase.sol"; +import "../src/ERC20BridgeSampler.sol"; + +contract CurveSamplerTest is + TestBase +{ + ERC20BridgeSampler sampler; + + function setUp() public { + sampler = new ERC20BridgeSampler(); + sampler.setSampleValues(_toSingleValueArray(1e18)); + } + + function testCurveSampler() + public + requiresChainId(1) + requiresBlockNumberGte(14000000) + { + + uint256[] memory values = sampler.sampleSellsFromCurveGlobal( + CurveSampler.CurveInfo({ + poolAddress: 0x06cb22615BA53E60D67Bf6C341a0fD5E718E1655, + sellQuoteFunctionSelector: 0x07211ef7, + buyQuoteFunctionSelector: 0x00000000 + }), + 0, + 1 + ); + + assertGt(values[0], 0); + } + + function testCurveSamplerOptimism() + public + requiresChainId(10) + { + + uint256[] memory values = sampler.sampleSellsFromCurveGlobal( + CurveSampler.CurveInfo({ + poolAddress: 0x1337BedC9D22ecbe766dF105c9623922A27963EC, + sellQuoteFunctionSelector: 0x5e0d443f, + buyQuoteFunctionSelector: 0x00000000 + }), + 0, + 1 + ); + + assertGt(values[0], 0); + } +}