Skip to content

Commit

Permalink
misc: dry-run
Browse files Browse the repository at this point in the history
  • Loading branch information
fxp3 committed Mar 20, 2024
1 parent 8776371 commit fc54cb6
Show file tree
Hide file tree
Showing 5 changed files with 314 additions and 9 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,4 @@ packages/contracts/src/types/**/*
.openzeppelin/unknown-*.json
.openzeppelin/.session
anvil-config.json
docs/test-report
234 changes: 234 additions & 0 deletions out/foundry/deploy/42161/execWith-latest.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions out/foundry/deploy/42161/krBTC-deployment-latest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"akrBTC":{"address":"0xc67a33599f73928D24D32fC0015e187157233410","ctor":"0x00000000000000000000000011ef4ecf3ff1c8db291bc3259f3a4aac6e4d2325","implementation":"0x880C665817384226FcF3db1F13F5f0b5a2488e3a","initializer":"0x000000000000000000000000880c665817384226fcf3db1f13f5f0b5a2488e3a000000000000000000000000000000000070ab95211e32fda3b706589d3482d500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000104613d25bb00000000000000000000000011ef4ecf3ff1c8db291bc3259f3a4aac6e4d2325000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000266489bde85ff0dfe1ebf9f0a7e6fed3a973cec3000000000000000000000000000000000000000000000000000000000000001c4b7265736b6f20417373657420416e63686f723a20426974636f696e000000000000000000000000000000000000000000000000000000000000000000000006616b72425443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"krBTC":{"address":"0x11EF4EcF3ff1c8dB291bc3259f3A4aAC6e4d2325","implementation":"0xF26D1DE3fc1B68B3Cd65343C728f52ae03a937f5","initializer":"0x000000000000000000000000f26d1de3fc1b68b3cd65343c728f52ae03a937f5000000000000000000000000000000000070ab95211e32fda3b706589d3482d5000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a471206626000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000012000000000000000000000000266489bde85ff0dfe1ebf9f0a7e6fed3a973cec30000000000000000000000000000000000177abd99485dcaea3efaa91db3fe720000000000000000000000002f2a2543b76a4166549f7aab2e75bef0aefc5b0f000000000000000000000000266489bde85ff0dfe1ebf9f0a7e6fed3a973cec300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000f4b7265736b6f3a20426974636f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056b7242544300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}}
12 changes: 8 additions & 4 deletions src/contracts/scripts/ArbTask.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,20 @@ contract ArbTask is ArbScript {
LibDeploy.writeOutputJSON();
}

