import { ERC20ABI as e, ISwapRouterABI as t } from "../../externalABIs/index.mjs";
import { emporiumOp as n } from "./emporium.helpers.mjs";
import { ethers as r } from "ethers";
//#region libs/shared/common/src/functions/private-wallet/opProducer.ts
var i = /* @__PURE__ */ function(e) {
	return e[e.Erc20Token = 0] = "Erc20Token", e[e.Uniswap = 1] = "Uniswap", e;
}({}), a = (a, o, s, c, l, u) => {
	let d = [];
	switch (a) {
		case i.Erc20Token:
			d = e;
			break;
		case i.Uniswap:
			d = t;
			break;
		default: break;
	}
	if (!d) throw Error("No ABI match in produceOp");
	return n({
		contract: new r.Contract(o, d),
		func: s,
		args: c,
		invokeWallet: l,
		value: u
	});
};
//#endregion
export { i as OpType, a as produceOp };
