Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ docs/
# Dotenv file
.env

.DS_Store
.DS_Store

anvil.log
128 changes: 128 additions & 0 deletions broadcast/Droplet.s.sol/8453/run-1747418548.json

Large diffs are not rendered by default.

128 changes: 128 additions & 0 deletions broadcast/Droplet.s.sol/8453/run-latest.json

Large diffs are not rendered by default.

56 changes: 56 additions & 0 deletions broadcast/Pool.s.sol/8453/run-1747417305.json

Large diffs are not rendered by default.

56 changes: 56 additions & 0 deletions broadcast/Pool.s.sol/8453/run-1747417367.json

Large diffs are not rendered by default.

143 changes: 143 additions & 0 deletions broadcast/Pool.s.sol/8453/run-1747417394.json

Large diffs are not rendered by default.

150 changes: 150 additions & 0 deletions broadcast/Pool.s.sol/8453/run-1747417978.json

Large diffs are not rendered by default.

125 changes: 61 additions & 64 deletions broadcast/Pool.s.sol/8453/run-latest.json

Large diffs are not rendered by default.

96 changes: 96 additions & 0 deletions broadcast/Pool.s.sol/84532/run-1747417548.json

Large diffs are not rendered by default.

271 changes: 271 additions & 0 deletions broadcast/Pool.s.sol/84532/run-1747417739.json

Large diffs are not rendered by default.

269 changes: 236 additions & 33 deletions broadcast/Pool.s.sol/84532/run-latest.json

Large diffs are not rendered by default.

30 changes: 30 additions & 0 deletions script/Droplet.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.30;

import {Script, console} from "forge-std/Script.sol";
import {Droplet} from "../src/mock/MockERC20.sol";

contract DropletScript is Script {
Droplet public token;

function setUp() public {}

function run() public {
uint256 deployerPrivateKey;
try vm.envUint("PRIVATE_KEY") returns (uint256 key) {
deployerPrivateKey = key;
} catch {
revert("Please set the PRIVATE_KEY environment variable");
}

vm.startBroadcast(deployerPrivateKey);

// Deploy the Droplet token
token = new Droplet();

// Initial mint to deployer
token.mint(vm.addr(deployerPrivateKey), 1000000e18);

vm.stopBroadcast();
}
}
35 changes: 32 additions & 3 deletions script/Pool.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,40 @@ contract PoolScript is Script {
Droplet public token;
IERC20 public usdc;

// Token addresses for different networks
address constant USDC_BASE_MAINNET = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913;

function setUp() public {}

function run() public {
vm.startBroadcast(vm.envUint("PRIVATE_KEY"));
uint256 deployerPrivateKey;
try vm.envUint("PRIVATE_KEY") returns (uint256 key) {
deployerPrivateKey = key;
} catch {
revert("Please set the PRIVATE_KEY environment variable");
}

vm.startBroadcast(deployerPrivateKey);

// Deploy the Pool contract
pool = new Pool();
usdc = IERC20(0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913);

// Get the chain ID
uint256 chainId = block.chainid;

// Handle token setup based on network
if (chainId == 8453) { // Base Mainnet
usdc = IERC20(USDC_BASE_MAINNET);
} else { // Sepolia or Local
// Deploy a mock token for testing
token = new Droplet();
usdc = IERC20(address(token));

// Mint some tokens to the deployer for testing
token.mint(vm.addr(deployerPrivateKey), 1000000e18);
}

// Create the pool
pool.createPool(
uint40(block.timestamp + 2 days),
uint40(block.timestamp + 2 days + 6 hours),
Expand All @@ -26,11 +54,12 @@ contract PoolScript is Script {
1,
1000
);

vm.stopBroadcast();
}

function run_withMock() public {
vm.startBroadcast(vm.envUint("PRIVATE_KEY"));
vm.startBroadcast(msg.sender);
pool = new Pool();
token = new Droplet();
vm.stopBroadcast();
Expand Down