function execWith(address sender) external {
broadcastWith(sender);
function execWith() external fork("arbitrum") {
broadcastWith(safe);
JSON.Config memory json = beforeRun();
addKrAsset(json, "krBTC");
(Asset memory krBTC, LibDeploy.DeployedKrAsset memory deployInfo) = addKrAsset(json, "krBTC");

executeParams(deployInfo.addr);
Asset memory arb = addExtAsset(json, "ARB");
}

function executeParams(address krBTCAddr) public {
vault.setMaxDeposits(USDCAddr, 100_000e6);
vault.setMaxDeposits(USDCeAddr, 100_000e8);
vault.setMaxDeposits(USDCeAddr, 100_000e6);
ParamPayload payload = new ParamPayload(address(krBTCAddr));
address(payload).clg("Payload Address");
IExtendedDiamondCutFacet(kreskoAddr).executeInitializer(address(payload), abi.encodeCall(payload.executePayload, ()));
}

Expand Down
75 changes: 70 additions & 5 deletions src/contracts/test/ArbTest.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {ParamPayload} from "scripts/ParamPayload.sol";
import {LibDeploy} from "scripts/deploy/libs/LibDeploy.s.sol";
import {IKreskoAsset} from "kresko-asset/IKreskoAsset.sol";
import {IKreskoAssetAnchor} from "kresko-asset/IKreskoAssetAnchor.sol";
import {BurnArgs, MintArgs} from "common/Args.sol";
import {BurnArgs, MintArgs, SwapArgs} from "common/Args.sol";
import {JSON} from "scripts/deploy/libs/LibJSON.s.sol";
import {toWad} from "common/funcs/Math.sol";
import {IExtendedDiamondCutFacet} from "diamond/interfaces/IDiamondCutFacet.sol";
Expand All @@ -36,6 +36,7 @@ contract ArbTaskTest is Tested, ArbTask {

JSON.Config memory json = ArbTask.beforeRun();
(Asset memory krBTCCfg, LibDeploy.DeployedKrAsset memory deployment) = ArbTask.addKrAsset(json, "krBTC");
ArbTask.executeParams(deployment.addr);
Asset memory ARBCfg = ArbTask.addExtAsset(json, "ARB");

krBTCResult = krBTCCfg;
Expand All @@ -49,24 +50,88 @@ contract ArbTaskTest is Tested, ArbTask {

prank(binance);
approvals();
krBTC.approve(address(kresko), type(uint256).max);

prank(wbtcHolder);
approvals();
krBTC.approve(address(kresko), type(uint256).max);
WBTC.approve(address(krBTC), type(uint256).max);
}

function test_paramPayload() public {
prank(safe);
executeParams(address(krBTC));
kresko.getSwapEnabledSCDP(address(krBTC), kissAddr).eq(true, "krBTC-swap-enabled");
kresko.getSwapEnabledSCDP(kissAddr, address(krBTC)).eq(true, "kiss-swap-enabled");

kresko.getSwapEnabledSCDP(krETHAddr, address(krBTC)).eq(true, "krETH-BTC-swap-enabled");
kresko.getSwapEnabledSCDP(address(krBTC), krETHAddr).eq(true, "krBTC-ETH-swap-enabled");
vault.maxDeposit(USDCAddr).eq(100000e6 - USDC.balanceOf(vaultAddr), "USDC-max-deposit");
vault.maxDeposit(USDCeAddr).eq(100000e6 - USDCe.balanceOf(vaultAddr), "USDCe-max-deposit");

prank(binance);
getKISSM(binance, 50000 ether);
kresko.depositSCDP(binance, kissAddr, 50000 ether);
uint256 kissAmount = 50000 ether;
getKISSM(binance, kissAmount);

uint256 kissDepositAmount = 40000 ether;
kresko.depositSCDP(binance, kissAddr, kissDepositAmount);

uint256 kissSwapAmount = kissAmount - kissDepositAmount;
kresko.swapSCDP(
SwapArgs({
receiver: binance,
assetIn: kissAddr,
assetOut: address(krBTC),
amountIn: kissSwapAmount,
amountOutMin: 0,
prices: pythUpdate
})
);
uint256 krBTCbal = krBTC.balanceOf(binance);
krBTCbal.gt(0, "1-krBTC-balance");
kresko.getDebtSCDP(address(krBTC)).eq(krBTCbal, "1-krBTC-debt");
kresko.swapSCDP(
SwapArgs({
receiver: binance,
assetIn: address(krBTC),
assetOut: krETHAddr,
amountIn: krBTCbal,
amountOutMin: 0,
prices: pythUpdate
})
);

uint256 krETHbal = krETH.balanceOf(binance);
krETHbal.gt(0, "2-krETH-balance");
kresko.getDebtSCDP(address(krBTC)).eq(0, "2-krBTC-debt");
kresko.swapSCDP(
SwapArgs({
receiver: binance,
assetIn: krETHAddr,
amountIn: krETHbal,
assetOut: address(krBTC),
amountOutMin: 0,
prices: pythUpdate
})
);

krBTCbal = krBTC.balanceOf(binance);
krBTCbal.gt(0, "3-krBTC-balance");
kresko.getDebtSCDP(address(krBTC)).eq(krBTCbal, "3-krBTC-debt");
kresko.swapSCDP(
SwapArgs({
receiver: binance,
assetIn: address(krBTC),
assetOut: kissAddr,
amountIn: krBTCbal,
amountOutMin: 0,
prices: pythUpdate
})
);

uint256 kissBalAfter = kiss.balanceOf(binance);
kissBalAfter.gt(0, "4-kiss-balance-zero");
kissBalAfter.lt(kissSwapAmount, "4-KISS-balance-lt-start");
kresko.getDebtSCDP(address(krBTC)).eq(0, "4-krBTC-debt");
krBTC.totalSupply().eq(0, "4-krBTC-total-supply");
}

function test_krBTCMinter() public pranked(binance) {
Expand Down

0 comments on commit fc54cb6

Please sign in to comment.