From 4fadaa05153d4f37f1a473768439049394c06a5d Mon Sep 17 00:00:00 2001
From: pradyuman-verma <pradyumnverma27@gmail.com>
Date: Fri, 19 Nov 2021 19:52:34 +0530
Subject: [PATCH] minor fix

---
 .../connectors/uniswap-sell-beta/helpers.sol  |  2 +-
 .../uniswap-sell-beta/interface.sol           |  2 +-
 .../connectors/uniswap-sell-beta/main.sol     | 13 ++---
 test/uniswap-sell-beta/uniswap-sell-beta.js   | 55 +++++++++++++++++++
 4 files changed, 63 insertions(+), 9 deletions(-)
 create mode 100644 test/uniswap-sell-beta/uniswap-sell-beta.js

diff --git a/contracts/arbitrum/connectors/uniswap-sell-beta/helpers.sol b/contracts/arbitrum/connectors/uniswap-sell-beta/helpers.sol
index e7027aca..9342a8e7 100644
--- a/contracts/arbitrum/connectors/uniswap-sell-beta/helpers.sol
+++ b/contracts/arbitrum/connectors/uniswap-sell-beta/helpers.sol
@@ -58,7 +58,7 @@ abstract contract Helpers is ISwapRouter {
         TransferHelper.safeApprove(tokenIn, address(router), amountIn);
     }
 
-    function getSingleInput(ISwapRouter.ExactInputSingleParams memory params)
+    function swapSingleInput(ISwapRouter.ExactInputSingleParams memory params)
         public
         returns (uint256)
     {
diff --git a/contracts/arbitrum/connectors/uniswap-sell-beta/interface.sol b/contracts/arbitrum/connectors/uniswap-sell-beta/interface.sol
index f9c4e4d6..633ea36e 100644
--- a/contracts/arbitrum/connectors/uniswap-sell-beta/interface.sol
+++ b/contracts/arbitrum/connectors/uniswap-sell-beta/interface.sol
@@ -32,5 +32,5 @@ interface ISwapRouter {
     function exactInputSingle(ExactInputSingleParams calldata params)
         external
         payable
-        returns (uint256 amountOut);
+        returns (uint256);
 }
diff --git a/contracts/arbitrum/connectors/uniswap-sell-beta/main.sol b/contracts/arbitrum/connectors/uniswap-sell-beta/main.sol
index e564ec2c..40881767 100644
--- a/contracts/arbitrum/connectors/uniswap-sell-beta/main.sol
+++ b/contracts/arbitrum/connectors/uniswap-sell-beta/main.sol
@@ -8,18 +8,17 @@ abstract contract uniswapSellBeta is Helpers {
         address tokenIn,
         address tokenOut,
         uint24 fee,
-        uint256 amountIn,
         uint256 amountOutMinimum,
         bool zeroForOne
-    ) public returns (uint256 amountOut) {
-        approveTransfer(tokenIn, msg.sender, address(this), amountIn);
-        amountOut = getSingleInput(
+    ) public payable returns (uint256 amountOut) {
+        approveTransfer(tokenIn, msg.sender, address(this), msg.value);
+        amountOut = swapSingleInput(
             getParams(
                 tokenIn,
                 tokenOut,
                 msg.sender,
                 fee,
-                amountIn,
+                msg.value,
                 amountOutMinimum,
                 zeroForOne
             )
@@ -27,6 +26,6 @@ abstract contract uniswapSellBeta is Helpers {
     }
 }
 
-abstract contract UniswapSellBetaArbitrum is uniswapSellBeta {
-    string public constant name = "UniswapSample-v1";
+contract UniswapSellBetaArbitrum is uniswapSellBeta {
+    string public constant name = "UniswapSellBeta";
 }
diff --git a/test/uniswap-sell-beta/uniswap-sell-beta.js b/test/uniswap-sell-beta/uniswap-sell-beta.js
new file mode 100644
index 00000000..4e76d80b
--- /dev/null
+++ b/test/uniswap-sell-beta/uniswap-sell-beta.js
@@ -0,0 +1,55 @@
+const { expect } = require("chai");
+const hre = require("hardhat");
+const { web3, deployments, waffle, ethers } = hre;
+const { provider, deployContract } = waffle;
+const deployAndEnableConnector = require("../../scripts/deployAndEnableConnector.js");
+const buildDSAv2 = require("../../scripts/buildDSAv2");
+const encodeSpells = require("../../scripts/encodeSpells.js");
+
+const addresses = require("../../scripts/constant/addresses");
+const abis = require("../../scripts/constant/abis");
+
+const UniswapSellBetaArtifacts = require("../../artifacts/contracts/arbitrum/connectors/uniswap-sell-beta/main.sol/UniswapSellBetaArbitrum.json");
+
+const FeeAmount = {
+  LOW: 500,
+  MEDIUM: 3000,
+  HIGH: 10000,
+};
+
+const TICK_SPACINGS = {
+  500: 10,
+  3000: 60,
+  10000: 200,
+};
+
+const USDT_ADDR = "0xdac17f958d2ee523a2206206994597c13d831ec7";
+const DAI_ADDR = "0x6b175474e89094c44da98b954eedeac495271d0f";
+
+describe("Uniswap-sell-beta", function() {
+  let UniswapSellBeta, uniswapSellBeta;
+  before(async () => {
+    UniswapSellBeta = await ethers.getContractFactory(
+      "UniswapSellBetaArbitrum"
+    );
+    uniswapSellBeta = await UniswapSellBeta.deploy();
+    [owner, add1, add2] = await ethers.getSigners();
+    await uniswapSellBeta.deployed();
+  });
+
+  it("Should have contracts deployed.", async function() {
+    expect(uniswapSellBeta.address).to.be.true;
+  });
+
+  it("Should Perfrom a swap", async () => {
+    const tx = await uniswapSellBeta.sell(
+      USDT_ADDR,
+      DAI_ADDR,
+      ethers.utils.parseEther("1.0"),
+      ethers.utils.parseEther("10.0"),
+      true,
+      { value: ethers.utils.parseEther("10.0") }
+    );
+    console.log(tx);
+  });
+});