create_pool_from_prices uses generated ABI

This commit is contained in:
tim
2025-11-17 12:37:15 -04:00
parent c905217004
commit d5c40b9667
3 changed files with 131 additions and 61 deletions

View File

@@ -6,47 +6,7 @@
import { ethers } from 'ethers';
import { readFile } from 'fs/promises';
// ============================================================================
// LOAD ABIs AND CONFIG
// ============================================================================
// Load chain info and get PartyPlanner address (chain ID 31337 = Anvil)
const chainInfoData = JSON.parse(await readFile(new URL('../src/contracts/liqp-deployments.json', import.meta.url), 'utf-8'));
const PARTY_PLANNER_ADDRESS = chainInfoData['31337'].v1.PartyPlanner;
// Minimal ABIs needed for this script
const IPartyPlannerABI = [
{
"type": "function",
"name": "newPool",
"inputs": [
{ "name": "name", "type": "string", "internalType": "string" },
{ "name": "symbol", "type": "string", "internalType": "string" },
{ "name": "tokens", "type": "address[]", "internalType": "contract IERC20[]" },
{ "name": "kappa", "type": "int128", "internalType": "int128" },
{ "name": "swapFeePpm", "type": "uint256", "internalType": "uint256" },
{ "name": "flashFeePpm", "type": "uint256", "internalType": "uint256" },
{ "name": "stable", "type": "bool", "internalType": "bool" },
{ "name": "payer", "type": "address", "internalType": "address" },
{ "name": "receiver", "type": "address", "internalType": "address" },
{ "name": "initialDeposits", "type": "uint256[]", "internalType": "uint256[]" },
{ "name": "initialLpAmount", "type": "uint256", "internalType": "uint256" },
{ "name": "deadline", "type": "uint256", "internalType": "uint256" }
],
"outputs": [
{ "name": "pool", "type": "address", "internalType": "contract IPartyPool" },
{ "name": "lpAmount", "type": "uint256", "internalType": "uint256" }
],
"stateMutability": "nonpayable"
}
];
const ERC20ABI = [
{ "type": "function", "name": "balanceOf", "stateMutability": "view", "inputs": [{ "name": "account", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }] },
{ "type": "function", "name": "decimals", "stateMutability": "view", "inputs": [], "outputs": [{ "name": "", "type": "uint8" }] },
{ "type": "function", "name": "approve", "stateMutability": "nonpayable", "inputs": [{ "name": "spender", "type": "address" }, { "name": "amount", "type": "uint256" }], "outputs": [{ "name": "", "type": "bool" }] }
];
import IPartyPlannerABI from "../src/contracts/IPartyPlannerABI.ts";
// ============================================================================
// CONFIGURATION
@@ -93,6 +53,22 @@ const DEFAULT_POOL_PARAMS = {
// Input amount in USD
const INPUT_USD_AMOUNT = 100;
// ============================================================================
// LOAD ABIs AND CONFIG
// ============================================================================
// Load chain info and get PartyPlanner address (chain ID 31337 = Anvil)
const chainInfoData = JSON.parse(await readFile(new URL('../src/contracts/liqp-deployments.json', import.meta.url), 'utf-8'));
const PARTY_PLANNER_ADDRESS = chainInfoData['31337'].v1.PartyPlanner;
const ERC20ABI = [
{ "type": "function", "name": "balanceOf", "stateMutability": "view", "inputs": [{ "name": "account", "type": "address" }], "outputs": [{ "name": "", "type": "uint256" }] },
{ "type": "function", "name": "decimals", "stateMutability": "view", "inputs": [], "outputs": [{ "name": "", "type": "uint8" }] },
{ "type": "function", "name": "approve", "stateMutability": "nonpayable", "inputs": [{ "name": "spender", "type": "address" }, { "name": "amount", "type": "uint256" }], "outputs": [{ "name": "", "type": "bool" }] }
];
// ============================================================================
// HELPER FUNCTIONS
// ============================================================================