Skip to content

Commit

Permalink
async abi imports
Browse files Browse the repository at this point in the history
  • Loading branch information
olegkron committed Nov 12, 2024
1 parent b4e748d commit dd3cfb2
Show file tree
Hide file tree
Showing 12 changed files with 44 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,29 @@ import { findEventLog } from "./findCLFRequestProcessedLog";
import functionsRouterAbi from "@chainlink/contracts/abi/v0.8/FunctionsRouter.json";
import functionsCoordinatorAbi from "@chainlink/contracts/abi/v0.8/FunctionsCoordinator.json";
import { getDecodedEventByTxReceipt } from "./getDecodedEventByTxReceipt";
import { abi as conceroBridgeAbi } from "../../../artifacts/contracts/ConceroBridge.sol/ConceroBridge.json";
import { DecodeEventLogReturnType } from "viem/utils/abi/decodeEventLog";
import { getCLFFeesTaken } from "./getCLFFeesTaken";
import { displayResults } from "./displayResults";
import { fetchPriceFeeds } from "./fetchPriceFeeds";
import fs from "fs";
import { getChainById } from "../../../utils/getChainBySelector";
import { analyseTxOutputFile } from "./analyseTxOutputFile";

/*
Todos:
1. Find src CLF callback to get CLF LINK final cost on src
2. Use dsttx to get gas paid by messenger EOA for addUnconfirmedTx
3. Find dst CLF callback to get CLF LINK final cost and gas used on dst
*/

const oracleRequestEventABI = getAbiItem({ abi: functionsCoordinatorAbi, name: "OracleRequest" });
const unconfirmedTXSentEventABI = getAbiItem({ abi: conceroBridgeAbi, name: "UnconfirmedTXSent" });
const requestProcessedEventAbi = getAbiItem({ abi: functionsRouterAbi, name: "RequestProcessed" });
const unconfirmedTXAddedEventAbi = getAbiItem({ abi: conceroBridgeAbi, name: "UnconfirmedTXAdded" });

