Pass in fee and assetAmount rather then the whole signedOrder
This commit is contained in:
parent
dee0fec9e9
commit
f5ad553be3
@ -113,10 +113,9 @@ export class OrderStateUtils {
|
|||||||
|
|
||||||
const zrxAssetData = assetProxyUtils.encodeERC20ProxyData(zrxTokenAddress);
|
const zrxAssetData = assetProxyUtils.encodeERC20ProxyData(zrxTokenAddress);
|
||||||
const isMakerAssetZRX = signedOrder.makerAssetData === zrxAssetData;
|
const isMakerAssetZRX = signedOrder.makerAssetData === zrxAssetData;
|
||||||
const isTraderMaker = true;
|
|
||||||
const remainingFillableCalculator = new RemainingFillableCalculator(
|
const remainingFillableCalculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakerAssetZRX,
|
isMakerAssetZRX,
|
||||||
transferrableMakerAssetAmount,
|
transferrableMakerAssetAmount,
|
||||||
transferrableFeeAssetAmount,
|
transferrableFeeAssetAmount,
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
import { SignedOrder } from '@0xproject/types';
|
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
|
||||||
export class RemainingFillableCalculator {
|
export class RemainingFillableCalculator {
|
||||||
private _signedOrder: SignedOrder;
|
|
||||||
private _isTraderAssetZRX: boolean;
|
private _isTraderAssetZRX: boolean;
|
||||||
// Transferrable Amount is the minimum of Approval and Balance
|
// Transferrable Amount is the minimum of Approval and Balance
|
||||||
private _transferrableAssetAmount: BigNumber;
|
private _transferrableAssetAmount: BigNumber;
|
||||||
@ -12,21 +10,15 @@ export class RemainingFillableCalculator {
|
|||||||
private _orderFee: BigNumber;
|
private _orderFee: BigNumber;
|
||||||
private _orderAssetAmount: BigNumber;
|
private _orderAssetAmount: BigNumber;
|
||||||
constructor(
|
constructor(
|
||||||
isTraderMaker: boolean,
|
orderFee: BigNumber,
|
||||||
signedOrder: SignedOrder,
|
orderAssetAmount: BigNumber,
|
||||||
isTraderAssetZRX: boolean,
|
isTraderAssetZRX: boolean,
|
||||||
transferrableAssetAmount: BigNumber,
|
transferrableAssetAmount: BigNumber,
|
||||||
transferrableFeeAmount: BigNumber,
|
transferrableFeeAmount: BigNumber,
|
||||||
remainingOrderAssetAmount: BigNumber,
|
remainingOrderAssetAmount: BigNumber,
|
||||||
) {
|
) {
|
||||||
if (isTraderMaker) {
|
this._orderFee = orderFee;
|
||||||
this._orderFee = signedOrder.makerFee;
|
this._orderAssetAmount = orderAssetAmount;
|
||||||
this._orderAssetAmount = signedOrder.makerAssetAmount;
|
|
||||||
} else {
|
|
||||||
this._orderFee = signedOrder.takerFee;
|
|
||||||
this._orderAssetAmount = signedOrder.takerAssetAmount;
|
|
||||||
}
|
|
||||||
this._signedOrder = signedOrder;
|
|
||||||
this._isTraderAssetZRX = isTraderAssetZRX;
|
this._isTraderAssetZRX = isTraderAssetZRX;
|
||||||
this._transferrableAssetAmount = transferrableAssetAmount;
|
this._transferrableAssetAmount = transferrableAssetAmount;
|
||||||
this._transferrableFeeAmount = transferrableFeeAmount;
|
this._transferrableFeeAmount = transferrableFeeAmount;
|
||||||
|
@ -65,10 +65,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
it('calculates the correct amount when unfilled and funds available', () => {
|
it('calculates the correct amount when unfilled and funds available', () => {
|
||||||
signedOrder = buildSignedOrder();
|
signedOrder = buildSignedOrder();
|
||||||
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -79,10 +78,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
it('calculates the correct amount when partially filled and funds available', () => {
|
it('calculates the correct amount when partially filled and funds available', () => {
|
||||||
signedOrder = buildSignedOrder();
|
signedOrder = buildSignedOrder();
|
||||||
remainingMakeAssetAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(1), decimals);
|
remainingMakeAssetAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(1), decimals);
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -94,10 +92,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
signedOrder = buildSignedOrder();
|
signedOrder = buildSignedOrder();
|
||||||
transferrableMakerFeeTokenAmount = zero;
|
transferrableMakerFeeTokenAmount = zero;
|
||||||
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -110,10 +107,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
const partiallyFilledAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(2), decimals);
|
const partiallyFilledAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(2), decimals);
|
||||||
remainingMakeAssetAmount = signedOrder.makerAssetAmount.minus(partiallyFilledAmount);
|
remainingMakeAssetAmount = signedOrder.makerAssetAmount.minus(partiallyFilledAmount);
|
||||||
transferrableMakeAssetAmount = remainingMakeAssetAmount.minus(partiallyFilledAmount);
|
transferrableMakeAssetAmount = remainingMakeAssetAmount.minus(partiallyFilledAmount);
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -134,10 +130,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
||||||
const transferredAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(2), decimals);
|
const transferredAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(2), decimals);
|
||||||
transferrableMakeAssetAmount = remainingMakeAssetAmount.minus(transferredAmount);
|
transferrableMakeAssetAmount = remainingMakeAssetAmount.minus(transferredAmount);
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -159,10 +154,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
||||||
const transferredAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(2), decimals);
|
const transferredAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(2), decimals);
|
||||||
transferrableMakeAssetAmount = remainingMakeAssetAmount.minus(transferredAmount);
|
transferrableMakeAssetAmount = remainingMakeAssetAmount.minus(transferredAmount);
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -186,10 +180,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
transferrableMakeAssetAmount = makerAmount.plus(makerFeeAmount);
|
transferrableMakeAssetAmount = makerAmount.plus(makerFeeAmount);
|
||||||
transferrableMakerFeeTokenAmount = transferrableMakeAssetAmount;
|
transferrableMakerFeeTokenAmount = transferrableMakeAssetAmount;
|
||||||
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -200,10 +193,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
it('calculates the correct amount when partially filled and funds available', () => {
|
it('calculates the correct amount when partially filled and funds available', () => {
|
||||||
signedOrder = buildSignedOrder();
|
signedOrder = buildSignedOrder();
|
||||||
remainingMakeAssetAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(1), decimals);
|
remainingMakeAssetAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(1), decimals);
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -216,10 +208,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
transferrableMakeAssetAmount = zero;
|
transferrableMakeAssetAmount = zero;
|
||||||
transferrableMakerFeeTokenAmount = zero;
|
transferrableMakerFeeTokenAmount = zero;
|
||||||
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
remainingMakeAssetAmount = signedOrder.makerAssetAmount;
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
@ -236,10 +227,9 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
|
|
||||||
const orderToFeeRatio = signedOrder.makerAssetAmount.dividedToIntegerBy(signedOrder.makerFee);
|
const orderToFeeRatio = signedOrder.makerAssetAmount.dividedToIntegerBy(signedOrder.makerFee);
|
||||||
const expectedFillableAmount = new BigNumber(450980);
|
const expectedFillableAmount = new BigNumber(450980);
|
||||||
const isTraderMaker = true;
|
|
||||||
calculator = new RemainingFillableCalculator(
|
calculator = new RemainingFillableCalculator(
|
||||||
isTraderMaker,
|
signedOrder.makerFee,
|
||||||
signedOrder,
|
signedOrder.makerAssetAmount,
|
||||||
isMakeAssetZRX,
|
isMakeAssetZRX,
|
||||||
transferrableMakeAssetAmount,
|
transferrableMakeAssetAmount,
|
||||||
transferrableMakerFeeTokenAmount,
|
transferrableMakerFeeTokenAmount,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user