"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Side = exports.eItemType = exports.eOrderType = void 0;
exports.encodeValidate = encodeValidate;
exports.encodeMatchAdvancedOrders = encodeMatchAdvancedOrders;
const common_1 = require("@bosonprotocol/common");
const abi_1 = require("@ethersproject/abi");
const seaportIface = new abi_1.Interface(common_1.abis.SeaportABI);
var eOrderType;
(function (eOrderType) {
    eOrderType[eOrderType["FULL_OPEN"] = 0] = "FULL_OPEN";
    eOrderType[eOrderType["PARTIAL_OPEN"] = 1] = "PARTIAL_OPEN";
    eOrderType[eOrderType["FULL_RESTRICTED"] = 2] = "FULL_RESTRICTED";
    eOrderType[eOrderType["PARTIAL_RESTRICTED"] = 3] = "PARTIAL_RESTRICTED";
    eOrderType[eOrderType["CONTRACT"] = 4] = "CONTRACT";
})(eOrderType || (exports.eOrderType = eOrderType = {}));
var eItemType;
(function (eItemType) {
    eItemType[eItemType["NATIVE"] = 0] = "NATIVE";
    eItemType[eItemType["ERC20"] = 1] = "ERC20";
    eItemType[eItemType["ERC721"] = 2] = "ERC721";
    eItemType[eItemType["ERC1155"] = 3] = "ERC1155";
    eItemType[eItemType["ERC721_WITH_CRITERIA"] = 4] = "ERC721_WITH_CRITERIA";
    eItemType[eItemType["ERC1155_WITH_CRITERIA"] = 5] = "ERC1155_WITH_CRITERIA";
})(eItemType || (exports.eItemType = eItemType = {}));
var Side;
(function (Side) {
    Side[Side["OFFER"] = 0] = "OFFER";
    Side[Side["CONSIDERATION"] = 1] = "CONSIDERATION"; // items that must be received
})(Side || (exports.Side = Side = {}));
function encodeValidate(orders) {
    return seaportIface.encodeFunctionData("validate", [orders]);
}
function encodeMatchAdvancedOrders(advancedOrders, criteriaResolvers, fulfillments, recipient) {
    return seaportIface.encodeFunctionData("matchAdvancedOrders", [
        advancedOrders,
        criteriaResolvers,
        fulfillments,
        recipient
    ]);
}
//# sourceMappingURL=interface.js.map