mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
refactor: fix incorrect comparison
This commit is contained in:
parent
ee4d17bb86
commit
66aa290f4e
|
@ -9,6 +9,7 @@ contract Events {
|
||||||
address delegate,
|
address delegate,
|
||||||
uint256 amount,
|
uint256 amount,
|
||||||
uint256 slippage,
|
uint256 slippage,
|
||||||
uint256 getId
|
uint256 getId,
|
||||||
|
uint256 setId
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,14 +15,6 @@ contract Helpers is DSMath, Basic {
|
||||||
0x8f7492DE823025b4CfaAB1D34c58963F2af5DEDA;
|
0x8f7492DE823025b4CfaAB1D34c58963F2af5DEDA;
|
||||||
IConnext internal constant connext = IConnext(connextAddr);
|
IConnext internal constant connext = IConnext(connextAddr);
|
||||||
|
|
||||||
/**
|
|
||||||
* @dev InstaReceiver Address
|
|
||||||
*/
|
|
||||||
address internal constant instaReceiverAddr =
|
|
||||||
0x0000000000000000000000000000000000000000; // TODO: Add InstaReceiver address
|
|
||||||
IInstaReceiver internal constant instaReceiver =
|
|
||||||
IInstaReceiver(instaReceiverAddr);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param destination The destination domain ID.
|
* @param destination The destination domain ID.
|
||||||
* @param asset The address of token to be bridged.
|
* @param asset The address of token to be bridged.
|
||||||
|
@ -44,33 +36,7 @@ contract Helpers is DSMath, Basic {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _xcall(XCallParams memory params) internal {
|
function _xcall(XCallParams memory params) internal {
|
||||||
uint256 nativeTokenAmt;
|
connext.xcall{ value: params.relayerFee }(
|
||||||
bool isNative = params.asset == ethAddr;
|
|
||||||
|
|
||||||
if (isNative) {
|
|
||||||
params.amount = params.amount == uint256(-1)
|
|
||||||
? address(this).balance
|
|
||||||
: params.amount;
|
|
||||||
|
|
||||||
// xcall does not take native asset, must wrap
|
|
||||||
TokenInterface tokenContract = TokenInterface(wethAddr);
|
|
||||||
convertEthToWeth(true, tokenContract, params.amount);
|
|
||||||
|
|
||||||
nativeTokenAmt = params.amount;
|
|
||||||
} else {
|
|
||||||
TokenInterface tokenContract = TokenInterface(params.asset);
|
|
||||||
params.amount = params.amount == uint256(-1)
|
|
||||||
? tokenContract.balanceOf(address(this))
|
|
||||||
: params.amount;
|
|
||||||
|
|
||||||
if (params.amount > 0) {
|
|
||||||
tokenContract.approve(connextAddr, params.amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
nativeTokenAmt = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
connext.xcall{ value: params.relayerFee + nativeTokenAmt }(
|
|
||||||
params.destination,
|
params.destination,
|
||||||
params.to,
|
params.to,
|
||||||
params.asset,
|
params.asset,
|
||||||
|
|
|
@ -21,16 +21,33 @@ abstract contract ConnextResolver is Helpers {
|
||||||
* @notice Call xcall on Connext.
|
* @notice Call xcall on Connext.
|
||||||
* @param params XCallParams struct.
|
* @param params XCallParams struct.
|
||||||
* @param getId ID to retrieve amount from last spell.
|
* @param getId ID to retrieve amount from last spell.
|
||||||
|
* @param setId ID stores the amount of tokens deposited.
|
||||||
*/
|
*/
|
||||||
function xcall(XCallParams memory params, uint256 getId)
|
function xcall(XCallParams memory params, uint256 getId, uint256 setId)
|
||||||
external
|
external
|
||||||
payable
|
payable
|
||||||
returns (string memory _eventName, bytes memory _eventParam)
|
returns (string memory _eventName, bytes memory _eventParam)
|
||||||
{
|
{
|
||||||
params.amount = getUint(getId, params.amount);
|
uint256 _amount = getUint(getId, params.amount);
|
||||||
TokenInterface tokenContract = TokenInterface(params.asset);
|
TokenInterface tokenContract = TokenInterface(params.asset);
|
||||||
|
bool isNative = params.asset == wethAddr;
|
||||||
|
|
||||||
|
if (isNative) {
|
||||||
|
_amount = _amount == uint256(-1) ? sub(address(this).balance, params.relayerFee) : _amount;
|
||||||
|
|
||||||
|
// xcall does not take native asset, must wrap
|
||||||
|
convertEthToWeth(true, tokenContract, _amount);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
_amount = _amount == uint256(-1) ? tokenContract.balanceOf(address(this)) : _amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
params.amount = _amount;
|
||||||
|
approve(tokenContract, connextAddr, _amount);
|
||||||
_xcall(params);
|
_xcall(params);
|
||||||
_eventName = "LogXCall(uint32,address,address,address,uint256,uint256,uint256)";
|
|
||||||
|
setUint(setId, _amount);
|
||||||
|
_eventName = "LogXCall(uint32,address,address,address,uint256,uint256,uint256,uint256)";
|
||||||
_eventParam = abi.encode(
|
_eventParam = abi.encode(
|
||||||
params.destination,
|
params.destination,
|
||||||
params.to,
|
params.to,
|
||||||
|
@ -38,7 +55,8 @@ abstract contract ConnextResolver is Helpers {
|
||||||
params.delegate,
|
params.delegate,
|
||||||
params.amount,
|
params.amount,
|
||||||
params.slippage,
|
params.slippage,
|
||||||
getId
|
getId,
|
||||||
|
setId
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import { abis } from "../../../scripts/constant/abis";
|
||||||
import { ConnectV2ConnextOptimism__factory } from "../../../typechain";
|
import { ConnectV2ConnextOptimism__factory } from "../../../typechain";
|
||||||
import { Signer, Contract } from "ethers";
|
import { Signer, Contract } from "ethers";
|
||||||
|
|
||||||
|
|
||||||
describe("Connext Connector [Optimism]", function () {
|
describe("Connext Connector [Optimism]", function () {
|
||||||
const connectorName = "CONNEXT-TEST-A";
|
const connectorName = "CONNEXT-TEST-A";
|
||||||
|
|
||||||
|
@ -19,11 +20,14 @@ describe("Connext Connector [Optimism]", function () {
|
||||||
let masterSigner: Signer;
|
let masterSigner: Signer;
|
||||||
let instaConnectorsV2: Contract;
|
let instaConnectorsV2: Contract;
|
||||||
let connector: Contract;
|
let connector: Contract;
|
||||||
|
let usdcContract: Contract;
|
||||||
|
let signer: any;
|
||||||
|
|
||||||
const connextAddr = "0x8f7492DE823025b4CfaAB1D34c58963F2af5DEDA";
|
const connextAddr = "0x8f7492DE823025b4CfaAB1D34c58963F2af5DEDA";
|
||||||
const usdcAddr = "0x7F5c764cBc14f9669B88837ca1490cCa17c31607";
|
const usdcAddr = "0x7F5c764cBc14f9669B88837ca1490cCa17c31607";
|
||||||
const ethAddr = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
const ethAddr = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
||||||
const wethAddr = "0x4200000000000000000000000000000000000006";
|
const wethAddr = "0x4200000000000000000000000000000000000006";
|
||||||
|
const account = "0xebe80f029b1c02862b9e8a70a7e5317c06f62cae";
|
||||||
|
|
||||||
const wallets = provider.getWallets();
|
const wallets = provider.getWallets();
|
||||||
const [wallet0, wallet1] = wallets;
|
const [wallet0, wallet1] = wallets;
|
||||||
|
@ -39,7 +43,7 @@ describe("Connext Connector [Optimism]", function () {
|
||||||
forking: {
|
forking: {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
jsonRpcUrl: hre.config.networks.hardhat.forking.url,
|
jsonRpcUrl: hre.config.networks.hardhat.forking.url,
|
||||||
blockNumber: 80768349
|
blockNumber: 82686991
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -53,8 +57,19 @@ describe("Connext Connector [Optimism]", function () {
|
||||||
signer: masterSigner,
|
signer: masterSigner,
|
||||||
connectors: instaConnectorsV2
|
connectors: instaConnectorsV2
|
||||||
});
|
});
|
||||||
|
usdcContract = await ethers.getContractAt(abis.basic.erc20, usdcAddr);
|
||||||
|
signer = await ethers.getSigner(account);
|
||||||
|
|
||||||
console.log("Connector address", connector.address);
|
await hre.network.provider.send("hardhat_setBalance", [account, ethers.utils.parseEther("10").toHexString()]);
|
||||||
|
|
||||||
|
await hre.network.provider.request({
|
||||||
|
method: "hardhat_impersonateAccount",
|
||||||
|
params: [account]
|
||||||
|
});
|
||||||
|
|
||||||
|
await usdcContract.connect(signer).transfer(wallet0.address, ethers.utils.parseUnits("10000", 6));
|
||||||
|
|
||||||
|
console.log("deployed connector: ", connector.address);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Should have contracts deployed.", async function () {
|
it("Should have contracts deployed.", async function () {
|
||||||
|
@ -76,11 +91,8 @@ describe("Connext Connector [Optimism]", function () {
|
||||||
});
|
});
|
||||||
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
|
expect(await ethers.provider.getBalance(dsaWallet0.address)).to.be.gte(ethers.utils.parseEther("10"));
|
||||||
|
|
||||||
// await addLiquidity(
|
await usdcContract.connect(wallet0).transfer(dsaWallet0.address, ethers.utils.parseUnits("10", 6));
|
||||||
// "usdc",
|
expect(await usdcContract.balanceOf(dsaWallet0.address)).to.be.gte(ethers.utils.parseUnits("10", 6));
|
||||||
// dsaWallet0.address,
|
|
||||||
// ethers.utils.parseEther("100000")
|
|
||||||
// );
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user