@0x:contracts-exchange Refactored internal.ts so that it is more readable

This commit is contained in:
Alex Towle
2019-08-14 10:39:36 -07:00
parent 0134b2874b
commit 6b4e632101

View File

@@ -81,55 +81,22 @@ blockchainTests('Exchange core internal functions', env => {
let makerAddressLeft: string; let makerAddressLeft: string;
let makerAddressRight: string; let makerAddressRight: string;
function createMatchedFillResultsFromFilled( interface PartialMatchedFillResults {
leftMakerAssetFilledAmount: BigNumber, left: Partial<FillResults>;
leftTakerAssetFilledAmount: BigNumber, right: Partial<FillResults>;
rightMakerAssetFilledAmount: BigNumber, profitInLeftMakerAsset?: BigNumber;
rightTakerAssetFilledAmount: BigNumber, profitInRightMakerAsset?: BigNumber;
): MatchedFillResults {
return {
...EMPTY_MATCHED_FILL_RESULTS,
left: {
...EMPTY_FILL_RESULTS,
makerAssetFilledAmount: leftMakerAssetFilledAmount,
takerAssetFilledAmount: leftTakerAssetFilledAmount,
},
right: {
...EMPTY_FILL_RESULTS,
makerAssetFilledAmount: rightMakerAssetFilledAmount,
takerAssetFilledAmount: rightTakerAssetFilledAmount,
},
};
} }
function createMatchedFillResults( function createMatchedFillResults(partialMatchedFillResults: PartialMatchedFillResults): MatchedFillResults {
leftMakerAssetFilledAmount: BigNumber, const matchedFillResults = EMPTY_MATCHED_FILL_RESULTS;
leftTakerAssetFilledAmount: BigNumber, matchedFillResults.left = _.assign({}, EMPTY_FILL_RESULTS, partialMatchedFillResults.left);
leftMakerFeePaid: BigNumber, matchedFillResults.right = _.assign({}, EMPTY_FILL_RESULTS, partialMatchedFillResults.right);
leftTakerFeePaid: BigNumber, matchedFillResults.profitInLeftMakerAsset =
rightMakerAssetFilledAmount: BigNumber, partialMatchedFillResults.profitInLeftMakerAsset || constants.ZERO_AMOUNT;
rightTakerAssetFilledAmount: BigNumber, matchedFillResults.profitInRightMakerAsset =
rightMakerFeePaid: BigNumber, partialMatchedFillResults.profitInRightMakerAsset || constants.ZERO_AMOUNT;
rightTakerFeePaid: BigNumber, return matchedFillResults;
profitInLeftMakerAsset?: BigNumber,
profitInRightMakerAsset?: BigNumber,
): MatchedFillResults {
return {
left: {
makerAssetFilledAmount: leftMakerAssetFilledAmount,
takerAssetFilledAmount: leftTakerAssetFilledAmount,
makerFeePaid: leftMakerFeePaid,
takerFeePaid: leftTakerFeePaid,
},
right: {
makerAssetFilledAmount: rightMakerAssetFilledAmount,
takerAssetFilledAmount: rightTakerAssetFilledAmount,
makerFeePaid: rightMakerFeePaid,
takerFeePaid: rightTakerFeePaid,
},
profitInLeftMakerAsset: profitInLeftMakerAsset || constants.ZERO_AMOUNT,
profitInRightMakerAsset: profitInRightMakerAsset || constants.ZERO_AMOUNT,
};
} }
before(async () => { before(async () => {
@@ -284,12 +251,16 @@ blockchainTests('Exchange core internal functions', env => {
// Note: This call would never be able to be made through our contracts, since these orders will not actually be // Note: This call would never be able to be made through our contracts, since these orders will not actually be
// fully filled. This is just a test case to make sure. // fully filled. This is just a test case to make sure.
it('should correctly update the fillResults with nonzero input', async () => { it('should correctly update the fillResults with nonzero input', async () => {
const expectedMatchedFillResults = createMatchedFillResultsFromFilled( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(17, 0), left: {
Web3Wrapper.toBaseUnitAmount(98, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(17, 0),
Web3Wrapper.toBaseUnitAmount(75, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(98, 0),
Web3Wrapper.toBaseUnitAmount(13, 0), },
); right: {
makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
},
});
await assertCalculateCompleteFillBothAsync( await assertCalculateCompleteFillBothAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
new BigNumber(17), new BigNumber(17),
@@ -300,12 +271,16 @@ blockchainTests('Exchange core internal functions', env => {
}); });
it('should correctly update the fillResults with nonzero input', async () => { it('should correctly update the fillResults with nonzero input', async () => {
const expectedMatchedFillResults = createMatchedFillResultsFromFilled( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 0), left: {
Web3Wrapper.toBaseUnitAmount(10, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 0),
Web3Wrapper.toBaseUnitAmount(10, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 0),
Web3Wrapper.toBaseUnitAmount(5, 0), },
); right: {
makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 0),
takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 0),
},
});
await assertCalculateCompleteFillBothAsync( await assertCalculateCompleteFillBothAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
new BigNumber(5), new BigNumber(5),
@@ -316,12 +291,16 @@ blockchainTests('Exchange core internal functions', env => {
}); });
it('should correctly update the fillResults with nonzero input', async () => { it('should correctly update the fillResults with nonzero input', async () => {
const expectedMatchedFillResults = createMatchedFillResultsFromFilled( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(10, 18), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(5, 18), },
); right: {
makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
},
});
await assertCalculateCompleteFillBothAsync( await assertCalculateCompleteFillBothAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
Web3Wrapper.toBaseUnitAmount(5, 18), Web3Wrapper.toBaseUnitAmount(5, 18),
@@ -332,12 +311,16 @@ blockchainTests('Exchange core internal functions', env => {
}); });
it('should correctly update the fillResults with nonzero input', async () => { it('should correctly update the fillResults with nonzero input', async () => {
const expectedMatchedFillResults = createMatchedFillResultsFromFilled( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(10, 18), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(2, 18), },
); right: {
makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
},
});
await assertCalculateCompleteFillBothAsync( await assertCalculateCompleteFillBothAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
Web3Wrapper.toBaseUnitAmount(5, 18), Web3Wrapper.toBaseUnitAmount(5, 18),
@@ -400,12 +383,16 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(17, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(17, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(98, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(98, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResultsFromFilled( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(13, 0), left: {
Web3Wrapper.toBaseUnitAmount(75, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
Web3Wrapper.toBaseUnitAmount(75, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
Web3Wrapper.toBaseUnitAmount(13, 0), },
); right: {
makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
},
});
await assertCalculateCompleteRightFillAsync( await assertCalculateCompleteRightFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -419,12 +406,16 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(12, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(12, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(97, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(97, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResultsFromFilled( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(11, 0), left: {
Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(11, 0),
Web3Wrapper.toBaseUnitAmount(89, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(1, 0), },
); right: {
makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
},
});
await assertCalculateCompleteRightFillAsync( await assertCalculateCompleteRightFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -438,12 +429,16 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18),
}); });
const expectedMatchedFillResults = createMatchedFillResultsFromFilled( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(10, 18), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(2, 18), },
); right: {
makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
},
});
await assertCalculateCompleteRightFillAsync( await assertCalculateCompleteRightFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -725,16 +720,20 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(75, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(13, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(13, 0), left: {
Web3Wrapper.toBaseUnitAmount(75, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('76.4705882352941176'), 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('76.5306122448979591'), 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('76.4705882352941176'), 16),
Web3Wrapper.toBaseUnitAmount(75, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('76.5306122448979591'), 16),
Web3Wrapper.toBaseUnitAmount(13, 0), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
); takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -753,17 +752,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(97, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(97, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(14, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(14, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(15, 0), left: {
Web3Wrapper.toBaseUnitAmount(90, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(15, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(90, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(90, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(13, 0), },
Web3Wrapper.toBaseUnitAmount(new BigNumber('92.7835051546391752'), 16), // 92.85% right: {
Web3Wrapper.toBaseUnitAmount(new BigNumber('92.8571428571428571'), 16), // 92.85% makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(90, 0),
Web3Wrapper.toBaseUnitAmount(2, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('92.7835051546391752'), 16), // 92.85%
takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('92.8571428571428571'), 16), // 92.85%
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(2, 0),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -784,17 +787,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(83, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(83, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(49, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(49, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(16, 0), left: {
Web3Wrapper.toBaseUnitAmount(22, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(16, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(22, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(22, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(13, 0), },
Web3Wrapper.toBaseUnitAmount(new BigNumber('26.5060240963855421'), 16), // 26.506% right: {
Web3Wrapper.toBaseUnitAmount(new BigNumber('26.5306122448979591'), 16), // 26.531% makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(22, 0),
Web3Wrapper.toBaseUnitAmount(3, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('26.5060240963855421'), 16), // 26.506%
takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('26.5306122448979591'), 16), // 26.531%
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(3, 0),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -815,17 +822,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(11, 0), left: {
Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(11, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('91.6666666666666666'), 16), // 91.6% takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('91.7525773195876288'), 16), // 91.75% makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('91.6666666666666666'), 16), // 91.6%
Web3Wrapper.toBaseUnitAmount(89, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('91.7525773195876288'), 16), // 91.75%
Web3Wrapper.toBaseUnitAmount(1, 0), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(10, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(10, 0),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -848,17 +859,21 @@ blockchainTests('Exchange core internal functions', env => {
makerFee: Web3Wrapper.toBaseUnitAmount(10000, 0), makerFee: Web3Wrapper.toBaseUnitAmount(10000, 0),
takerFee: Web3Wrapper.toBaseUnitAmount(10000, 0), takerFee: Web3Wrapper.toBaseUnitAmount(10000, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(16, 0), left: {
Web3Wrapper.toBaseUnitAmount(22, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(16, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(22, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(22, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(13, 0), },
Web3Wrapper.toBaseUnitAmount(2650, 0), right: {
Web3Wrapper.toBaseUnitAmount(2653, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(22, 0),
Web3Wrapper.toBaseUnitAmount(3, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(2650, 0),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(2653, 0),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(3, 0),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -882,17 +897,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(11, 0), left: {
Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(11, 0),
Web3Wrapper.toBaseUnitAmount(9166, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(9175, 0), makerFeePaid: Web3Wrapper.toBaseUnitAmount(9166, 0),
Web3Wrapper.toBaseUnitAmount(89, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(9175, 0),
Web3Wrapper.toBaseUnitAmount(1, 0), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(10, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(10, 0),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -913,17 +932,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(2126, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(2126, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1063, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1063, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(1000, 0), left: {
Web3Wrapper.toBaseUnitAmount(1005, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1000, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1005, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(1005, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(503, 0), },
Web3Wrapper.toBaseUnitAmount(new BigNumber('47.2718720602069614'), 16), // 47.27% right: {
Web3Wrapper.toBaseUnitAmount(new BigNumber('47.3189087488240827'), 16), // 47.31% makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1005, 0),
Web3Wrapper.toBaseUnitAmount(497, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(503, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('47.2718720602069614'), 16), // 47.27%
takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('47.3189087488240827'), 16), // 47.31%
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(497, 0),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -942,17 +965,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(2, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(10, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(2, 18), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(3, 18), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(3, 18),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -971,16 +998,20 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(5, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(10, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(5, 18), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
); takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -999,17 +1030,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(20, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(20, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(4, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(4, 18),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(10, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(2, 18), },
Web3Wrapper.toBaseUnitAmount(50, 16), right: {
Web3Wrapper.toBaseUnitAmount(50, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(3, 18), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(50, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(50, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(3, 18),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1028,17 +1063,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(2, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(10, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(10, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(10, 16),
Web3Wrapper.toBaseUnitAmount(10, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(10, 16),
Web3Wrapper.toBaseUnitAmount(2, 18), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(3, 18), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(3, 18),
});
await assertCalculateMatchedFillResultsAsync( await assertCalculateMatchedFillResultsAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1290,16 +1329,20 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(75, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(13, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(13, 0), left: {
Web3Wrapper.toBaseUnitAmount(75, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('76.4705882352941176'), 16), // 76.47% takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('76.5306122448979591'), 16), // 76.53% makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('76.4705882352941176'), 16), // 76.47%
Web3Wrapper.toBaseUnitAmount(75, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('76.5306122448979591'), 16), // 76.53%
Web3Wrapper.toBaseUnitAmount(13, 0), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(75, 0),
); takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(13, 0),
makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1320,18 +1363,22 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(196, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(196, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(28, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(28, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(15, 0), left: {
Web3Wrapper.toBaseUnitAmount(90, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(15, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(90, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(105, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(15, 0), },
Web3Wrapper.toBaseUnitAmount(new BigNumber('53.5714285714285714'), 16), // 53.57% right: {
Web3Wrapper.toBaseUnitAmount(new BigNumber('53.5714285714285714'), 16), // 53.57% makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(105, 0),
constants.ZERO_AMOUNT, takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(15, 0),
Web3Wrapper.toBaseUnitAmount(15, 0), makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('53.5714285714285714'), 16), // 53.57%
); takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('53.5714285714285714'), 16), // 53.57%
},
profitInLeftMakerAsset: constants.ZERO_AMOUNT,
profitInRightMakerAsset: Web3Wrapper.toBaseUnitAmount(15, 0),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1352,18 +1399,22 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(87, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(87, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(48, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(48, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(16, 0), left: {
Web3Wrapper.toBaseUnitAmount(22, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(16, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(22, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(29, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(16, 0), },
Web3Wrapper.toBaseUnitAmount(new BigNumber('33.3333333333333333'), 16), // 33.33% right: {
Web3Wrapper.toBaseUnitAmount(new BigNumber('33.3333333333333333'), 16), // 33.33% makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(29, 0),
constants.ZERO_AMOUNT, takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(16, 0),
Web3Wrapper.toBaseUnitAmount(7, 0), makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('33.3333333333333333'), 16), // 33.33%
); takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('33.3333333333333333'), 16), // 33.33%
},
profitInLeftMakerAsset: constants.ZERO_AMOUNT,
profitInRightMakerAsset: Web3Wrapper.toBaseUnitAmount(7, 0),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1384,18 +1435,22 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(8, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(8, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(6, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(6, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(7, 0), left: {
Web3Wrapper.toBaseUnitAmount(4, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(7, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(4, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(8, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(6, 0), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(8, 0),
Web3Wrapper.toBaseUnitAmount(1, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(6, 0),
Web3Wrapper.toBaseUnitAmount(4, 0), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
); takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(1, 0),
profitInRightMakerAsset: Web3Wrapper.toBaseUnitAmount(4, 0),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1416,17 +1471,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(11, 0), left: {
Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(11, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('91.6666666666666666'), 16), // 91.6% takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(new BigNumber('91.7525773195876288'), 16), // 91.75% makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('91.6666666666666666'), 16), // 91.6%
Web3Wrapper.toBaseUnitAmount(89, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('91.7525773195876288'), 16), // 91.75%
Web3Wrapper.toBaseUnitAmount(1, 0), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(10, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(10, 0),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1449,18 +1508,21 @@ blockchainTests('Exchange core internal functions', env => {
makerFee: Web3Wrapper.toBaseUnitAmount(10000, 0), makerFee: Web3Wrapper.toBaseUnitAmount(10000, 0),
takerFee: Web3Wrapper.toBaseUnitAmount(10000, 0), takerFee: Web3Wrapper.toBaseUnitAmount(10000, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(16, 0), left: {
Web3Wrapper.toBaseUnitAmount(22, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(16, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(22, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(29, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(16, 0), },
Web3Wrapper.toBaseUnitAmount(3333, 0), right: {
Web3Wrapper.toBaseUnitAmount(3333, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(29, 0),
constants.ZERO_AMOUNT, takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(16, 0),
Web3Wrapper.toBaseUnitAmount(7, 0), makerFeePaid: Web3Wrapper.toBaseUnitAmount(3333, 0),
); takerFeePaid: Web3Wrapper.toBaseUnitAmount(3333, 0),
},
profitInRightMakerAsset: Web3Wrapper.toBaseUnitAmount(7, 0),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1483,17 +1545,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(11, 0), left: {
Web3Wrapper.toBaseUnitAmount(89, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(11, 0),
Web3Wrapper.toBaseUnitAmount(9166, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(9175, 0), makerFeePaid: Web3Wrapper.toBaseUnitAmount(9166, 0),
Web3Wrapper.toBaseUnitAmount(89, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(9175, 0),
Web3Wrapper.toBaseUnitAmount(1, 0), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(89, 0),
Web3Wrapper.toBaseUnitAmount(10, 0), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1, 0),
); makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
profitInLeftMakerAsset: Web3Wrapper.toBaseUnitAmount(10, 0),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1531,16 +1597,20 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18),
}); });
const expectedMatchedFillResults2 = createMatchedFillResults( const expectedMatchedFillResults2 = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(45, 18), left: {
Web3Wrapper.toBaseUnitAmount(90, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(45, 18),
Web3Wrapper.toBaseUnitAmount(90, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(90, 18),
Web3Wrapper.toBaseUnitAmount(90, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
Web3Wrapper.toBaseUnitAmount(90, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
Web3Wrapper.toBaseUnitAmount(45, 18), },
Web3Wrapper.toBaseUnitAmount(90, 16), right: {
Web3Wrapper.toBaseUnitAmount(90, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(90, 18),
); takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(45, 18),
makerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
},
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults2, expectedMatchedFillResults2,
leftOrder, leftOrder,
@@ -1561,18 +1631,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(2126, 0), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(2126, 0),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1063, 0), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(1063, 0),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(1000, 0), left: {
Web3Wrapper.toBaseUnitAmount(1005, 0), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1000, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1005, 0),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(2000, 0), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(1000, 0), },
Web3Wrapper.toBaseUnitAmount(new BigNumber('94.0733772342427093'), 16), // 94.07% right: {
Web3Wrapper.toBaseUnitAmount(new BigNumber('94.0733772342427093'), 16), // 94.07% makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(2000, 0),
constants.ZERO_AMOUNT, takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(1000, 0),
Web3Wrapper.toBaseUnitAmount(995, 0), makerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('94.0733772342427093'), 16), // 94.07%
); takerFeePaid: Web3Wrapper.toBaseUnitAmount(new BigNumber('94.0733772342427093'), 16), // 94.07%
},
profitInRightMakerAsset: Web3Wrapper.toBaseUnitAmount(995, 0),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1591,16 +1664,20 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(5, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(5, 18), left: {
Web3Wrapper.toBaseUnitAmount(10, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(10, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(5, 18), },
Web3Wrapper.toBaseUnitAmount(100, 16), right: {
Web3Wrapper.toBaseUnitAmount(100, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
); takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
},
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1620,18 +1697,21 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18),
}); });
const expectedMatchedFillResults = createMatchedFillResults( const expectedMatchedFillResults = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(10, 18), left: {
Web3Wrapper.toBaseUnitAmount(2, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(2, 18),
Web3Wrapper.toBaseUnitAmount(100, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(5, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(100, 16),
Web3Wrapper.toBaseUnitAmount(10, 18), },
Web3Wrapper.toBaseUnitAmount(10, 16), right: {
Web3Wrapper.toBaseUnitAmount(10, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(5, 18),
constants.ZERO_AMOUNT, takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(10, 18),
Web3Wrapper.toBaseUnitAmount(3, 18), makerFeePaid: Web3Wrapper.toBaseUnitAmount(10, 16),
); takerFeePaid: Web3Wrapper.toBaseUnitAmount(10, 16),
},
profitInRightMakerAsset: Web3Wrapper.toBaseUnitAmount(3, 18),
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults, expectedMatchedFillResults,
leftOrder, leftOrder,
@@ -1647,16 +1727,20 @@ blockchainTests('Exchange core internal functions', env => {
makerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18), makerAssetAmount: Web3Wrapper.toBaseUnitAmount(100, 18),
takerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18), takerAssetAmount: Web3Wrapper.toBaseUnitAmount(50, 18),
}); });
const expectedMatchedFillResults2 = createMatchedFillResults( const expectedMatchedFillResults2 = createMatchedFillResults({
Web3Wrapper.toBaseUnitAmount(90, 18), left: {
Web3Wrapper.toBaseUnitAmount(45, 18), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(90, 18),
Web3Wrapper.toBaseUnitAmount(90, 16), takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(45, 18),
Web3Wrapper.toBaseUnitAmount(90, 16), makerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
Web3Wrapper.toBaseUnitAmount(45, 18), takerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
Web3Wrapper.toBaseUnitAmount(90, 18), },
Web3Wrapper.toBaseUnitAmount(90, 16), right: {
Web3Wrapper.toBaseUnitAmount(90, 16), makerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(45, 18),
); takerAssetFilledAmount: Web3Wrapper.toBaseUnitAmount(90, 18),
makerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
takerFeePaid: Web3Wrapper.toBaseUnitAmount(90, 16),
},
});
await assertCalculateMatchedFillResultsWithMaximalFillAsync( await assertCalculateMatchedFillResultsWithMaximalFillAsync(
expectedMatchedFillResults2, expectedMatchedFillResults2,
leftOrder2, leftOrder2,