export async function getSwapAndBridgeCost(srctx: Hash, dsttx: Hash, srcChain: CNetwork) {
const { abi: conceroBridgeAbi } = await import("../../../artifacts/contracts/ConceroBridge.sol/ConceroBridge.json");

const oracleRequestEventABI = getAbiItem({ abi: functionsCoordinatorAbi, name: "OracleRequest" });
const unconfirmedTXSentEventABI = getAbiItem({ abi: conceroBridgeAbi, name: "UnconfirmedTXSent" });
const requestProcessedEventAbi = getAbiItem({ abi: functionsRouterAbi, name: "RequestProcessed" });
const unconfirmedTXAddedEventAbi = getAbiItem({ abi: conceroBridgeAbi, name: "UnconfirmedTXAdded" });

const { publicClient: srcPublicClient } = getFallbackClients(srcChain);
const [srcTx, srcTxReceipt] = await Promise.all([
srcPublicClient.getTransaction({ hash: srctx }),
Expand Down
5 changes: 3 additions & 2 deletions packages/hardhat/test/CompleteWithdrawal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { privateKeyToAccount } from "viem/accounts";
import { Address, createPublicClient, createWalletClient, PrivateKeyAccount } from "viem";
import { PublicClient } from "viem/clients/createPublicClient";
import { approve } from "./utils/approve";
import { abi as ParentPoolAbi } from "../artifacts/contracts/ConceroParentPool.sol/ConceroParentPool.json";
import { chainsMap } from "./utils/chainsMap";

const srcChainSelector = process.env.CL_CCIP_CHAIN_SELECTOR_BASE_SEPOLIA;
Expand All @@ -18,8 +17,10 @@ const lpAmount = "100000000000000000";
const lpTokenAddress = process.env.LPTOKEN_BASE_SEPOLIA as Address;
const poolAddress = process.env.PARENT_POOL_PROXY_BASE_SEPOLIA as Address;

describe("complete withdraw usdc from pool\n", () => {
describe("complete withdraw usdc from pool\n", async () => {
let Concero: Concero;
const { abi: ParentPoolAbi } = await import("../artifacts/contracts/ParentPool.sol/ParentPool.json");

let srcPublicClient: PublicClient<HttpTransport, Chain, Account, RpcSchema> = createPublicClient({
chain: chainsMap[srcChainSelector].viemChain,
transport: chainsMap[srcChainSelector].viemTransport,
Expand Down
5 changes: 3 additions & 2 deletions packages/hardhat/test/DepositUsdcToPool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ import { privateKeyToAccount } from "viem/accounts";
import { Address, createPublicClient, createWalletClient, PrivateKeyAccount } from "viem";
import { PublicClient } from "viem/clients/createPublicClient";
import { approve } from "./utils/approve";
import { abi as ParentPoolAbi } from "../artifacts/contracts/ParentPool.sol/ParentPool.json";
import { chainsMap } from "./utils/chainsMap";

const srcChainSelector = process.env.CL_CCIP_CHAIN_SELECTOR_BASE;
const usdcAmount = "1900000000"; // 1900 USDC
const usdcTokenAddress = process.env.USDC_BASE as Address;
const poolAddress = process.env.PARENT_POOL_PROXY_BASE as Address;

describe("deposit usdc to pool\n", () => {
describe("deposit usdc to pool\n", async () => {
const { abi: ParentPoolAbi } = await import("../artifacts/contracts/ParentPool.sol/ParentPool.json");

let srcPublicClient: PublicClient<HttpTransport, Chain, Account, RpcSchema> = createPublicClient({
chain: chainsMap[srcChainSelector].viemChain,
transport: chainsMap[srcChainSelector].viemTransport,
Expand Down
5 changes: 4 additions & 1 deletion packages/hardhat/test/DexSwap.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import "@nomicfoundation/hardhat-chai-matchers";
import { encodeAbiParameters, formatUnits } from "viem";
import ERC20ABI from "../abi/ERC20.json";
import { abi as ConceroOrchestratorAbi } from "../artifacts/contracts/Orchestrator.sol/Orchestrator.json";
import { getFallbackClients } from "../utils";
import { conceroNetworks } from "../constants/conceroNetworks";
import log from "../utils/log";
Expand Down Expand Up @@ -69,6 +68,10 @@ describe("swap", () => {

it("should swap", async () => {
try {
const { abi: ConceroOrchestratorAbi } = await import(
"../artifacts/contracts/InfraOrchestrator.sol/InfraOrchestrator.json"
);

await approveToken(publicClient, walletClient, srcTokenAddress, srcTokenAmount);

const dexData = encodeAbiParameters(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ import type { Account } from "viem/accounts/types";
import { RpcSchema } from "viem/types/eip1193";
import { Address, createPublicClient } from "viem";
import { PublicClient } from "viem/clients/createPublicClient";
import { abi as ParentPoolAbi } from "../artifacts/contracts/ParentPool.sol/ParentPool.json";
import { chainsMap } from "./utils/chainsMap";

const srcChainSelector = process.env.CL_CCIP_CHAIN_SELECTOR_BASE_SEPOLIA;
const poolAddress = process.env.PARENT_POOL_PROXY_BASE_SEPOLIA as Address;

describe("calculate withdrawable amount from pools\n", () => {
describe("calculate withdrawable amount from pools\n", async () => {
const { abi: ParentPoolAbi } = await import("../artifacts/contracts/ParentPool.sol/ParentPool.json");

const publicClient: PublicClient<HttpTransport, Chain, Account, RpcSchema> = createPublicClient({
chain: chainsMap[srcChainSelector].viemChain,
transport: chainsMap[srcChainSelector].viemTransport,
Expand Down
9 changes: 6 additions & 3 deletions packages/hardhat/test/StartTransaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import { Address, createPublicClient, createWalletClient, decodeEventLog, http,
import { arbitrumSepolia, base, baseSepolia, optimismSepolia, polygon, polygonAmoy } from "viem/chains";
import ERC20ABI from "../abi/ERC20.json";
import { PublicClient } from "viem/clients/createPublicClient";
import { abi as ConceroAbi } from "../artifacts/contracts/Concero.sol/Concero.json";
import { abi as ConceroOrchestratorAbi } from "../artifacts/contracts/Orchestrator.sol/Orchestrator.json";

const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));

Expand Down Expand Up @@ -54,7 +52,12 @@ const transactionsCount = 1;
const srcContractAddress = process.env.CONCERO_PROXY_POLYGON;
const dstContractAddress = process.env.CONCERO_PROXY_BASE;

describe("startBatchTransactions\n", () => {
describe("startBatchTransactions\n", async () => {
const { abi: ConceroAbi } = await import("../artifacts/contracts/ConceroBridge.sol/ConceroBridge.json");
const { abi: ConceroOrchestratorAbi } = await import(
"../artifacts/contracts/InfraOrchestrator.sol/InfraOrchestrator.json"
);

let Concero: Concero;
let srcPublicClient: PublicClient<HttpTransport, Chain, Account, RpcSchema> = createPublicClient({
chain: chainsMap[srcChainSelector].viemChain,
Expand Down
1 change: 0 additions & 1 deletion packages/hardhat/test/WithdrawPoolUsdc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import { RpcSchema } from "viem/types/eip1193";
import { privateKeyToAccount } from "viem/accounts";
import { Address, createPublicClient, createWalletClient, PrivateKeyAccount } from "viem";
import { PublicClient } from "viem/clients/createPublicClient";
import { abi as ParentPoolAbi } from "../artifacts/contracts/ParentPool.sol/ParentPool.json";
import { chainsMap } from "./utils/chainsMap";

const srcChainSelector = process.env.CL_CCIP_CHAIN_SELECTOR_BASE;
Expand Down
5 changes: 4 additions & 1 deletion packages/hardhat/test/testBase/bridgeBase.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { approve } from "../utils/approve";
import { abi as ConceroOrchestratorAbi } from "../../artifacts/contracts/Orchestrator.sol/Orchestrator.json";

export interface IBridgeBase {
srcTokenAddress: string;
Expand All @@ -20,6 +19,10 @@ export async function bridgeBase({
walletClient,
publicClient,
}: IBridgeBase) {
const { abi: ConceroOrchestratorAbi } = await import(
"../../artifacts/contracts/InfraOrchestrator.sol/InfraOrchestrator.json"
);

await approve(srcTokenAddress, srcContractAddress, srcTokenAmount, walletClient, publicClient);

const bridgeData = {
Expand Down
6 changes: 4 additions & 2 deletions packages/hardhat/test/testnet/ParentPoolCompleteWithdraw.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import "@nomicfoundation/hardhat-chai-matchers";
import { abi as ParentPoolAbi } from "../../artifacts/contracts/ParentPool.sol/ParentPool.json";

import { getFallbackClients } from "../../utils";
import { conceroNetworks } from "../../constants";

const parentPool = process.env.PARENT_POOL_PROXY_BASE_SEPOLIA;

describe("complete withdraw from parent pool\n", () => {
describe("complete withdraw from parent pool\n", async () => {
const { abi: ParentPoolAbi } = await import("../../artifacts/contracts/ParentPool.sol/ParentPool.json");

const { walletClient, publicClient } = getFallbackClients(conceroNetworks.baseSepolia);

it("should retry withdraw from automation", async () => {
Expand Down
5 changes: 3 additions & 2 deletions packages/hardhat/test/testnet/ParentPoolRetryWithdraw.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import "@nomicfoundation/hardhat-chai-matchers";
import { Address } from "viem";
import { abi as ParentPoolAbi } from "../../artifacts/contracts/ParentPool.sol/ParentPool.json";
import { getFallbackClients } from "../../utils";
import { conceroNetworks } from "../../constants";

const parentPoolAddress = process.env.PARENT_POOL_PROXY_BASE_SEPOLIA as Address;

describe("start deposit usdc to parent pool\n", () => {
describe("start deposit usdc to parent pool\n", async () => {
const { abi: ParentPoolAbi } = await import("../../artifacts/contracts/ParentPool.sol/ParentPool.json");

const { walletClient, publicClient } = getFallbackClients(conceroNetworks.baseSepolia);

it("should retry withdraw from automation", async () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import "@nomicfoundation/hardhat-chai-matchers";
import { Address, decodeEventLog, parseUnits } from "viem";
import { abi as ParentPoolAbi } from "../../artifacts/contracts/ParentPool.sol/ParentPool.json";
import { approve } from "../utils/approve";
import { getFallbackClients } from "../../utils";
import { conceroNetworks } from "../../constants";
Expand All @@ -9,7 +8,9 @@ const usdcAmount = parseUnits("4", 6);
const usdcTokenAddress = process.env.USDC_BASE_SEPOLIA as Address;
const poolAddress = process.env.PARENT_POOL_PROXY_BASE_SEPOLIA as Address;

describe("start deposit usdc to parent pool\n", () => {
describe("start deposit usdc to parent pool\n", async () => {
const { abi: ParentPoolAbi } = await import("../../artifacts/contracts/ParentPool.sol/ParentPool.json");

const { walletClient, publicClient } = getFallbackClients(conceroNetworks.baseSepolia);

it("should deposit usdc to pool", async () => {
Expand Down
5 changes: 3 additions & 2 deletions packages/hardhat/test/testnet/ParentPoolStartWithdrawal.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import "@nomicfoundation/hardhat-chai-matchers";
import { Address, parseUnits } from "viem";
import { abi as ParentPoolAbi } from "../../artifacts/contracts/ParentPool.sol/ParentPool.json";
import { approve } from "../utils/approve";
import { getFallbackClients } from "../../utils";
import { conceroNetworks } from "../../constants";
Expand All @@ -10,7 +9,9 @@ const lpAmount = parseUnits("1", 18);
const lpTokenAddress = process.env.LPTOKEN_BASE_SEPOLIA;
const poolAddress = process.env.PARENT_POOL_PROXY_BASE_SEPOLIA;

describe("start withdrawal usdc from parent pool\n", () => {
describe("start withdrawal usdc from parent pool\n", async () => {
const { abi: ParentPoolAbi } = await import("../../artifacts/contracts/ParentPool.sol/ParentPool.json");

const { walletClient, publicClient } = getFallbackClients(fromChain);

it("should start withdraw usdc from pool", async () => {
Expand Down

0 comments on commit dd3cfb2

Please sign in to comment.