@fractional-company/common
Version:
Tessera constants
96 lines (95 loc) • 3.52 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MarketplaceEventBuilder = exports.ORDER_PARTIALLY_FILLED = exports.ORDER_FILLED = exports.ORDER_CREATED = exports.ORDER_CANCELLED = void 0;
const InternalEventBuilder_1 = require("./InternalEventBuilder");
const cloneObject_1 = require("../../utils/cloneObject");
const vault_events_1 = require("./vault.events");
const feature = "marketplace";
exports.ORDER_CANCELLED = `${feature}.order_cancelled`;
exports.ORDER_CREATED = `${feature}.order_created`;
exports.ORDER_FILLED = `${feature}.order_filled`;
exports.ORDER_PARTIALLY_FILLED = `${feature}.order_partially_filled`;
// params
const generalOrderParams = ["uuid", "remoteOrderId", "status", "makerWalletAddress"];
const orderPurchasedParams = [
"purchaserAddress",
"purchaseQuantity",
"unitPriceInWei",
"unitPriceInUsd",
"priceWei",
"priceUsd",
];
const createdOrderParams = [
"side",
"tokenAddress",
"tokenId",
"quantity",
"makerWalletAddress",
"takerWalletAddress",
"currencyContract",
"currencySymbol",
"amountEth",
"netAmountEth",
"validFrom",
"validUntil",
"source",
"createdAt",
"expiresAt",
];
class MarketplaceEventBuilder extends InternalEventBuilder_1.InternalEventBuilder {
// @ts-ignore
setVault(vault) {
this.vault = vault;
return this;
}
setOrder(order) {
this.order = order;
return this;
}
getPartiallyFilledBody() {
this.validate(["vault", "order"], true);
return {
vault: (0, cloneObject_1.cloneObject)(this.vault, vault_events_1.vaultParams),
context: this.getContext(),
order: (0, cloneObject_1.cloneObject)(this.order, [...generalOrderParams, ...orderPurchasedParams, "oldQuantity", "quantity"]),
};
}
getFilledBody() {
this.validate(["vault", "order"], true);
return {
vault: (0, cloneObject_1.cloneObject)(this.vault, vault_events_1.vaultParams),
context: this.getContext(),
order: (0, cloneObject_1.cloneObject)(this.order, [...generalOrderParams, ...orderPurchasedParams, "oldStatus"]),
};
}
getCancelledBody() {
this.validate(["vault", "order"], true);
return {
vault: (0, cloneObject_1.cloneObject)(this.vault, vault_events_1.vaultParams),
context: this.getContext(),
order: (0, cloneObject_1.cloneObject)(this.order, [...generalOrderParams, "cancelledAt"]),
};
}
getCreatedBody() {
this.validate(["vault", "order"], false);
return {
vault: (0, cloneObject_1.cloneObject)(this.vault, vault_events_1.vaultParams),
order: (0, cloneObject_1.cloneObject)(this.order, [...generalOrderParams, ...createdOrderParams]),
};
}
getEventBody(eventName) {
switch (eventName) {
case exports.ORDER_PARTIALLY_FILLED:
return this.getPartiallyFilledBody();
case exports.ORDER_FILLED:
return this.getFilledBody();
case exports.ORDER_CREATED:
return this.getCreatedBody();
case exports.ORDER_CANCELLED:
return this.getCancelledBody();
default:
return {};
}
}
}
exports.MarketplaceEventBuilder = MarketplaceEventBuilder;