import { ContractType as e } from "../types/ethereum-network.types.mjs";
import { safeJsonStringify as t } from "../functions/utils/serialize.utils.mjs";
import { getNonLocalhostChainId as n, networkRegistry as r } from "./chains.constants.mjs";
import i from "../externalABIs/ERC20.json.mjs";
import a from "../externalABIs/IQuoterV2.json.mjs";
import o from "../externalABIs/IUniswapV3Factory.json.mjs";
import { ERC1155ABI as s, ERC721ABI as c } from "../externalABIs/index.mjs";
import l from "../externalABIs/IUniswapV3Pool.json.mjs";
import u from "../externalABIs/UniswapV2PoolAbi.json.mjs";
import { ethers as d } from "ethers";
//#region libs/shared/common/src/constants/contracts.constants.ts
var f = { abi: o.abi }, p = { abi: l.abi }, m = { abi: u.abi }, h = { abi: a.abi }, g = {
	[e.HinkalContract]: (e) => ({
		abi: e.hinkalABI,
		address: e.hinkalAddress
	}),
	[e.HinkalHelperContract]: (e) => ({
		abi: e.hinkalHelperABI,
		address: e.hinkalHelperAddress
	}),
	[e.MerkleTreeContract]: () => ({ abi: ["function getRootHash() public view returns (uint256)"] }),
	[e.UniswapV3FactoryContract]: () => ({ abi: f.abi }),
	[e.UniswapV3PoolContract]: () => ({ abi: p.abi }),
	[e.UniswapV2PoolContract]: () => ({ abi: m.abi }),
	[e.UniswapV3QuoterContract]: () => ({ abi: h.abi }),
	[e.ERC20Contract]: () => ({ abi: i.abi }),
	[e.ERC721Contract]: () => ({ abi: c }),
	[e.ERC1155Contract]: () => ({ abi: s }),
	[e.WATokenContract]: (e) => ({ abi: e.waTokenABI }),
	[e.ContractWithNonces]: () => ({ abi: ["function nonces(address owner) external view returns (uint)"] }),
	[e.PermitterContract]: (e) => ({
		abi: e.permitterABI,
		address: e.permitterAddress
	}),
	[e.OneInchExternalActionContract]: (e) => ({ address: e.oneInchExternalActionInstanceAddress }),
	[e.HinkalWrapper]: (e) => ({
		abi: e.hinkalWrapperABI,
		address: e.hinkalWrapperAddress
	}),
	[e.HinkalWrapper2]: (e) => ({
		abi: e.HinkalWrapper2ABI ?? e.hinkalWrapperABI,
		address: e.hinkalWrapper2Address ?? e.hinkalWrapperAddress
	}),
	[e.DepositOnChainUtxos]: (e) => ({
		abi: e.depositOnChainUtxosExternalActionABI,
		address: e.depositOnChainUtxosExternalActionAddress
	})
}, _ = (e) => {
	let { contractData: i } = r[n(e)], a = t(i.hinkalABI), o = new d.Interface(a);
	return {
		hinkalInterface: o,
		transactMethodId: o.getFunction("transact")?.selector,
		transactWithExternalActionMethodId: o.getFunction("transactWithExternalAction")?.selector,
		NewCommitment: "NewCommitment",
		NewCommitmentTopic: "0xc2e3bd2d00c3cf4d09298e5a0cfd317cf7a6e5bf15d467cfa805a91e1a4a221d"
	};
};
//#endregion
export { g as contractMetadataMapping, _ as getHinkalParameters, m as uniswapV2PoolData, f as uniswapV3FactoryData, p as uniswapV3PoolData, h as uniswapV3QuoterData };
