diff --git a/contracts/product/AMMSplitter.sol b/contracts/product/AMMSplitter.sol index 1da3e9d13..25c2b4f36 100644 --- a/contracts/product/AMMSplitter.sol +++ b/contracts/product/AMMSplitter.sol @@ -86,14 +86,23 @@ contract AMMSplitter { /** * Sets state variables * - * @param _uniRouter the Uniswap router contract - * @param _sushiRouter the Sushiswap router contract + * @param _uniRouter the Uniswap router contract + * @param _sushiRouter the Sushiswap router contract + * @param _uniFactory the Uniswap factory contract + * @param _sushiFactory the Sushiswap factory contract */ - constructor(IUniswapV2Router _uniRouter, IUniswapV2Router _sushiRouter) public { + constructor( + IUniswapV2Router _uniRouter, + IUniswapV2Router _sushiRouter, + IUniswapV2Factory _uniFactory, + IUniswapV2Factory _sushiFactory + ) + public + { uniRouter = _uniRouter; sushiRouter = _sushiRouter; - uniFactory = IUniswapV2Factory(_uniRouter.factory()); - sushiFactory = IUniswapV2Factory(_sushiRouter.factory()); + uniFactory = _uniFactory; + sushiFactory = _sushiFactory; } /* ============ External Functions ============= */ diff --git a/package.json b/package.json index d98c614b7..bc2a30098 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@setprotocol/set-protocol-v2", - "version": "0.0.41", + "version": "0.0.42", "description": "", "main": "dist", "types": "dist/types", diff --git a/test/integration/ammSplitterGeneralIndexModule.spec.ts b/test/integration/ammSplitterGeneralIndexModule.spec.ts index 46f656c9b..cc7a760a3 100644 --- a/test/integration/ammSplitterGeneralIndexModule.spec.ts +++ b/test/integration/ammSplitterGeneralIndexModule.spec.ts @@ -73,7 +73,12 @@ describe("AMMSplitterGeneralIndexModule", () => { await setup.controller.addModule(positionModule.address); - tradeSplitter = await deployer.product.deployAMMSplitter(uniswapSetup.router.address, sushiswapSetup.router.address); + tradeSplitter = await deployer.product.deployAMMSplitter( + uniswapSetup.router.address, + sushiswapSetup.router.address, + uniswapSetup.factory.address, + sushiswapSetup.factory.address + ); tradeSplitterAdapter = await deployer.adapters.deployUniswapV2IndexExchangeAdapter(tradeSplitter.address); tradeSplitterAdapterName = "TRADESPLITTER"; diff --git a/test/integration/ammSplitterTradeModule.spec.ts b/test/integration/ammSplitterTradeModule.spec.ts index 2bac7f82b..959600c2e 100644 --- a/test/integration/ammSplitterTradeModule.spec.ts +++ b/test/integration/ammSplitterTradeModule.spec.ts @@ -76,7 +76,12 @@ describe("AMMSplitterTradeModule", () => { setup.dai.address ); - tradeSplitter = await deployer.product.deployAMMSplitter(uniswapSetup.router.address, sushiswapSetup.router.address); + tradeSplitter = await deployer.product.deployAMMSplitter( + uniswapSetup.router.address, + sushiswapSetup.router.address, + uniswapSetup.factory.address, + sushiswapSetup.factory.address + ); tradeSplitterExchangeAdapter = await deployer.adapters.deployUniswapV2ExchangeAdapter(tradeSplitter.address); tradeSplitterAdapterName = "TRADESPLITTER"; diff --git a/test/product/ammSplitter.spec.ts b/test/product/ammSplitter.spec.ts index 94587aae8..a6faeadc7 100644 --- a/test/product/ammSplitter.spec.ts +++ b/test/product/ammSplitter.spec.ts @@ -12,7 +12,7 @@ import { import DeployHelper from "@utils/deploys"; import { SystemFixture, UniswapFixture } from "@utils/fixtures"; import { Account } from "@utils/test/types"; -import { AMMSplitter } from "@utils/contracts"; +import { AMMSplitter, UniswapV2Factory } from "@utils/contracts"; import { UniswapV2Router02 } from "@utils/contracts"; import { Address } from "@utils/types"; import { bitcoin, ether, preciseMul } from "@utils/common"; @@ -56,7 +56,12 @@ describe("AMMSplitter", async () => { setup.dai.address ); - splitter = await deployer.product.deployAMMSplitter(uniswapSetup.router.address, sushiswapSetup.router.address); + splitter = await deployer.product.deployAMMSplitter( + uniswapSetup.router.address, + sushiswapSetup.router.address, + uniswapSetup.factory.address, + sushiswapSetup.factory.address + ); }); addSnapshotBeforeRestoreAfterEach(); @@ -65,14 +70,23 @@ describe("AMMSplitter", async () => { let subjectUniswapRouter: UniswapV2Router02; let subjectSushiswapRouter: UniswapV2Router02; + let subjectUniswapFactory: UniswapV2Factory; + let subjectSushiswapFactory: UniswapV2Factory; beforeEach(() => { subjectUniswapRouter = uniswapSetup.router; subjectSushiswapRouter = sushiswapSetup.router; + subjectUniswapFactory = uniswapSetup.factory; + subjectSushiswapFactory = sushiswapSetup.factory; }); async function subject(): Promise { - return deployer.product.deployAMMSplitter(subjectUniswapRouter.address, subjectSushiswapRouter.address); + return deployer.product.deployAMMSplitter( + subjectUniswapRouter.address, + subjectSushiswapRouter.address, + subjectUniswapFactory.address, + subjectSushiswapFactory.address + ); } it("should set the state variables correctly", async () => { @@ -80,6 +94,8 @@ describe("AMMSplitter", async () => { expect(await splitter.uniRouter()).to.eq(subjectUniswapRouter.address); expect(await splitter.sushiRouter()).to.eq(subjectSushiswapRouter.address); + expect(await splitter.uniFactory()).to.eq(subjectUniswapFactory.address); + expect(await splitter.sushiFactory()).to.eq(subjectSushiswapFactory.address); }); }); diff --git a/utils/deploys/deployProduct.ts b/utils/deploys/deployProduct.ts index f334b5eb9..86f7f1387 100644 --- a/utils/deploys/deployProduct.ts +++ b/utils/deploys/deployProduct.ts @@ -37,7 +37,12 @@ export default class DeployProduct { return await new AssetLimitHook__factory(this._deployerSigner).attach(assetLimitHookAddress); } - public async deployAMMSplitter(uniRouter: Address, sushiRouter: Address): Promise { - return await new AMMSplitter__factory(this._deployerSigner).deploy(uniRouter, sushiRouter); + public async deployAMMSplitter( + uniRouter: Address, + sushiRouter: Address, + uniFactory: Address, + sushiFactory: Address + ): Promise { + return await new AMMSplitter__factory(this._deployerSigner).deploy(uniRouter, sushiRouter, uniFactory, sushiFactory); } } \ No newline at end of file