client-aftermath-ts-sdk
Version:
Client Aftermath TypeScript SDK
59 lines (58 loc) • 3.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DcaApi = void 0;
const eventsApiHelpers_1 = require("../../../general/apiHelpers/eventsApiHelpers");
const utils_1 = require("../../../general/utils");
class DcaApi {
// =========================================================================
// Constructor
// =========================================================================
constructor(Provider) {
this.Provider = Provider;
this.createCloseOrderTx = (inputs) => {
const { tx } = inputs;
return tx.moveCall({
target: utils_1.Helpers.transactions.createTxTarget(this.addresses.packages.dca, DcaApi.constants.moduleNames.dca, "close_order"),
typeArguments: [inputs.allocateCoinType, inputs.buyCoinType],
arguments: [
tx.object(inputs.orderId),
tx.object(this.addresses.objects.config),
],
});
};
// =========================================================================
// Events
// =========================================================================
this.createdOrderEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.packages.events, DcaApi.constants.moduleNames.events, DcaApi.constants.eventNames.createdOrder);
this.createdOrderEventTypeV2 = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.packages.eventsV2, DcaApi.constants.moduleNames.events, DcaApi.constants.eventNames.createdOrderV2);
this.closedOrderEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.packages.events, DcaApi.constants.moduleNames.events, DcaApi.constants.eventNames.closedOrder);
this.executedOrderEventType = () => eventsApiHelpers_1.EventsApiHelpers.createEventType(this.addresses.packages.events, DcaApi.constants.moduleNames.events, DcaApi.constants.eventNames.executedTrade);
const addresses = this.Provider.addresses.dca;
if (!addresses)
throw new Error("not all required addresses have been set in provider");
this.addresses = addresses;
this.eventTypes = {
createdOrder: this.createdOrderEventType(),
createdOrderV2: this.createdOrderEventTypeV2(),
closedOrder: this.closedOrderEventType(),
executedTrade: this.executedOrderEventType(),
};
}
}
exports.DcaApi = DcaApi;
// =========================================================================
// Constants
// =========================================================================
DcaApi.constants = {
moduleNames: {
dca: "order",
events: "events",
config: "config",
},
eventNames: {
createdOrder: "CreatedOrderEvent",
createdOrderV2: "CreatedOrderEventV2",
closedOrder: "ClosedOrderEvent",
executedTrade: "ExecutedTradeEvent",
},
};