test failing @ _PaybackCalculate: invalid opcode

This commit is contained in:
Mubaris NK 2021-04-15 17:42:42 +05:30
parent cb408f7d1a
commit 62d3755b4f
No known key found for this signature in database
GPG Key ID: 9AC09AD0F8D68561
2 changed files with 82 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import { DSMath } from "../../common/math.sol";
import { Stores } from "../../common/stores-mainnet.sol";
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "hardhat/console.sol";
import { Variables } from "./variables.sol";
@ -68,7 +69,10 @@ abstract contract Helpers is DSMath, Stores, Variables {
,,,,,
) = aaveData.getUserReserveData(_token, sourceDsa);
stableBorrow[i] = _data.stableBorrowAmts[i] == uint(-1) ? stableDebt : _data.stableBorrowAmts[i];
console.log("debts", stableDebt, variableDebt);
console.log("token", _token);
stableBorrow[i] = _data.stableBorrowAmts[i] == uint(-1) ? stableDebt : _data.stableBorrowAmts[i]; // Failing here?? 'invalid-opcode'
variableBorrow[i] = _data.variableBorrowAmts[i] == uint(-1) ? variableDebt : _data.variableBorrowAmts[i];
totalBorrow[i] = add(stableBorrow[i], variableBorrow[i]);

View File

@ -7,6 +7,12 @@ const Migrator = require("../artifacts/contracts/senders/aave-v2-migrator/main.s
describe("Migrator", function() {
let accounts, masterAddress, master, migrator, ethereum
const erc20Abi = [
"function balanceOf(address) view returns (uint)",
"function transfer(address to, uint amount)"
]
const usdc = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
const usdt = '0xdac17f958d2ee523a2206206994597c13d831ec7'
const dai = '0x6b175474e89094c44da98b954eedeac495271d0f'
@ -29,6 +35,54 @@ describe("Migrator", function() {
console.log("Migrator deployed: ", migrator.address)
const usdcHolderAddr = '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503' // 1,000,000
await accounts[0].sendTransaction({ to: usdcHolderAddr, value: ethers.utils.parseEther('1') })
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: [ usdcHolderAddr ]
})
const usdcHolder = ethers.provider.getSigner(usdcHolderAddr)
const usdcContract = new ethers.Contract(usdc, erc20Abi, usdcHolder)
await usdcContract.transfer(migrator.address, ethers.utils.parseUnits('1000000', 6))
const usdtHolderAddr = '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503' // 1,000,000
await accounts[0].sendTransaction({ to: usdtHolderAddr, value: ethers.utils.parseEther('1') })
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: [ usdtHolderAddr ]
})
const usdtHolder = ethers.provider.getSigner(usdtHolderAddr)
const usdtContract = new ethers.Contract(usdt, erc20Abi, usdtHolder)
await usdtContract.transfer(migrator.address, ethers.utils.parseUnits('1000000', 6))
const daiHolderAddr = '0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503' // 1,000,000
await accounts[0].sendTransaction({ to: daiHolderAddr, value: ethers.utils.parseEther('1') })
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: [ daiHolderAddr ]
})
const daiHolder = ethers.provider.getSigner(daiHolderAddr)
const daiContract = new ethers.Contract(dai, erc20Abi, daiHolder)
await daiContract.transfer(migrator.address, ethers.utils.parseUnits('1000000', 18))
const wbtcHolderAddr = '0xf977814e90da44bfa03b6295a0616a897441acec' // 16
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: [ wbtcHolderAddr ]
})
const wbtcHolder = ethers.provider.getSigner(wbtcHolderAddr)
const wbtcContract = new ethers.Contract(wbtc, erc20Abi, wbtcHolder)
await wbtcContract.transfer(migrator.address, ethers.utils.parseUnits('16', 8))
const wethHolderAddr = '0x0f4ee9631f4be0a63756515141281a3e2b293bbe' // 500
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: [ wethHolderAddr ]
})
const wethHolder = ethers.provider.getSigner(wethHolderAddr)
const wethContract = new ethers.Contract(weth, erc20Abi, wethHolder)
await wethContract.transfer(migrator.address, ethers.utils.parseUnits('500', 18))
ethereum = network.provider
})
@ -39,4 +93,27 @@ describe("Migrator", function() {
const isUsdc = await migrator.isSupportedToken(usdc)
expect(isUsdc).to.be.true;
})
it("test migrate", async function() {
const sourceAddr = '0x42c7788dd1cef71cf04ae4d6bca37d129c27e001'
const rawData = {
targetDsa: sourceAddr,
supplyTokens: [eth],
borrowTokens: [usdc],
supplyAmts: [ethers.utils.parseEther('20')],
variableBorrowAmts: [ethers.utils.parseUnits('10000', 6)],
stableBorrowAmts: [ethers.utils.parseUnits('10000', 6)]
}
await hre.network.provider.request({
method: "hardhat_impersonateAccount",
params: [ sourceAddr ]
})
const signer = ethers.provider.getSigner(sourceAddr)
const tx = await migrator.connect(signer).migrate(rawData)
const receipt = await tx.wait()
console.log(receipt)
})
})