@dolomite-exchange/dolomite-margin
Version:
Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol
45 lines • 2.41 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.IsolationModeUnwrapper = void 0;
const BytesHelper_1 = require("../lib/BytesHelper");
const bignumber_js_1 = __importDefault(require("bignumber.js"));
class IsolationModeUnwrapper {
constructor(contracts, unwrapperContract) {
this.contracts = contracts;
this.unwrapperContract = unwrapperContract;
}
get address() {
return this.unwrapperContract.options.address;
}
async token() {
return this.contracts.callConstantContractFunction(this.unwrapperContract.methods.token());
}
async actionsLength() {
const result = await this.contracts.callConstantContractFunction(this.unwrapperContract.methods.actionsLength());
return new bignumber_js_1.default(result);
}
async createActionsForUnwrapping(solidAccountId, liquidAccountId, solidAccountOwner, solidAccountNumber, liquidAccountOwner, liquidAccountNumber, outputMarket, inputMarket, minOutputAmount, inputAmount, orderDataHexString) {
return this.contracts.callConstantContractFunction(this.unwrapperContract.methods.createActionsForUnwrapping({
primaryAccountId: solidAccountId.toFixed(),
otherAccountId: liquidAccountId.toFixed(),
primaryAccountOwner: solidAccountOwner,
primaryAccountNumber: solidAccountNumber.toFixed(),
otherAccountOwner: liquidAccountOwner,
otherAccountNumber: liquidAccountNumber.toFixed(),
outputMarket: outputMarket.toFixed(),
inputMarket: inputMarket.toFixed(),
minOutputAmount: minOutputAmount.toFixed(),
inputAmount: inputAmount.toFixed(),
orderData: BytesHelper_1.toBytesNoPadding(orderDataHexString),
}));
}
async getExchangeCost(makerToken, takerToken, desiredMakerToken, orderData) {
const result = await this.contracts.callConstantContractFunction(this.unwrapperContract.methods.getExchangeCost(makerToken, takerToken, desiredMakerToken.toFixed(), BytesHelper_1.hexStringToBytes(orderData)));
return new bignumber_js_1.default(result);
}
}
exports.IsolationModeUnwrapper = IsolationModeUnwrapper;
//# sourceMappingURL=IsolationModeUnwrapper.js.map