37 lines
2 KiB
Solidity
37 lines
2 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.24;
|
|
|
|
import {Vm, VM_ADDRESS} from "../test/Vm.sol";
|
|
import {TestToken} from "../src/TestToken.sol";
|
|
import {IgneumRouter} from "../src/IgneumRouter.sol";
|
|
|
|
/// Seeds the three pools of an already deployed AMM (the addresses from the environment): a drip of each test
|
|
/// token, approvals, 100 IGN beside 500 TTA, 100 IGN beside 500 TTB, 500 TTA beside 500 TTB. Run with
|
|
/// --skip-simulation so every gas limit comes from the node's own eth_estimateGas: Devnet 3 charges the proving
|
|
/// dimension inside the execution gas, so Foundry's local estimate runs out (8 October 2026, drip() at 133,603 gas:
|
|
/// out of gas; the node's estimate 685,513).
|
|
///
|
|
/// DEX_TTA=0x.. DEX_TTB=0x.. DEX_ROUTER=0x.. forge script script/Seed.s.sol:Seed --rpc-url devnet3 --broadcast --slow --skip-simulation --sig "run()"
|
|
///
|
|
/// Devnet 3, test tokens, no value.
|
|
contract Seed {
|
|
Vm constant vm = Vm(VM_ADDRESS);
|
|
|
|
function run() external {
|
|
uint256 key = vm.envUint("DEX_DEPLOYER_KEY");
|
|
address deployer = vm.addr(key);
|
|
TestToken tta = TestToken(vm.envAddress("DEX_TTA"));
|
|
TestToken ttb = TestToken(vm.envAddress("DEX_TTB"));
|
|
IgneumRouter router = IgneumRouter(payable(vm.envAddress("DEX_ROUTER")));
|
|
vm.startBroadcast(key);
|
|
if (tta.dripWait(deployer) == 0 && tta.balanceOf(deployer) < 1_000 ether) tta.drip();
|
|
if (ttb.dripWait(deployer) == 0 && ttb.balanceOf(deployer) < 1_000 ether) ttb.drip();
|
|
tta.approve(address(router), type(uint256).max);
|
|
ttb.approve(address(router), type(uint256).max);
|
|
uint256 deadline = block.timestamp + 1 hours;
|
|
router.addLiquidityIGN{value: 100 ether}(address(tta), 500 ether, 0, 0, deployer, deadline);
|
|
router.addLiquidityIGN{value: 100 ether}(address(ttb), 500 ether, 0, 0, deployer, deadline);
|
|
router.addLiquidity(address(tta), address(ttb), 500 ether, 500 ether, 0, 0, deployer, deadline);
|
|
vm.stopBroadcast();
|
|
}
|
|
}
|