Merge pull request #1517 from 0xProject/feature/bignumber-8.0
Bignumber 8.0
This commit is contained in:
commit
3973dec994
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
"@types/yargs": "^10.0.0",
|
"@types/yargs": "^10.0.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"ethereumjs-abi": "0.6.5",
|
"ethereumjs-abi": "0.6.5",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
"@types/yargs": "^10.0.0",
|
"@types/yargs": "^10.0.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"ethereumjs-abi": "0.6.5",
|
"ethereumjs-abi": "0.6.5",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -269,7 +269,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -278,13 +278,13 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if the Exchange transaction function is not supported', async () => {
|
it('should revert if the Exchange transaction function is not supported', async () => {
|
||||||
@ -357,7 +357,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -367,7 +367,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -378,14 +378,14 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount.times(2)),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount.times(2)),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
// Fee recipient
|
// Fee recipient
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.times(2).add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.times(2).plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if one maker does not meet the balance threshold', async () => {
|
it('should revert if one maker does not meet the balance threshold', async () => {
|
||||||
@ -461,7 +461,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -471,7 +471,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -482,14 +482,14 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount.times(2)),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount.times(2)),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
// Fee recipient
|
// Fee recipient
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.times(2).add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.times(2).plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if one maker does not meet the balance threshold', async () => {
|
it('should revert if one maker does not meet the balance threshold', async () => {
|
||||||
@ -559,7 +559,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -569,7 +569,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -580,14 +580,14 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount.times(2)),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount.times(2)),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
// Fee recipient
|
// Fee recipient
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.times(2).add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.times(2).plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if one maker does not meet the balance threshold', async () => {
|
it('should revert if one maker does not meet the balance threshold', async () => {
|
||||||
@ -658,7 +658,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -667,13 +667,13 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if maker does not meet the balance threshold', async () => {
|
it('should revert if maker does not meet the balance threshold', async () => {
|
||||||
@ -736,7 +736,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -745,13 +745,13 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if maker does not meet the balance threshold', async () => {
|
it('should revert if maker does not meet the balance threshold', async () => {
|
||||||
@ -811,7 +811,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount_),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount_),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -820,13 +820,13 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount_),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount_),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if maker does not meet the balance threshold', async () => {
|
it('should revert if maker does not meet the balance threshold', async () => {
|
||||||
@ -904,7 +904,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(validSignedOrder.takerAssetAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(validSignedOrder.takerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
||||||
@ -914,7 +914,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
||||||
@ -924,7 +924,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(cumulativeMakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(cumulativeMakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
@ -932,9 +932,9 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
// Fee recipient
|
// Fee recipient
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address]
|
erc20Balances[feeRecipientAddress][zrxToken.address]
|
||||||
.add(validSignedOrder.makerFee)
|
.plus(validSignedOrder.makerFee)
|
||||||
.add(makerFeePaid2)
|
.plus(makerFeePaid2)
|
||||||
.add(takerFeePaid),
|
.plus(takerFeePaid),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if one maker does not meet the balance threshold', async () => {
|
it('should revert if one maker does not meet the balance threshold', async () => {
|
||||||
@ -1008,7 +1008,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(validSignedOrder.takerAssetAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(validSignedOrder.takerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
||||||
@ -1018,7 +1018,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
||||||
@ -1028,7 +1028,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(cumulativeMakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(cumulativeMakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
@ -1036,9 +1036,9 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
// Fee recipient
|
// Fee recipient
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address]
|
erc20Balances[feeRecipientAddress][zrxToken.address]
|
||||||
.add(validSignedOrder.makerFee)
|
.plus(validSignedOrder.makerFee)
|
||||||
.add(makerFeePaid2)
|
.plus(makerFeePaid2)
|
||||||
.add(takerFeePaid),
|
.plus(takerFeePaid),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if one maker does not meet the balance threshold', async () => {
|
it('should revert if one maker does not meet the balance threshold', async () => {
|
||||||
@ -1104,7 +1104,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(validSignedOrder.takerAssetAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(validSignedOrder.takerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
||||||
@ -1114,7 +1114,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
||||||
@ -1124,7 +1124,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(cumulativeMakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(cumulativeMakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
@ -1132,9 +1132,9 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
// Fee recipient
|
// Fee recipient
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address]
|
erc20Balances[feeRecipientAddress][zrxToken.address]
|
||||||
.add(validSignedOrder.makerFee)
|
.plus(validSignedOrder.makerFee)
|
||||||
.add(makerFeePaid2)
|
.plus(makerFeePaid2)
|
||||||
.add(takerFeePaid),
|
.plus(takerFeePaid),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if one maker does not meet the balance threshold', async () => {
|
it('should revert if one maker does not meet the balance threshold', async () => {
|
||||||
@ -1210,7 +1210,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
erc20Balances[validMakerAddress][defaultMakerAssetAddress].minus(validSignedOrder.makerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][defaultTakerAssetAddress].add(validSignedOrder.takerAssetAmount),
|
erc20Balances[validMakerAddress][defaultTakerAssetAddress].plus(validSignedOrder.takerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
erc20Balances[validMakerAddress][zrxToken.address].minus(validSignedOrder.makerFee),
|
||||||
@ -1220,7 +1220,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
erc20Balances[validMakerAddress2][defaultMakerAssetAddress].minus(makerAssetFillAmount2),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[validMakerAddress2][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validMakerAddress2][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
erc20Balances[validMakerAddress2][zrxToken.address].minus(makerFeePaid2),
|
||||||
@ -1230,7 +1230,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultTakerAssetAddress].minus(cumulativeTakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(cumulativeMakerAssetFillAmount),
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(cumulativeMakerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[validTakerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[validTakerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
@ -1238,9 +1238,9 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
// Fee recipient
|
// Fee recipient
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address]
|
erc20Balances[feeRecipientAddress][zrxToken.address]
|
||||||
.add(validSignedOrder.makerFee)
|
.plus(validSignedOrder.makerFee)
|
||||||
.add(makerFeePaid2)
|
.plus(makerFeePaid2)
|
||||||
.add(takerFeePaid),
|
.plus(takerFeePaid),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if one maker does not meet the balance threshold', async () => {
|
it('should revert if one maker does not meet the balance threshold', async () => {
|
||||||
@ -1329,7 +1329,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
newBalances[signedOrderLeft.makerAddress][defaultMakerAssetAddress],
|
newBalances[signedOrderLeft.makerAddress][defaultMakerAssetAddress],
|
||||||
'Checking left maker egress ERC20 account balance',
|
'Checking left maker egress ERC20 account balance',
|
||||||
).to.be.bignumber.equal(
|
).to.be.bignumber.equal(
|
||||||
erc20Balances[signedOrderLeft.makerAddress][defaultMakerAssetAddress].sub(
|
erc20Balances[signedOrderLeft.makerAddress][defaultMakerAssetAddress].minus(
|
||||||
expectedTransferAmounts.amountSoldByLeftMaker,
|
expectedTransferAmounts.amountSoldByLeftMaker,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1337,7 +1337,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
newBalances[signedOrderRight.makerAddress][defaultTakerAssetAddress],
|
newBalances[signedOrderRight.makerAddress][defaultTakerAssetAddress],
|
||||||
'Checking right maker ingress ERC20 account balance',
|
'Checking right maker ingress ERC20 account balance',
|
||||||
).to.be.bignumber.equal(
|
).to.be.bignumber.equal(
|
||||||
erc20Balances[signedOrderRight.makerAddress][defaultTakerAssetAddress].sub(
|
erc20Balances[signedOrderRight.makerAddress][defaultTakerAssetAddress].minus(
|
||||||
expectedTransferAmounts.amountSoldByRightMaker,
|
expectedTransferAmounts.amountSoldByRightMaker,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1345,7 +1345,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
newBalances[validTakerAddress][defaultMakerAssetAddress],
|
newBalances[validTakerAddress][defaultMakerAssetAddress],
|
||||||
'Checking taker ingress ERC20 account balance',
|
'Checking taker ingress ERC20 account balance',
|
||||||
).to.be.bignumber.equal(
|
).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][defaultMakerAssetAddress].add(
|
erc20Balances[validTakerAddress][defaultMakerAssetAddress].plus(
|
||||||
expectedTransferAmounts.amountReceivedByTaker,
|
expectedTransferAmounts.amountReceivedByTaker,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1353,7 +1353,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
newBalances[signedOrderLeft.makerAddress][defaultTakerAssetAddress],
|
newBalances[signedOrderLeft.makerAddress][defaultTakerAssetAddress],
|
||||||
'Checking left maker ingress ERC20 account balance',
|
'Checking left maker ingress ERC20 account balance',
|
||||||
).to.be.bignumber.equal(
|
).to.be.bignumber.equal(
|
||||||
erc20Balances[signedOrderLeft.makerAddress][defaultTakerAssetAddress].add(
|
erc20Balances[signedOrderLeft.makerAddress][defaultTakerAssetAddress].plus(
|
||||||
expectedTransferAmounts.amountBoughtByLeftMaker,
|
expectedTransferAmounts.amountBoughtByLeftMaker,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1361,7 +1361,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
newBalances[signedOrderRight.makerAddress][defaultMakerAssetAddress],
|
newBalances[signedOrderRight.makerAddress][defaultMakerAssetAddress],
|
||||||
'Checking right maker egress ERC20 account balance',
|
'Checking right maker egress ERC20 account balance',
|
||||||
).to.be.bignumber.equal(
|
).to.be.bignumber.equal(
|
||||||
erc20Balances[signedOrderRight.makerAddress][defaultMakerAssetAddress].add(
|
erc20Balances[signedOrderRight.makerAddress][defaultMakerAssetAddress].plus(
|
||||||
expectedTransferAmounts.amountBoughtByRightMaker,
|
expectedTransferAmounts.amountBoughtByRightMaker,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1388,7 +1388,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
).to.be.bignumber.equal(
|
).to.be.bignumber.equal(
|
||||||
erc20Balances[validTakerAddress][zrxToken.address]
|
erc20Balances[validTakerAddress][zrxToken.address]
|
||||||
.minus(expectedTransferAmounts.feePaidByTakerLeft)
|
.minus(expectedTransferAmounts.feePaidByTakerLeft)
|
||||||
.sub(expectedTransferAmounts.feePaidByTakerRight),
|
.minus(expectedTransferAmounts.feePaidByTakerRight),
|
||||||
);
|
);
|
||||||
// Received fees
|
// Received fees
|
||||||
expect(
|
expect(
|
||||||
@ -1396,10 +1396,10 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
'Checking left fee recipient ingress ERC20 account fees',
|
'Checking left fee recipient ingress ERC20 account fees',
|
||||||
).to.be.bignumber.equal(
|
).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address]
|
erc20Balances[feeRecipientAddress][zrxToken.address]
|
||||||
.add(expectedTransferAmounts.feePaidByLeftMaker)
|
.plus(expectedTransferAmounts.feePaidByLeftMaker)
|
||||||
.add(expectedTransferAmounts.feePaidByRightMaker)
|
.plus(expectedTransferAmounts.feePaidByRightMaker)
|
||||||
.add(expectedTransferAmounts.feePaidByTakerLeft)
|
.plus(expectedTransferAmounts.feePaidByTakerLeft)
|
||||||
.add(expectedTransferAmounts.feePaidByTakerRight),
|
.plus(expectedTransferAmounts.feePaidByTakerRight),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if left maker does not meet the balance threshold', async () => {
|
it('should revert if left maker does not meet the balance threshold', async () => {
|
||||||
@ -1595,7 +1595,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
signedOrder,
|
signedOrder,
|
||||||
);
|
);
|
||||||
const saltAsBigNumber = new BigNumber(salt);
|
const saltAsBigNumber = new BigNumber(salt);
|
||||||
if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
|
if (saltAsBigNumber.isLessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
|
||||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
|
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
|
||||||
} else {
|
} else {
|
||||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
|
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
|
||||||
@ -1631,7 +1631,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
|
|||||||
signedOrder,
|
signedOrder,
|
||||||
);
|
);
|
||||||
const saltAsBigNumber = new BigNumber(salt);
|
const saltAsBigNumber = new BigNumber(salt);
|
||||||
if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
|
if (saltAsBigNumber.isLessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
|
||||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
|
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
|
||||||
} else {
|
} else {
|
||||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
|
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
|
||||||
|
@ -29,7 +29,7 @@ export class ForwarderWrapper {
|
|||||||
feeOrder.takerAssetAmount
|
feeOrder.takerAssetAmount
|
||||||
.times(remainingFeeAmount)
|
.times(remainingFeeAmount)
|
||||||
.dividedBy(feeAvailable)
|
.dividedBy(feeAvailable)
|
||||||
.ceil(),
|
.integerValue(BigNumber.ROUND_CEIL),
|
||||||
);
|
);
|
||||||
remainingFeeAmount = new BigNumber(0);
|
remainingFeeAmount = new BigNumber(0);
|
||||||
} else if (!remainingFeeAmount.isZero()) {
|
} else if (!remainingFeeAmount.isZero()) {
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
"@types/yargs": "^10.0.0",
|
"@types/yargs": "^10.0.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"ethereumjs-abi": "0.6.5",
|
"ethereumjs-abi": "0.6.5",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
"@types/yargs": "^10.0.0",
|
"@types/yargs": "^10.0.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"mocha": "^4.1.0",
|
"mocha": "^4.1.0",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "2.2.3",
|
"version": "2.2.3",
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
"@types/yargs": "^10.0.0",
|
"@types/yargs": "^10.0.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"ethereumjs-abi": "0.6.5",
|
"ethereumjs-abi": "0.6.5",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -259,7 +259,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(amount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(amount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(amount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(amount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -318,7 +318,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(amount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(amount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(amount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(amount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -737,7 +737,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(totalAmount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should dispatch an ERC20 transfer when input amount is 0', async () => {
|
it('should dispatch an ERC20 transfer when input amount is 0', async () => {
|
||||||
@ -800,7 +800,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(totalAmount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should successfully transfer multiple different ERC20 tokens', async () => {
|
it('should successfully transfer multiple different ERC20 tokens', async () => {
|
||||||
@ -834,13 +834,13 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(totalErc20AAmount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(totalErc20AAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount),
|
erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenB.address].add(totalErc20BAmount),
|
erc20Balances[toAddress][erc20TokenB.address].plus(totalErc20BAmount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should transfer a single ERC721 token', async () => {
|
it('should transfer a single ERC721 token', async () => {
|
||||||
@ -970,7 +970,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(totalAmount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount),
|
||||||
);
|
);
|
||||||
const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId);
|
const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId);
|
||||||
expect(newOwnerFromAsset).to.be.equal(toAddress);
|
expect(newOwnerFromAsset).to.be.equal(toAddress);
|
||||||
@ -1008,7 +1008,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(totalAmount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount),
|
||||||
);
|
);
|
||||||
const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId);
|
const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId);
|
||||||
expect(newOwnerFromAsset).to.be.equal(toAddress);
|
expect(newOwnerFromAsset).to.be.equal(toAddress);
|
||||||
@ -1044,13 +1044,13 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(totalErc20AAmount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(totalErc20AAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount),
|
erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenB.address].add(totalErc20BAmount),
|
erc20Balances[toAddress][erc20TokenB.address].plus(totalErc20BAmount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should successfully transfer a large amount of tokens', async () => {
|
it('should successfully transfer a large amount of tokens', async () => {
|
||||||
@ -1122,13 +1122,13 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount),
|
erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenA.address].add(totalErc20AAmount),
|
erc20Balances[toAddress][erc20TokenA.address].plus(totalErc20AAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount),
|
erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[toAddress][erc20TokenB.address].add(totalErc20BAmount),
|
erc20Balances[toAddress][erc20TokenB.address].plus(totalErc20BAmount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('should revert if a single transfer fails', async () => {
|
it('should revert if a single transfer fails', async () => {
|
||||||
|
@ -538,7 +538,7 @@ describe('Exchange core', () => {
|
|||||||
it('should throw if order is expired', async () => {
|
it('should throw if order is expired', async () => {
|
||||||
const currentTimestamp = await getLatestBlockTimestampAsync();
|
const currentTimestamp = await getLatestBlockTimestampAsync();
|
||||||
signedOrder = await orderFactory.newSignedOrderAsync({
|
signedOrder = await orderFactory.newSignedOrderAsync({
|
||||||
expirationTimeSeconds: new BigNumber(currentTimestamp).sub(10),
|
expirationTimeSeconds: new BigNumber(currentTimestamp).minus(10),
|
||||||
});
|
});
|
||||||
return expectTransactionFailedAsync(
|
return expectTransactionFailedAsync(
|
||||||
exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress),
|
exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress),
|
||||||
@ -625,15 +625,15 @@ describe('Exchange core', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const newBalances = await erc20Wrapper.getBalancesAsync();
|
const newBalances = await erc20Wrapper.getBalancesAsync();
|
||||||
const fillMakerAssetAmount = signedOrders[2].makerAssetAmount.add(signedOrders[3].makerAssetAmount);
|
const fillMakerAssetAmount = signedOrders[2].makerAssetAmount.plus(signedOrders[3].makerAssetAmount);
|
||||||
const fillTakerAssetAmount = signedOrders[2].takerAssetAmount.add(signedOrders[3].takerAssetAmount);
|
const fillTakerAssetAmount = signedOrders[2].takerAssetAmount.plus(signedOrders[3].takerAssetAmount);
|
||||||
const makerFee = signedOrders[2].makerFee.add(signedOrders[3].makerFee);
|
const makerFee = signedOrders[2].makerFee.plus(signedOrders[3].makerFee);
|
||||||
const takerFee = signedOrders[2].takerFee.add(signedOrders[3].takerFee);
|
const takerFee = signedOrders[2].takerFee.plus(signedOrders[3].takerFee);
|
||||||
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(fillMakerAssetAmount),
|
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(fillMakerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress].add(fillTakerAssetAmount),
|
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(fillTakerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||||
@ -642,13 +642,13 @@ describe('Exchange core', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(fillTakerAssetAmount),
|
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(fillTakerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress].add(fillMakerAssetAmount),
|
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(fillMakerAssetAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFee.add(takerFee)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -205,7 +205,7 @@ describe('AssetProxyDispatcher', () => {
|
|||||||
erc20Balances[makerAddress][zrxToken.address].minus(amount),
|
erc20Balances[makerAddress][zrxToken.address].minus(amount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].add(amount),
|
erc20Balances[takerAddress][zrxToken.address].plus(amount),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -90,14 +90,14 @@ describe('Exchange core internal functions', () => {
|
|||||||
if (target.eq(0)) {
|
if (target.eq(0)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const product = numerator.mul(target);
|
const product = numerator.multipliedBy(target);
|
||||||
const remainder = product.mod(denominator);
|
const remainder = product.mod(denominator);
|
||||||
const remainderTimes1000 = remainder.mul('1000');
|
const remainderTimes1000 = remainder.multipliedBy('1000');
|
||||||
const isError = remainderTimes1000.gte(product);
|
const isError = remainderTimes1000.gte(product);
|
||||||
if (product.greaterThan(MAX_UINT256)) {
|
if (product.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
if (remainderTimes1000.greaterThan(MAX_UINT256)) {
|
if (remainderTimes1000.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
return isError;
|
return isError;
|
||||||
@ -117,15 +117,15 @@ describe('Exchange core internal functions', () => {
|
|||||||
if (target.eq(0)) {
|
if (target.eq(0)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const product = numerator.mul(target);
|
const product = numerator.multipliedBy(target);
|
||||||
const remainder = product.mod(denominator);
|
const remainder = product.mod(denominator);
|
||||||
const error = denominator.sub(remainder).mod(denominator);
|
const error = denominator.minus(remainder).mod(denominator);
|
||||||
const errorTimes1000 = error.mul('1000');
|
const errorTimes1000 = error.multipliedBy('1000');
|
||||||
const isError = errorTimes1000.gte(product);
|
const isError = errorTimes1000.gte(product);
|
||||||
if (product.greaterThan(MAX_UINT256)) {
|
if (product.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
if (errorTimes1000.greaterThan(MAX_UINT256)) {
|
if (errorTimes1000.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
return isError;
|
return isError;
|
||||||
@ -143,8 +143,8 @@ describe('Exchange core internal functions', () => {
|
|||||||
if (isRoundingError) {
|
if (isRoundingError) {
|
||||||
throw roundingErrorForCall;
|
throw roundingErrorForCall;
|
||||||
}
|
}
|
||||||
const product = numerator.mul(target);
|
const product = numerator.multipliedBy(target);
|
||||||
if (product.greaterThan(MAX_UINT256)) {
|
if (product.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
return product.dividedToIntegerBy(denominator);
|
return product.dividedToIntegerBy(denominator);
|
||||||
@ -177,8 +177,8 @@ describe('Exchange core internal functions', () => {
|
|||||||
_.cloneDeep(totalFillResults),
|
_.cloneDeep(totalFillResults),
|
||||||
singleFillResults,
|
singleFillResults,
|
||||||
(totalVal: BigNumber, singleVal: BigNumber) => {
|
(totalVal: BigNumber, singleVal: BigNumber) => {
|
||||||
const newTotal = totalVal.add(singleVal);
|
const newTotal = totalVal.plus(singleVal);
|
||||||
if (newTotal.greaterThan(MAX_UINT256)) {
|
if (newTotal.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
return newTotal;
|
return newTotal;
|
||||||
@ -271,8 +271,8 @@ describe('Exchange core internal functions', () => {
|
|||||||
if (denominator.eq(0)) {
|
if (denominator.eq(0)) {
|
||||||
throw divisionByZeroErrorForCall;
|
throw divisionByZeroErrorForCall;
|
||||||
}
|
}
|
||||||
const product = numerator.mul(target);
|
const product = numerator.multipliedBy(target);
|
||||||
if (product.greaterThan(MAX_UINT256)) {
|
if (product.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
return product.dividedToIntegerBy(denominator);
|
return product.dividedToIntegerBy(denominator);
|
||||||
@ -301,16 +301,16 @@ describe('Exchange core internal functions', () => {
|
|||||||
if (denominator.eq(0)) {
|
if (denominator.eq(0)) {
|
||||||
throw divisionByZeroErrorForCall;
|
throw divisionByZeroErrorForCall;
|
||||||
}
|
}
|
||||||
const product = numerator.mul(target);
|
const product = numerator.multipliedBy(target);
|
||||||
const offset = product.add(denominator.sub(1));
|
const offset = product.plus(denominator.minus(1));
|
||||||
if (offset.greaterThan(MAX_UINT256)) {
|
if (offset.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
const result = offset.dividedToIntegerBy(denominator);
|
const result = offset.dividedToIntegerBy(denominator);
|
||||||
if (product.mod(denominator).eq(0)) {
|
if (product.mod(denominator).eq(0)) {
|
||||||
expect(result.mul(denominator)).to.be.bignumber.eq(product);
|
expect(result.multipliedBy(denominator)).to.be.bignumber.eq(product);
|
||||||
} else {
|
} else {
|
||||||
expect(result.mul(denominator)).to.be.bignumber.gt(product);
|
expect(result.multipliedBy(denominator)).to.be.bignumber.gt(product);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -358,16 +358,16 @@ describe('Exchange core internal functions', () => {
|
|||||||
if (isRoundingError) {
|
if (isRoundingError) {
|
||||||
throw roundingErrorForCall;
|
throw roundingErrorForCall;
|
||||||
}
|
}
|
||||||
const product = numerator.mul(target);
|
const product = numerator.multipliedBy(target);
|
||||||
const offset = product.add(denominator.sub(1));
|
const offset = product.plus(denominator.minus(1));
|
||||||
if (offset.greaterThan(MAX_UINT256)) {
|
if (offset.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForCall;
|
throw overflowErrorForCall;
|
||||||
}
|
}
|
||||||
const result = offset.dividedToIntegerBy(denominator);
|
const result = offset.dividedToIntegerBy(denominator);
|
||||||
if (product.mod(denominator).eq(0)) {
|
if (product.mod(denominator).eq(0)) {
|
||||||
expect(result.mul(denominator)).to.be.bignumber.eq(product);
|
expect(result.multipliedBy(denominator)).to.be.bignumber.eq(product);
|
||||||
} else {
|
} else {
|
||||||
expect(result.mul(denominator)).to.be.bignumber.gt(product);
|
expect(result.multipliedBy(denominator)).to.be.bignumber.gt(product);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -433,8 +433,8 @@ describe('Exchange core internal functions', () => {
|
|||||||
// tslint:disable-next-line:no-unused-variable
|
// tslint:disable-next-line:no-unused-variable
|
||||||
orderHash: string,
|
orderHash: string,
|
||||||
): Promise<BigNumber> {
|
): Promise<BigNumber> {
|
||||||
const totalFilledAmount = takerAssetFilledAmount.add(orderTakerAssetFilledAmount);
|
const totalFilledAmount = takerAssetFilledAmount.plus(orderTakerAssetFilledAmount);
|
||||||
if (totalFilledAmount.greaterThan(MAX_UINT256)) {
|
if (totalFilledAmount.isGreaterThan(MAX_UINT256)) {
|
||||||
throw overflowErrorForSendTransaction;
|
throw overflowErrorForSendTransaction;
|
||||||
}
|
}
|
||||||
return totalFilledAmount;
|
return totalFilledAmount;
|
||||||
|
@ -160,7 +160,7 @@ describe('Exchange transactions', () => {
|
|||||||
erc20Balances[makerAddress][defaultMakerTokenAddress].minus(makerAssetFillAmount),
|
erc20Balances[makerAddress][defaultMakerTokenAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerTokenAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerTokenAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerTokenAddress].add(takerAssetFillAmount),
|
erc20Balances[makerAddress][defaultTakerTokenAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -169,13 +169,13 @@ describe('Exchange transactions', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerTokenAddress].minus(takerAssetFillAmount),
|
erc20Balances[takerAddress][defaultTakerTokenAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerTokenAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerTokenAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerTokenAddress].add(makerAssetFillAmount),
|
erc20Balances[takerAddress][defaultMakerTokenAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ describe('Exchange transactions', () => {
|
|||||||
senderAddress: exchangeWrapperContract.address,
|
senderAddress: exchangeWrapperContract.address,
|
||||||
salt: orderSalt,
|
salt: orderSalt,
|
||||||
});
|
});
|
||||||
const targetOrderEpoch = orderSalt.add(1);
|
const targetOrderEpoch = orderSalt.plus(1);
|
||||||
const cancelData = exchange.cancelOrdersUpTo.getABIEncodedTransactionData(targetOrderEpoch);
|
const cancelData = exchange.cancelOrdersUpTo.getABIEncodedTransactionData(targetOrderEpoch);
|
||||||
const signedCancelTx = makerTransactionFactory.newSignedTransaction(cancelData);
|
const signedCancelTx = makerTransactionFactory.newSignedTransaction(cancelData);
|
||||||
await exchangeWrapperContract.cancelOrdersUpTo.sendTransactionAsync(
|
await exchangeWrapperContract.cancelOrdersUpTo.sendTransactionAsync(
|
||||||
@ -273,7 +273,7 @@ describe('Exchange transactions', () => {
|
|||||||
senderAddress: exchangeWrapperContract.address,
|
senderAddress: exchangeWrapperContract.address,
|
||||||
salt: orderSalt,
|
salt: orderSalt,
|
||||||
});
|
});
|
||||||
const targetOrderEpoch = orderSalt.add(1);
|
const targetOrderEpoch = orderSalt.plus(1);
|
||||||
await exchangeWrapper.cancelOrdersUpToAsync(targetOrderEpoch, makerAddress);
|
await exchangeWrapper.cancelOrdersUpToAsync(targetOrderEpoch, makerAddress);
|
||||||
|
|
||||||
erc20Balances = await erc20Wrapper.getBalancesAsync();
|
erc20Balances = await erc20Wrapper.getBalancesAsync();
|
||||||
@ -308,7 +308,7 @@ describe('Exchange transactions', () => {
|
|||||||
erc20Balances[makerAddress][defaultMakerTokenAddress].minus(makerAssetFillAmount),
|
erc20Balances[makerAddress][defaultMakerTokenAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerTokenAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerTokenAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerTokenAddress].add(takerAssetFillAmount),
|
erc20Balances[makerAddress][defaultTakerTokenAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -317,13 +317,13 @@ describe('Exchange transactions', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerTokenAddress].minus(takerAssetFillAmount),
|
erc20Balances[takerAddress][defaultTakerTokenAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerTokenAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerTokenAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerTokenAddress].add(makerAssetFillAmount),
|
erc20Balances[takerAddress][defaultMakerTokenAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -444,7 +444,7 @@ describe('Exchange transactions', () => {
|
|||||||
erc20Balances[makerAddress][defaultMakerTokenAddress].minus(makerAssetFillAmount),
|
erc20Balances[makerAddress][defaultMakerTokenAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerTokenAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerTokenAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerTokenAddress].add(takerAssetFillAmount),
|
erc20Balances[makerAddress][defaultTakerTokenAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFeePaid),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFeePaid),
|
||||||
@ -453,13 +453,13 @@ describe('Exchange transactions', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerTokenAddress].minus(takerAssetFillAmount),
|
erc20Balances[takerAddress][defaultTakerTokenAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerTokenAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerTokenAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerTokenAddress].add(makerAssetFillAmount),
|
erc20Balances[takerAddress][defaultMakerTokenAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFeePaid),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFeePaid),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFeePaid.add(takerFeePaid)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFeePaid.plus(takerFeePaid)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -189,7 +189,7 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||||
@ -198,20 +198,20 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress].add(makerAssetFilledAmount),
|
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFee.add(takerFee)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should throw if a signedOrder is expired', async () => {
|
it('should throw if a signedOrder is expired', async () => {
|
||||||
const currentTimestamp = await getLatestBlockTimestampAsync();
|
const currentTimestamp = await getLatestBlockTimestampAsync();
|
||||||
const signedOrder = await orderFactory.newSignedOrderAsync({
|
const signedOrder = await orderFactory.newSignedOrderAsync({
|
||||||
expirationTimeSeconds: new BigNumber(currentTimestamp).sub(10),
|
expirationTimeSeconds: new BigNumber(currentTimestamp).minus(10),
|
||||||
});
|
});
|
||||||
|
|
||||||
return expectTransactionFailedAsync(
|
return expectTransactionFailedAsync(
|
||||||
@ -284,7 +284,7 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||||
@ -293,13 +293,13 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress].add(makerAssetFilledAmount),
|
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFee.add(takerFee)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -493,15 +493,15 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
||||||
makerAssetAddress
|
makerAssetAddress
|
||||||
].minus(makerAssetFilledAmount);
|
].minus(makerAssetFilledAmount);
|
||||||
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][takerAssetAddress].add(
|
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][
|
||||||
takerAssetFillAmount,
|
takerAssetAddress
|
||||||
);
|
].plus(takerAssetFillAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
makerFee,
|
makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][makerAssetAddress].add(
|
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][
|
||||||
makerAssetFilledAmount,
|
makerAssetAddress
|
||||||
);
|
].plus(makerAssetFilledAmount);
|
||||||
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
||||||
takerAssetAddress
|
takerAssetAddress
|
||||||
].minus(takerAssetFillAmount);
|
].minus(takerAssetFillAmount);
|
||||||
@ -510,7 +510,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(makerFee.add(takerFee));
|
].plus(makerFee.plus(takerFee));
|
||||||
});
|
});
|
||||||
|
|
||||||
await exchangeWrapper.batchFillOrdersAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.batchFillOrdersAsync(signedOrders, takerAddress, {
|
||||||
@ -562,15 +562,15 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
||||||
makerAssetAddress
|
makerAssetAddress
|
||||||
].minus(makerAssetFilledAmount);
|
].minus(makerAssetFilledAmount);
|
||||||
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][takerAssetAddress].add(
|
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][
|
||||||
takerAssetFillAmount,
|
takerAssetAddress
|
||||||
);
|
].plus(takerAssetFillAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
makerFee,
|
makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][makerAssetAddress].add(
|
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][
|
||||||
makerAssetFilledAmount,
|
makerAssetAddress
|
||||||
);
|
].plus(makerAssetFilledAmount);
|
||||||
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
||||||
takerAssetAddress
|
takerAssetAddress
|
||||||
].minus(takerAssetFillAmount);
|
].minus(takerAssetFillAmount);
|
||||||
@ -579,7 +579,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(makerFee.add(takerFee));
|
].plus(makerFee.plus(takerFee));
|
||||||
});
|
});
|
||||||
|
|
||||||
await exchangeWrapper.batchFillOrKillOrdersAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.batchFillOrKillOrdersAsync(signedOrders, takerAddress, {
|
||||||
@ -647,15 +647,15 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
||||||
makerAssetAddress
|
makerAssetAddress
|
||||||
].minus(makerAssetFilledAmount);
|
].minus(makerAssetFilledAmount);
|
||||||
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][takerAssetAddress].add(
|
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][
|
||||||
takerAssetFillAmount,
|
takerAssetAddress
|
||||||
);
|
].plus(takerAssetFillAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
makerFee,
|
makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][makerAssetAddress].add(
|
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][
|
||||||
makerAssetFilledAmount,
|
makerAssetAddress
|
||||||
);
|
].plus(makerAssetFilledAmount);
|
||||||
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
||||||
takerAssetAddress
|
takerAssetAddress
|
||||||
].minus(takerAssetFillAmount);
|
].minus(takerAssetFillAmount);
|
||||||
@ -664,7 +664,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(makerFee.add(takerFee));
|
].plus(makerFee.plus(takerFee));
|
||||||
});
|
});
|
||||||
|
|
||||||
await exchangeWrapper.batchFillOrdersNoThrowAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.batchFillOrdersNoThrowAsync(signedOrders, takerAddress, {
|
||||||
@ -706,15 +706,15 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][makerAssetAddress] = erc20Balances[makerAddress][
|
||||||
makerAssetAddress
|
makerAssetAddress
|
||||||
].minus(makerAssetFilledAmount);
|
].minus(makerAssetFilledAmount);
|
||||||
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][takerAssetAddress].add(
|
erc20Balances[makerAddress][takerAssetAddress] = erc20Balances[makerAddress][
|
||||||
takerAssetFillAmount,
|
takerAssetAddress
|
||||||
);
|
].plus(takerAssetFillAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
makerFee,
|
makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][makerAssetAddress].add(
|
erc20Balances[takerAddress][makerAssetAddress] = erc20Balances[takerAddress][
|
||||||
makerAssetFilledAmount,
|
makerAssetAddress
|
||||||
);
|
].plus(makerAssetFilledAmount);
|
||||||
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][takerAssetAddress] = erc20Balances[takerAddress][
|
||||||
takerAssetAddress
|
takerAssetAddress
|
||||||
].minus(takerAssetFillAmount);
|
].minus(takerAssetFillAmount);
|
||||||
@ -723,7 +723,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(makerFee.add(takerFee));
|
].plus(makerFee.plus(takerFee));
|
||||||
});
|
});
|
||||||
|
|
||||||
const newOrders = [invalidOrder, ...validOrders];
|
const newOrders = [invalidOrder, ...validOrders];
|
||||||
@ -773,16 +773,16 @@ describe('Exchange wrappers', () => {
|
|||||||
|
|
||||||
const newBalances = await erc20Wrapper.getBalancesAsync();
|
const newBalances = await erc20Wrapper.getBalancesAsync();
|
||||||
|
|
||||||
const makerAssetFilledAmount = signedOrders[0].makerAssetAmount.add(
|
const makerAssetFilledAmount = signedOrders[0].makerAssetAmount.plus(
|
||||||
signedOrders[1].makerAssetAmount.dividedToIntegerBy(2),
|
signedOrders[1].makerAssetAmount.dividedToIntegerBy(2),
|
||||||
);
|
);
|
||||||
const makerFee = signedOrders[0].makerFee.add(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
const makerFee = signedOrders[0].makerFee.plus(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
||||||
const takerFee = signedOrders[0].takerFee.add(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
const takerFee = signedOrders[0].takerFee.plus(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
||||||
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||||
@ -791,13 +791,13 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress].add(makerAssetFilledAmount),
|
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFee.add(takerFee)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -809,13 +809,13 @@ describe('Exchange wrappers', () => {
|
|||||||
].minus(signedOrder.makerAssetAmount);
|
].minus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].add(signedOrder.takerAssetAmount);
|
].plus(signedOrder.takerAssetAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
signedOrder.makerFee,
|
signedOrder.makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultMakerAssetAddress
|
defaultMakerAssetAddress
|
||||||
].add(signedOrder.makerAssetAmount);
|
].plus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].minus(signedOrder.takerAssetAmount);
|
].minus(signedOrder.takerAssetAmount);
|
||||||
@ -824,7 +824,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(signedOrder.makerFee.add(signedOrder.takerFee));
|
].plus(signedOrder.makerFee.plus(signedOrder.takerFee));
|
||||||
});
|
});
|
||||||
await exchangeWrapper.marketSellOrdersAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.marketSellOrdersAsync(signedOrders, takerAddress, {
|
||||||
takerAssetFillAmount,
|
takerAssetFillAmount,
|
||||||
@ -890,16 +890,16 @@ describe('Exchange wrappers', () => {
|
|||||||
|
|
||||||
const newBalances = await erc20Wrapper.getBalancesAsync();
|
const newBalances = await erc20Wrapper.getBalancesAsync();
|
||||||
|
|
||||||
const makerAssetFilledAmount = signedOrders[0].makerAssetAmount.add(
|
const makerAssetFilledAmount = signedOrders[0].makerAssetAmount.plus(
|
||||||
signedOrders[1].makerAssetAmount.dividedToIntegerBy(2),
|
signedOrders[1].makerAssetAmount.dividedToIntegerBy(2),
|
||||||
);
|
);
|
||||||
const makerFee = signedOrders[0].makerFee.add(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
const makerFee = signedOrders[0].makerFee.plus(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
||||||
const takerFee = signedOrders[0].takerFee.add(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
const takerFee = signedOrders[0].takerFee.plus(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
||||||
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress].add(takerAssetFillAmount),
|
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||||
@ -908,13 +908,13 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(takerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress].add(makerAssetFilledAmount),
|
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(makerAssetFilledAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFee.add(takerFee)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -926,13 +926,13 @@ describe('Exchange wrappers', () => {
|
|||||||
].minus(signedOrder.makerAssetAmount);
|
].minus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].add(signedOrder.takerAssetAmount);
|
].plus(signedOrder.takerAssetAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
signedOrder.makerFee,
|
signedOrder.makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultMakerAssetAddress
|
defaultMakerAssetAddress
|
||||||
].add(signedOrder.makerAssetAmount);
|
].plus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].minus(signedOrder.takerAssetAmount);
|
].minus(signedOrder.takerAssetAmount);
|
||||||
@ -941,7 +941,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(signedOrder.makerFee.add(signedOrder.takerFee));
|
].plus(signedOrder.makerFee.plus(signedOrder.takerFee));
|
||||||
});
|
});
|
||||||
await exchangeWrapper.marketSellOrdersNoThrowAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.marketSellOrdersNoThrowAsync(signedOrders, takerAddress, {
|
||||||
takerAssetFillAmount,
|
takerAssetFillAmount,
|
||||||
@ -971,13 +971,13 @@ describe('Exchange wrappers', () => {
|
|||||||
].minus(signedOrder.makerAssetAmount);
|
].minus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].add(signedOrder.takerAssetAmount);
|
].plus(signedOrder.takerAssetAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
signedOrder.makerFee,
|
signedOrder.makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultMakerAssetAddress
|
defaultMakerAssetAddress
|
||||||
].add(signedOrder.makerAssetAmount);
|
].plus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].minus(signedOrder.takerAssetAmount);
|
].minus(signedOrder.takerAssetAmount);
|
||||||
@ -986,7 +986,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(signedOrder.makerFee.add(signedOrder.takerFee));
|
].plus(signedOrder.makerFee.plus(signedOrder.takerFee));
|
||||||
});
|
});
|
||||||
await exchangeWrapper.marketSellOrdersNoThrowAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.marketSellOrdersNoThrowAsync(signedOrders, takerAddress, {
|
||||||
takerAssetFillAmount,
|
takerAssetFillAmount,
|
||||||
@ -1034,16 +1034,16 @@ describe('Exchange wrappers', () => {
|
|||||||
|
|
||||||
const newBalances = await erc20Wrapper.getBalancesAsync();
|
const newBalances = await erc20Wrapper.getBalancesAsync();
|
||||||
|
|
||||||
const makerAmountBought = signedOrders[0].takerAssetAmount.add(
|
const makerAmountBought = signedOrders[0].takerAssetAmount.plus(
|
||||||
signedOrders[1].takerAssetAmount.dividedToIntegerBy(2),
|
signedOrders[1].takerAssetAmount.dividedToIntegerBy(2),
|
||||||
);
|
);
|
||||||
const makerFee = signedOrders[0].makerFee.add(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
const makerFee = signedOrders[0].makerFee.plus(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
||||||
const takerFee = signedOrders[0].takerFee.add(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
const takerFee = signedOrders[0].takerFee.plus(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
||||||
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress].add(makerAmountBought),
|
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(makerAmountBought),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||||
@ -1052,13 +1052,13 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(makerAmountBought),
|
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(makerAmountBought),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount),
|
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFee.add(takerFee)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1070,13 +1070,13 @@ describe('Exchange wrappers', () => {
|
|||||||
].minus(signedOrder.makerAssetAmount);
|
].minus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].add(signedOrder.takerAssetAmount);
|
].plus(signedOrder.takerAssetAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
signedOrder.makerFee,
|
signedOrder.makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultMakerAssetAddress
|
defaultMakerAssetAddress
|
||||||
].add(signedOrder.makerAssetAmount);
|
].plus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].minus(signedOrder.takerAssetAmount);
|
].minus(signedOrder.takerAssetAmount);
|
||||||
@ -1085,7 +1085,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(signedOrder.makerFee.add(signedOrder.takerFee));
|
].plus(signedOrder.makerFee.plus(signedOrder.takerFee));
|
||||||
});
|
});
|
||||||
await exchangeWrapper.marketBuyOrdersAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.marketBuyOrdersAsync(signedOrders, takerAddress, {
|
||||||
makerAssetFillAmount,
|
makerAssetFillAmount,
|
||||||
@ -1149,16 +1149,16 @@ describe('Exchange wrappers', () => {
|
|||||||
|
|
||||||
const newBalances = await erc20Wrapper.getBalancesAsync();
|
const newBalances = await erc20Wrapper.getBalancesAsync();
|
||||||
|
|
||||||
const makerAmountBought = signedOrders[0].takerAssetAmount.add(
|
const makerAmountBought = signedOrders[0].takerAssetAmount.plus(
|
||||||
signedOrders[1].takerAssetAmount.dividedToIntegerBy(2),
|
signedOrders[1].takerAssetAmount.dividedToIntegerBy(2),
|
||||||
);
|
);
|
||||||
const makerFee = signedOrders[0].makerFee.add(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
const makerFee = signedOrders[0].makerFee.plus(signedOrders[1].makerFee.dividedToIntegerBy(2));
|
||||||
const takerFee = signedOrders[0].takerFee.add(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
const takerFee = signedOrders[0].takerFee.plus(signedOrders[1].takerFee.dividedToIntegerBy(2));
|
||||||
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
erc20Balances[makerAddress][defaultMakerAssetAddress].minus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress].add(makerAmountBought),
|
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(makerAmountBought),
|
||||||
);
|
);
|
||||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||||
@ -1167,13 +1167,13 @@ describe('Exchange wrappers', () => {
|
|||||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(makerAmountBought),
|
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(makerAmountBought),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress].add(makerAssetFillAmount),
|
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(makerAssetFillAmount),
|
||||||
);
|
);
|
||||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||||
);
|
);
|
||||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address].add(makerFee.add(takerFee)),
|
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1185,13 +1185,13 @@ describe('Exchange wrappers', () => {
|
|||||||
].minus(signedOrder.makerAssetAmount);
|
].minus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].add(signedOrder.takerAssetAmount);
|
].plus(signedOrder.takerAssetAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
signedOrder.makerFee,
|
signedOrder.makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultMakerAssetAddress
|
defaultMakerAssetAddress
|
||||||
].add(signedOrder.makerAssetAmount);
|
].plus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].minus(signedOrder.takerAssetAmount);
|
].minus(signedOrder.takerAssetAmount);
|
||||||
@ -1200,7 +1200,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(signedOrder.makerFee.add(signedOrder.takerFee));
|
].plus(signedOrder.makerFee.plus(signedOrder.takerFee));
|
||||||
});
|
});
|
||||||
await exchangeWrapper.marketBuyOrdersNoThrowAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.marketBuyOrdersNoThrowAsync(signedOrders, takerAddress, {
|
||||||
makerAssetFillAmount,
|
makerAssetFillAmount,
|
||||||
@ -1231,13 +1231,13 @@ describe('Exchange wrappers', () => {
|
|||||||
].minus(signedOrder.makerAssetAmount);
|
].minus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
erc20Balances[makerAddress][defaultTakerAssetAddress] = erc20Balances[makerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].add(signedOrder.takerAssetAmount);
|
].plus(signedOrder.takerAssetAmount);
|
||||||
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
erc20Balances[makerAddress][zrxToken.address] = erc20Balances[makerAddress][zrxToken.address].minus(
|
||||||
signedOrder.makerFee,
|
signedOrder.makerFee,
|
||||||
);
|
);
|
||||||
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultMakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultMakerAssetAddress
|
defaultMakerAssetAddress
|
||||||
].add(signedOrder.makerAssetAmount);
|
].plus(signedOrder.makerAssetAmount);
|
||||||
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
erc20Balances[takerAddress][defaultTakerAssetAddress] = erc20Balances[takerAddress][
|
||||||
defaultTakerAssetAddress
|
defaultTakerAssetAddress
|
||||||
].minus(signedOrder.takerAssetAmount);
|
].minus(signedOrder.takerAssetAmount);
|
||||||
@ -1246,7 +1246,7 @@ describe('Exchange wrappers', () => {
|
|||||||
);
|
);
|
||||||
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
erc20Balances[feeRecipientAddress][zrxToken.address] = erc20Balances[feeRecipientAddress][
|
||||||
zrxToken.address
|
zrxToken.address
|
||||||
].add(signedOrder.makerFee.add(signedOrder.takerFee));
|
].plus(signedOrder.makerFee.plus(signedOrder.takerFee));
|
||||||
});
|
});
|
||||||
await exchangeWrapper.marketBuyOrdersNoThrowAsync(signedOrders, takerAddress, {
|
await exchangeWrapper.marketBuyOrdersNoThrowAsync(signedOrders, takerAddress, {
|
||||||
makerAssetFillAmount,
|
makerAssetFillAmount,
|
||||||
|
@ -469,7 +469,7 @@ export class FillOrderCombinatorialUtils {
|
|||||||
const remainingTakerAmountToFill = signedOrder.takerAssetAmount.minus(alreadyFilledTakerAmount);
|
const remainingTakerAmountToFill = signedOrder.takerAssetAmount.minus(alreadyFilledTakerAmount);
|
||||||
const expFilledTakerAmount = takerAssetFillAmount.gt(remainingTakerAmountToFill)
|
const expFilledTakerAmount = takerAssetFillAmount.gt(remainingTakerAmountToFill)
|
||||||
? remainingTakerAmountToFill
|
? remainingTakerAmountToFill
|
||||||
: alreadyFilledTakerAmount.add(takerAssetFillAmount);
|
: alreadyFilledTakerAmount.plus(takerAssetFillAmount);
|
||||||
|
|
||||||
const expFilledMakerAmount = orderUtils.getPartialAmountFloor(
|
const expFilledMakerAmount = orderUtils.getPartialAmountFloor(
|
||||||
expFilledTakerAmount,
|
expFilledTakerAmount,
|
||||||
@ -644,7 +644,7 @@ export class FillOrderCombinatorialUtils {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case TakerAssetFillAmountScenario.GreaterThanRemainingFillableTakerAssetAmount:
|
case TakerAssetFillAmountScenario.GreaterThanRemainingFillableTakerAssetAmount:
|
||||||
takerAssetFillAmount = fillableTakerAssetAmount.add(1);
|
takerAssetFillAmount = fillableTakerAssetAmount.plus(1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TakerAssetFillAmountScenario.LessThanRemainingFillableTakerAssetAmount:
|
case TakerAssetFillAmountScenario.LessThanRemainingFillableTakerAssetAmount:
|
||||||
@ -657,7 +657,7 @@ export class FillOrderCombinatorialUtils {
|
|||||||
'Cannot test `TakerAssetFillAmountScenario.LessThanRemainingFillableTakerAssetAmount` together with ERC721 assets since orders involving ERC721 must always be filled exactly.',
|
'Cannot test `TakerAssetFillAmountScenario.LessThanRemainingFillableTakerAssetAmount` together with ERC721 assets since orders involving ERC721 must always be filled exactly.',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
takerAssetFillAmount = fillableTakerAssetAmount.div(2).floor();
|
takerAssetFillAmount = fillableTakerAssetAmount.div(2).integerValue(BigNumber.ROUND_FLOOR);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -66,7 +66,7 @@ export class MatchOrderTester {
|
|||||||
const feePaidByRightMaker = new BigNumber(rightLog.makerFeePaid);
|
const feePaidByRightMaker = new BigNumber(rightLog.makerFeePaid);
|
||||||
const feePaidByTakerRight = new BigNumber(rightLog.takerFeePaid);
|
const feePaidByTakerRight = new BigNumber(rightLog.takerFeePaid);
|
||||||
// Derive amount received by taker
|
// Derive amount received by taker
|
||||||
const amountReceivedByTaker = amountSoldByLeftMaker.sub(amountBoughtByRightMaker);
|
const amountReceivedByTaker = amountSoldByLeftMaker.minus(amountBoughtByRightMaker);
|
||||||
// Assert log values - left order
|
// Assert log values - left order
|
||||||
expect(amountBoughtByLeftMaker, 'Checking logged amount bought by left maker').to.be.bignumber.equal(
|
expect(amountBoughtByLeftMaker, 'Checking logged amount bought by left maker').to.be.bignumber.equal(
|
||||||
expectedTransferAmounts.amountBoughtByLeftMaker,
|
expectedTransferAmounts.amountBoughtByLeftMaker,
|
||||||
@ -267,14 +267,16 @@ export class MatchOrderTester {
|
|||||||
// Assert left order status
|
// Assert left order status
|
||||||
const maxAmountBoughtByLeftMaker = signedOrderLeft.takerAssetAmount.minus(initialLeftOrderFilledAmount);
|
const maxAmountBoughtByLeftMaker = signedOrderLeft.takerAssetAmount.minus(initialLeftOrderFilledAmount);
|
||||||
const leftOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderLeft);
|
const leftOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderLeft);
|
||||||
const leftExpectedStatus = expectedTransferAmounts.amountBoughtByLeftMaker.equals(maxAmountBoughtByLeftMaker)
|
const leftExpectedStatus = expectedTransferAmounts.amountBoughtByLeftMaker.isEqualTo(maxAmountBoughtByLeftMaker)
|
||||||
? OrderStatus.FullyFilled
|
? OrderStatus.FullyFilled
|
||||||
: OrderStatus.Fillable;
|
: OrderStatus.Fillable;
|
||||||
expect(leftOrderInfo.orderStatus, 'Checking exchange status for left order').to.be.equal(leftExpectedStatus);
|
expect(leftOrderInfo.orderStatus, 'Checking exchange status for left order').to.be.equal(leftExpectedStatus);
|
||||||
// Assert right order status
|
// Assert right order status
|
||||||
const maxAmountBoughtByRightMaker = signedOrderRight.takerAssetAmount.minus(initialRightOrderFilledAmount);
|
const maxAmountBoughtByRightMaker = signedOrderRight.takerAssetAmount.minus(initialRightOrderFilledAmount);
|
||||||
const rightOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderRight);
|
const rightOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderRight);
|
||||||
const rightExpectedStatus = expectedTransferAmounts.amountBoughtByRightMaker.equals(maxAmountBoughtByRightMaker)
|
const rightExpectedStatus = expectedTransferAmounts.amountBoughtByRightMaker.isEqualTo(
|
||||||
|
maxAmountBoughtByRightMaker,
|
||||||
|
)
|
||||||
? OrderStatus.FullyFilled
|
? OrderStatus.FullyFilled
|
||||||
: OrderStatus.Fillable;
|
: OrderStatus.Fillable;
|
||||||
expect(rightOrderInfo.orderStatus, 'Checking exchange status for right order').to.be.equal(rightExpectedStatus);
|
expect(rightOrderInfo.orderStatus, 'Checking exchange status for right order').to.be.equal(rightExpectedStatus);
|
||||||
@ -364,13 +366,13 @@ export class MatchOrderTester {
|
|||||||
// Right Maker
|
// Right Maker
|
||||||
expectedNewERC20BalancesByOwner[makerAddressRight][
|
expectedNewERC20BalancesByOwner[makerAddressRight][
|
||||||
takerAssetAddressRight
|
takerAssetAddressRight
|
||||||
] = expectedNewERC20BalancesByOwner[makerAddressRight][takerAssetAddressRight].add(
|
] = expectedNewERC20BalancesByOwner[makerAddressRight][takerAssetAddressRight].plus(
|
||||||
expectedTransferAmounts.amountBoughtByRightMaker,
|
expectedTransferAmounts.amountBoughtByRightMaker,
|
||||||
);
|
);
|
||||||
// Taker
|
// Taker
|
||||||
expectedNewERC20BalancesByOwner[takerAddress][makerAssetAddressLeft] = expectedNewERC20BalancesByOwner[
|
expectedNewERC20BalancesByOwner[takerAddress][makerAssetAddressLeft] = expectedNewERC20BalancesByOwner[
|
||||||
takerAddress
|
takerAddress
|
||||||
][makerAssetAddressLeft].add(expectedTransferAmounts.amountReceivedByTaker);
|
][makerAssetAddressLeft].plus(expectedTransferAmounts.amountReceivedByTaker);
|
||||||
} else if (makerAssetProxyIdLeft === AssetProxyId.ERC721) {
|
} else if (makerAssetProxyIdLeft === AssetProxyId.ERC721) {
|
||||||
// Decode asset data
|
// Decode asset data
|
||||||
const erc721AssetData = assetDataUtils.decodeERC721AssetData(signedOrderLeft.makerAssetData);
|
const erc721AssetData = assetDataUtils.decodeERC721AssetData(signedOrderLeft.makerAssetData);
|
||||||
@ -395,7 +397,7 @@ export class MatchOrderTester {
|
|||||||
// Left Maker
|
// Left Maker
|
||||||
expectedNewERC20BalancesByOwner[makerAddressLeft][takerAssetAddressLeft] = expectedNewERC20BalancesByOwner[
|
expectedNewERC20BalancesByOwner[makerAddressLeft][takerAssetAddressLeft] = expectedNewERC20BalancesByOwner[
|
||||||
makerAddressLeft
|
makerAddressLeft
|
||||||
][takerAssetAddressLeft].add(expectedTransferAmounts.amountBoughtByLeftMaker);
|
][takerAssetAddressLeft].plus(expectedTransferAmounts.amountBoughtByLeftMaker);
|
||||||
// Right Maker
|
// Right Maker
|
||||||
expectedNewERC20BalancesByOwner[makerAddressRight][
|
expectedNewERC20BalancesByOwner[makerAddressRight][
|
||||||
makerAssetAddressRight
|
makerAssetAddressRight
|
||||||
@ -426,19 +428,19 @@ export class MatchOrderTester {
|
|||||||
expectedNewERC20BalancesByOwner[takerAddress][this._feeTokenAddress] = expectedNewERC20BalancesByOwner[
|
expectedNewERC20BalancesByOwner[takerAddress][this._feeTokenAddress] = expectedNewERC20BalancesByOwner[
|
||||||
takerAddress
|
takerAddress
|
||||||
][this._feeTokenAddress].minus(
|
][this._feeTokenAddress].minus(
|
||||||
expectedTransferAmounts.feePaidByTakerLeft.add(expectedTransferAmounts.feePaidByTakerRight),
|
expectedTransferAmounts.feePaidByTakerLeft.plus(expectedTransferAmounts.feePaidByTakerRight),
|
||||||
);
|
);
|
||||||
// Left Fee Recipient Fees
|
// Left Fee Recipient Fees
|
||||||
expectedNewERC20BalancesByOwner[feeRecipientAddressLeft][
|
expectedNewERC20BalancesByOwner[feeRecipientAddressLeft][
|
||||||
this._feeTokenAddress
|
this._feeTokenAddress
|
||||||
] = expectedNewERC20BalancesByOwner[feeRecipientAddressLeft][this._feeTokenAddress].add(
|
] = expectedNewERC20BalancesByOwner[feeRecipientAddressLeft][this._feeTokenAddress].plus(
|
||||||
expectedTransferAmounts.feePaidByLeftMaker.add(expectedTransferAmounts.feePaidByTakerLeft),
|
expectedTransferAmounts.feePaidByLeftMaker.plus(expectedTransferAmounts.feePaidByTakerLeft),
|
||||||
);
|
);
|
||||||
// Right Fee Recipient Fees
|
// Right Fee Recipient Fees
|
||||||
expectedNewERC20BalancesByOwner[feeRecipientAddressRight][
|
expectedNewERC20BalancesByOwner[feeRecipientAddressRight][
|
||||||
this._feeTokenAddress
|
this._feeTokenAddress
|
||||||
] = expectedNewERC20BalancesByOwner[feeRecipientAddressRight][this._feeTokenAddress].add(
|
] = expectedNewERC20BalancesByOwner[feeRecipientAddressRight][this._feeTokenAddress].plus(
|
||||||
expectedTransferAmounts.feePaidByRightMaker.add(expectedTransferAmounts.feePaidByTakerRight),
|
expectedTransferAmounts.feePaidByRightMaker.plus(expectedTransferAmounts.feePaidByTakerRight),
|
||||||
);
|
);
|
||||||
|
|
||||||
return [expectedNewERC20BalancesByOwner, expectedNewERC721TokenIdsByOwner];
|
return [expectedNewERC20BalancesByOwner, expectedNewERC721TokenIdsByOwner];
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
|
@ -61,7 +61,7 @@
|
|||||||
"bn.js": "^4.11.8",
|
"bn.js": "^4.11.8",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"ethereum-types": "^1.1.6",
|
"ethereum-types": "^1.1.6",
|
||||||
"ethereumjs-abi": "0.6.5",
|
"ethereumjs-abi": "0.6.5",
|
||||||
|
@ -21,7 +21,7 @@ export class OrderFactory {
|
|||||||
const currentBlockTimestamp = await getLatestBlockTimestampAsync();
|
const currentBlockTimestamp = await getLatestBlockTimestampAsync();
|
||||||
const order = ({
|
const order = ({
|
||||||
senderAddress: constants.NULL_ADDRESS,
|
senderAddress: constants.NULL_ADDRESS,
|
||||||
expirationTimeSeconds: new BigNumber(currentBlockTimestamp).add(tenMinutesInSeconds),
|
expirationTimeSeconds: new BigNumber(currentBlockTimestamp).plus(tenMinutesInSeconds),
|
||||||
salt: generatePseudoRandomSalt(),
|
salt: generatePseudoRandomSalt(),
|
||||||
takerAddress: constants.NULL_ADDRESS,
|
takerAddress: constants.NULL_ADDRESS,
|
||||||
...this._defaultOrderParams,
|
...this._defaultOrderParams,
|
||||||
|
@ -7,9 +7,9 @@ import { CancelOrder, MatchOrder } from './types';
|
|||||||
export const orderUtils = {
|
export const orderUtils = {
|
||||||
getPartialAmountFloor(numerator: BigNumber, denominator: BigNumber, target: BigNumber): BigNumber {
|
getPartialAmountFloor(numerator: BigNumber, denominator: BigNumber, target: BigNumber): BigNumber {
|
||||||
const partialAmount = numerator
|
const partialAmount = numerator
|
||||||
.mul(target)
|
.multipliedBy(target)
|
||||||
.div(denominator)
|
.div(denominator)
|
||||||
.floor();
|
.integerValue(BigNumber.ROUND_FLOOR);
|
||||||
return partialAmount;
|
return partialAmount;
|
||||||
},
|
},
|
||||||
createFill: (signedOrder: SignedOrder, takerAssetFillAmount?: BigNumber) => {
|
createFill: (signedOrder: SignedOrder, takerAssetFillAmount?: BigNumber) => {
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
"@types/yargs": "^10.0.0",
|
"@types/yargs": "^10.0.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"ethereumjs-abi": "0.6.5",
|
"ethereumjs-abi": "0.6.5",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -109,7 +109,7 @@ describe('UnlimitedAllowanceToken', () => {
|
|||||||
const amountToTransfer = ownerBalance;
|
const amountToTransfer = ownerBalance;
|
||||||
|
|
||||||
const spenderAllowance = await token.allowance.callAsync(owner, spender);
|
const spenderAllowance = await token.allowance.callAsync(owner, spender);
|
||||||
const isSpenderAllowanceInsufficient = spenderAllowance.cmp(amountToTransfer) < 0;
|
const isSpenderAllowanceInsufficient = spenderAllowance.comparedTo(amountToTransfer) < 0;
|
||||||
expect(isSpenderAllowanceInsufficient).to.be.true();
|
expect(isSpenderAllowanceInsufficient).to.be.true();
|
||||||
|
|
||||||
return expectContractCallFailedAsync(
|
return expectContractCallFailedAsync(
|
||||||
|
@ -117,7 +117,7 @@ describe('ZRXToken', () => {
|
|||||||
const amountToTransfer = ownerBalance;
|
const amountToTransfer = ownerBalance;
|
||||||
|
|
||||||
const spenderAllowance = await zrxToken.allowance.callAsync(owner, spender);
|
const spenderAllowance = await zrxToken.allowance.callAsync(owner, spender);
|
||||||
const isSpenderAllowanceInsufficient = spenderAllowance.cmp(amountToTransfer) < 0;
|
const isSpenderAllowanceInsufficient = spenderAllowance.comparedTo(amountToTransfer) < 0;
|
||||||
expect(isSpenderAllowanceInsufficient).to.be.true();
|
expect(isSpenderAllowanceInsufficient).to.be.true();
|
||||||
|
|
||||||
const didReturnTrue = await zrxToken.transferFrom.callAsync(owner, spender, amountToTransfer, {
|
const didReturnTrue = await zrxToken.transferFrom.callAsync(owner, spender, amountToTransfer, {
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
"bn.js": "^4.11.8",
|
"bn.js": "^4.11.8",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"ethereumjs-abi": "0.6.5",
|
"ethereumjs-abi": "0.6.5",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "4.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
"awesome-typescript-loader": "^5.2.1",
|
"awesome-typescript-loader": "^5.2.1",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"copyfiles": "^2.0.0",
|
"copyfiles": "^2.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"changes": [
|
"changes": [
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.0.22",
|
"version": "1.0.22",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.0.23",
|
"version": "1.0.23",
|
||||||
|
@ -7,12 +7,12 @@ const HEX_REGEX = /^0x[0-9A-F]*$/i;
|
|||||||
|
|
||||||
export const assert = {
|
export const assert = {
|
||||||
isBigNumber(variableName: string, value: BigNumber): void {
|
isBigNumber(variableName: string, value: BigNumber): void {
|
||||||
const isBigNumber = _.isObject(value) && (value as any).isBigNumber;
|
const isBigNumber = BigNumber.isBigNumber(value);
|
||||||
assert.assert(isBigNumber, assert.typeAssertionMessage(variableName, 'BigNumber', value));
|
assert.assert(isBigNumber, assert.typeAssertionMessage(variableName, 'BigNumber', value));
|
||||||
},
|
},
|
||||||
isValidBaseUnitAmount(variableName: string, value: BigNumber): void {
|
isValidBaseUnitAmount(variableName: string, value: BigNumber): void {
|
||||||
assert.isBigNumber(variableName, value);
|
assert.isBigNumber(variableName, value);
|
||||||
const isNegative = value.lessThan(0);
|
const isNegative = value.isLessThan(0);
|
||||||
assert.assert(!isNegative, `${variableName} cannot be a negative number, found value: ${value.toNumber()}`);
|
assert.assert(!isNegative, `${variableName} cannot be a negative number, found value: ${value.toNumber()}`);
|
||||||
const hasDecimals = value.decimalPlaces() !== 0;
|
const hasDecimals = value.decimalPlaces() !== 0;
|
||||||
assert.assert(
|
assert.assert(
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "5.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"changes": [
|
"changes": [
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"mocha": "^4.1.0",
|
"mocha": "^4.1.0",
|
||||||
|
@ -22,7 +22,7 @@ export const buyQuoteCalculator = {
|
|||||||
const remainingFillableMakerAssetAmounts = ordersAndFillableAmounts.remainingFillableMakerAssetAmounts;
|
const remainingFillableMakerAssetAmounts = ordersAndFillableAmounts.remainingFillableMakerAssetAmounts;
|
||||||
const feeOrders = feeOrdersAndFillableAmounts.orders;
|
const feeOrders = feeOrdersAndFillableAmounts.orders;
|
||||||
const remainingFillableFeeAmounts = feeOrdersAndFillableAmounts.remainingFillableMakerAssetAmounts;
|
const remainingFillableFeeAmounts = feeOrdersAndFillableAmounts.remainingFillableMakerAssetAmounts;
|
||||||
const slippageBufferAmount = assetBuyAmount.mul(slippagePercentage).round();
|
const slippageBufferAmount = assetBuyAmount.multipliedBy(slippagePercentage).integerValue();
|
||||||
// find the orders that cover the desired assetBuyAmount (with slippage)
|
// find the orders that cover the desired assetBuyAmount (with slippage)
|
||||||
const {
|
const {
|
||||||
resultOrders,
|
resultOrders,
|
||||||
@ -43,7 +43,9 @@ export const buyQuoteCalculator = {
|
|||||||
const multiplierNeededWithSlippage = new BigNumber(1).plus(slippagePercentage);
|
const multiplierNeededWithSlippage = new BigNumber(1).plus(slippagePercentage);
|
||||||
// Given amountAvailableToFillConsideringSlippage * multiplierNeededWithSlippage = amountAbleToFill
|
// Given amountAvailableToFillConsideringSlippage * multiplierNeededWithSlippage = amountAbleToFill
|
||||||
// We divide amountUnableToFill by multiplierNeededWithSlippage to determine amountAvailableToFillConsideringSlippage
|
// We divide amountUnableToFill by multiplierNeededWithSlippage to determine amountAvailableToFillConsideringSlippage
|
||||||
const amountAvailableToFillConsideringSlippage = amountAbleToFill.div(multiplierNeededWithSlippage).floor();
|
const amountAvailableToFillConsideringSlippage = amountAbleToFill
|
||||||
|
.div(multiplierNeededWithSlippage)
|
||||||
|
.integerValue(BigNumber.ROUND_FLOOR);
|
||||||
|
|
||||||
throw new InsufficientAssetLiquidityError(amountAvailableToFillConsideringSlippage);
|
throw new InsufficientAssetLiquidityError(amountAvailableToFillConsideringSlippage);
|
||||||
}
|
}
|
||||||
@ -131,7 +133,7 @@ function calculateQuoteInfo(
|
|||||||
zrxEthAmount = findEthAmountNeededToBuyZrx(feeOrdersAndFillableAmounts, zrxAmountToBuyAsset);
|
zrxEthAmount = findEthAmountNeededToBuyZrx(feeOrdersAndFillableAmounts, zrxAmountToBuyAsset);
|
||||||
}
|
}
|
||||||
// eth amount needed to buy the affiliate fee
|
// eth amount needed to buy the affiliate fee
|
||||||
const affiliateFeeEthAmount = assetEthAmount.mul(feePercentage).ceil();
|
const affiliateFeeEthAmount = assetEthAmount.multipliedBy(feePercentage).integerValue(BigNumber.ROUND_CEIL);
|
||||||
// eth amount needed for fees is the sum of affiliate fee and zrx fee
|
// eth amount needed for fees is the sum of affiliate fee and zrx fee
|
||||||
const feeEthAmount = affiliateFeeEthAmount.plus(zrxEthAmount);
|
const feeEthAmount = affiliateFeeEthAmount.plus(zrxEthAmount);
|
||||||
// eth amount needed in total is the sum of the amount needed for the asset and the amount needed for fees
|
// eth amount needed in total is the sum of the amount needed for the asset and the amount needed for fees
|
||||||
@ -168,9 +170,9 @@ function findEthAmountNeededToBuyZrx(
|
|||||||
order,
|
order,
|
||||||
makerFillAmount,
|
makerFillAmount,
|
||||||
);
|
);
|
||||||
const extraFeeAmount = remainingFillableMakerAssetAmount.greaterThanOrEqualTo(adjustedMakerFillAmount)
|
const extraFeeAmount = remainingFillableMakerAssetAmount.isGreaterThanOrEqualTo(adjustedMakerFillAmount)
|
||||||
? constants.ZERO_AMOUNT
|
? constants.ZERO_AMOUNT
|
||||||
: adjustedMakerFillAmount.sub(makerFillAmount);
|
: adjustedMakerFillAmount.minus(makerFillAmount);
|
||||||
return {
|
return {
|
||||||
totalEthAmount: totalEthAmount.plus(takerFillAmount),
|
totalEthAmount: totalEthAmount.plus(takerFillAmount),
|
||||||
remainingZrxBuyAmount: BigNumber.max(
|
remainingZrxBuyAmount: BigNumber.max(
|
||||||
|
@ -109,11 +109,8 @@ function getValidOrdersWithRemainingFillableMakerAssetAmountsFromOnChain(
|
|||||||
return accOrders;
|
return accOrders;
|
||||||
}
|
}
|
||||||
// if the order IS fillable, add the order and calculate the remaining fillable amount
|
// if the order IS fillable, add the order and calculate the remaining fillable amount
|
||||||
const transferrableAssetAmount = BigNumber.min([traderInfo.makerAllowance, traderInfo.makerBalance]);
|
const transferrableAssetAmount = BigNumber.min(traderInfo.makerAllowance, traderInfo.makerBalance);
|
||||||
const transferrableFeeAssetAmount = BigNumber.min([
|
const transferrableFeeAssetAmount = BigNumber.min(traderInfo.makerZrxAllowance, traderInfo.makerZrxBalance);
|
||||||
traderInfo.makerZrxAllowance,
|
|
||||||
traderInfo.makerZrxBalance,
|
|
||||||
]);
|
|
||||||
const remainingTakerAssetAmount = order.takerAssetAmount.minus(orderInfo.orderTakerAssetFilledAmount);
|
const remainingTakerAssetAmount = order.takerAssetAmount.minus(orderInfo.orderTakerAssetFilledAmount);
|
||||||
const remainingMakerAssetAmount = orderUtils.getRemainingMakerAmount(order, remainingTakerAssetAmount);
|
const remainingMakerAssetAmount = orderUtils.getRemainingMakerAmount(order, remainingTakerAssetAmount);
|
||||||
const remainingFillableCalculator = new RemainingFillableCalculator(
|
const remainingFillableCalculator = new RemainingFillableCalculator(
|
||||||
|
@ -9,8 +9,8 @@ export const orderUtils = {
|
|||||||
},
|
},
|
||||||
willOrderExpire(order: SignedOrder, secondsFromNow: number): boolean {
|
willOrderExpire(order: SignedOrder, secondsFromNow: number): boolean {
|
||||||
const millisecondsInSecond = 1000;
|
const millisecondsInSecond = 1000;
|
||||||
const currentUnixTimestampSec = new BigNumber(Date.now() / millisecondsInSecond).round();
|
const currentUnixTimestampSec = new BigNumber(Date.now() / millisecondsInSecond).integerValue();
|
||||||
return order.expirationTimeSeconds.lessThan(currentUnixTimestampSec.plus(secondsFromNow));
|
return order.expirationTimeSeconds.isLessThan(currentUnixTimestampSec.plus(secondsFromNow));
|
||||||
},
|
},
|
||||||
isOpenOrder(order: SignedOrder): boolean {
|
isOpenOrder(order: SignedOrder): boolean {
|
||||||
return order.takerAddress === constants.NULL_ADDRESS;
|
return order.takerAddress === constants.NULL_ADDRESS;
|
||||||
@ -20,43 +20,43 @@ export const orderUtils = {
|
|||||||
const remainingMakerAmount = remainingTakerAmount
|
const remainingMakerAmount = remainingTakerAmount
|
||||||
.times(order.makerAssetAmount)
|
.times(order.makerAssetAmount)
|
||||||
.div(order.takerAssetAmount)
|
.div(order.takerAssetAmount)
|
||||||
.floor();
|
.integerValue(BigNumber.ROUND_FLOOR);
|
||||||
return remainingMakerAmount;
|
return remainingMakerAmount;
|
||||||
},
|
},
|
||||||
// given a desired amount of makerAsset, calculate how much takerAsset is required to fill that amount
|
// given a desired amount of makerAsset, calculate how much takerAsset is required to fill that amount
|
||||||
getTakerFillAmount(order: SignedOrder, makerFillAmount: BigNumber): BigNumber {
|
getTakerFillAmount(order: SignedOrder, makerFillAmount: BigNumber): BigNumber {
|
||||||
// Round up because exchange rate favors Maker
|
// Round up because exchange rate favors Maker
|
||||||
const takerFillAmount = makerFillAmount
|
const takerFillAmount = makerFillAmount
|
||||||
.mul(order.takerAssetAmount)
|
.multipliedBy(order.takerAssetAmount)
|
||||||
.div(order.makerAssetAmount)
|
.div(order.makerAssetAmount)
|
||||||
.ceil();
|
.integerValue(BigNumber.ROUND_CEIL);
|
||||||
return takerFillAmount;
|
return takerFillAmount;
|
||||||
},
|
},
|
||||||
// given a desired amount of takerAsset to fill, calculate how much fee is required by the taker to fill that amount
|
// given a desired amount of takerAsset to fill, calculate how much fee is required by the taker to fill that amount
|
||||||
getTakerFeeAmount(order: SignedOrder, takerFillAmount: BigNumber): BigNumber {
|
getTakerFeeAmount(order: SignedOrder, takerFillAmount: BigNumber): BigNumber {
|
||||||
// Round down because Taker fee rate favors Taker
|
// Round down because Taker fee rate favors Taker
|
||||||
const takerFeeAmount = takerFillAmount
|
const takerFeeAmount = takerFillAmount
|
||||||
.mul(order.takerFee)
|
.multipliedBy(order.takerFee)
|
||||||
.div(order.takerAssetAmount)
|
.div(order.takerAssetAmount)
|
||||||
.floor();
|
.integerValue(BigNumber.ROUND_FLOOR);
|
||||||
return takerFeeAmount;
|
return takerFeeAmount;
|
||||||
},
|
},
|
||||||
// given a desired amount of takerAsset to fill, calculate how much makerAsset will be filled
|
// given a desired amount of takerAsset to fill, calculate how much makerAsset will be filled
|
||||||
getMakerFillAmount(order: SignedOrder, takerFillAmount: BigNumber): BigNumber {
|
getMakerFillAmount(order: SignedOrder, takerFillAmount: BigNumber): BigNumber {
|
||||||
// Round down because exchange rate favors Maker
|
// Round down because exchange rate favors Maker
|
||||||
const makerFillAmount = takerFillAmount
|
const makerFillAmount = takerFillAmount
|
||||||
.mul(order.makerAssetAmount)
|
.multipliedBy(order.makerAssetAmount)
|
||||||
.div(order.takerAssetAmount)
|
.div(order.takerAssetAmount)
|
||||||
.floor();
|
.integerValue(BigNumber.ROUND_FLOOR);
|
||||||
return makerFillAmount;
|
return makerFillAmount;
|
||||||
},
|
},
|
||||||
// given a desired amount of makerAsset, calculate how much fee is required by the maker to fill that amount
|
// given a desired amount of makerAsset, calculate how much fee is required by the maker to fill that amount
|
||||||
getMakerFeeAmount(order: SignedOrder, makerFillAmount: BigNumber): BigNumber {
|
getMakerFeeAmount(order: SignedOrder, makerFillAmount: BigNumber): BigNumber {
|
||||||
// Round down because Maker fee rate favors Maker
|
// Round down because Maker fee rate favors Maker
|
||||||
const makerFeeAmount = makerFillAmount
|
const makerFeeAmount = makerFillAmount
|
||||||
.mul(order.makerFee)
|
.multipliedBy(order.makerFee)
|
||||||
.div(order.makerAssetAmount)
|
.div(order.makerAssetAmount)
|
||||||
.floor();
|
.integerValue(BigNumber.ROUND_FLOOR);
|
||||||
return makerFeeAmount;
|
return makerFeeAmount;
|
||||||
},
|
},
|
||||||
// given a desired amount of ZRX from a fee order, calculate how much takerAsset is required to fill that amount
|
// given a desired amount of ZRX from a fee order, calculate how much takerAsset is required to fill that amount
|
||||||
@ -64,9 +64,9 @@ export const orderUtils = {
|
|||||||
getTakerFillAmountForFeeOrder(order: SignedOrder, makerFillAmount: BigNumber): [BigNumber, BigNumber] {
|
getTakerFillAmountForFeeOrder(order: SignedOrder, makerFillAmount: BigNumber): [BigNumber, BigNumber] {
|
||||||
// For each unit of TakerAsset we buy (MakerAsset - TakerFee)
|
// For each unit of TakerAsset we buy (MakerAsset - TakerFee)
|
||||||
const adjustedTakerFillAmount = makerFillAmount
|
const adjustedTakerFillAmount = makerFillAmount
|
||||||
.mul(order.takerAssetAmount)
|
.multipliedBy(order.takerAssetAmount)
|
||||||
.div(order.makerAssetAmount.sub(order.takerFee))
|
.div(order.makerAssetAmount.minus(order.takerFee))
|
||||||
.ceil();
|
.integerValue(BigNumber.ROUND_CEIL);
|
||||||
// The amount that we buy will be greater than makerFillAmount, since we buy some amount for fees.
|
// The amount that we buy will be greater than makerFillAmount, since we buy some amount for fees.
|
||||||
const adjustedMakerFillAmount = orderUtils.getMakerFillAmount(order, adjustedTakerFillAmount);
|
const adjustedMakerFillAmount = orderUtils.getMakerFillAmount(order, adjustedTakerFillAmount);
|
||||||
return [adjustedTakerFillAmount, adjustedMakerFillAmount];
|
return [adjustedTakerFillAmount, adjustedMakerFillAmount];
|
||||||
|
@ -234,7 +234,7 @@ describe('buyQuoteCalculator', () => {
|
|||||||
const expectedEthAmountForAsset = new BigNumber(50);
|
const expectedEthAmountForAsset = new BigNumber(50);
|
||||||
const expectedEthAmountForZrxFees = new BigNumber(100);
|
const expectedEthAmountForZrxFees = new BigNumber(100);
|
||||||
const expectedFillEthAmount = expectedEthAmountForAsset;
|
const expectedFillEthAmount = expectedEthAmountForAsset;
|
||||||
const expectedAffiliateFeeEthAmount = expectedEthAmountForAsset.mul(feePercentage);
|
const expectedAffiliateFeeEthAmount = expectedEthAmountForAsset.multipliedBy(feePercentage);
|
||||||
const expectedFeeEthAmount = expectedAffiliateFeeEthAmount.plus(expectedEthAmountForZrxFees);
|
const expectedFeeEthAmount = expectedAffiliateFeeEthAmount.plus(expectedEthAmountForZrxFees);
|
||||||
const expectedTotalEthAmount = expectedFillEthAmount.plus(expectedFeeEthAmount);
|
const expectedTotalEthAmount = expectedFillEthAmount.plus(expectedFeeEthAmount);
|
||||||
expect(buyQuote.bestCaseQuoteInfo.assetEthAmount).to.bignumber.equal(expectedFillEthAmount);
|
expect(buyQuote.bestCaseQuoteInfo.assetEthAmount).to.bignumber.equal(expectedFillEthAmount);
|
||||||
@ -272,7 +272,7 @@ describe('buyQuoteCalculator', () => {
|
|||||||
const expectedEthAmountForAsset = new BigNumber(50);
|
const expectedEthAmountForAsset = new BigNumber(50);
|
||||||
const expectedEthAmountForZrxFees = new BigNumber(100);
|
const expectedEthAmountForZrxFees = new BigNumber(100);
|
||||||
const expectedFillEthAmount = expectedEthAmountForAsset;
|
const expectedFillEthAmount = expectedEthAmountForAsset;
|
||||||
const expectedAffiliateFeeEthAmount = expectedEthAmountForAsset.mul(feePercentage);
|
const expectedAffiliateFeeEthAmount = expectedEthAmountForAsset.multipliedBy(feePercentage);
|
||||||
const expectedFeeEthAmount = expectedAffiliateFeeEthAmount.plus(expectedEthAmountForZrxFees);
|
const expectedFeeEthAmount = expectedAffiliateFeeEthAmount.plus(expectedEthAmountForZrxFees);
|
||||||
const expectedTotalEthAmount = expectedFillEthAmount.plus(expectedFeeEthAmount);
|
const expectedTotalEthAmount = expectedFillEthAmount.plus(expectedFeeEthAmount);
|
||||||
expect(buyQuote.bestCaseQuoteInfo.assetEthAmount).to.bignumber.equal(expectedFillEthAmount);
|
expect(buyQuote.bestCaseQuoteInfo.assetEthAmount).to.bignumber.equal(expectedFillEthAmount);
|
||||||
@ -282,7 +282,7 @@ describe('buyQuoteCalculator', () => {
|
|||||||
const expectedWorstEthAmountForAsset = new BigNumber(100);
|
const expectedWorstEthAmountForAsset = new BigNumber(100);
|
||||||
const expectedWorstEthAmountForZrxFees = new BigNumber(208);
|
const expectedWorstEthAmountForZrxFees = new BigNumber(208);
|
||||||
const expectedWorstFillEthAmount = expectedWorstEthAmountForAsset;
|
const expectedWorstFillEthAmount = expectedWorstEthAmountForAsset;
|
||||||
const expectedWorstAffiliateFeeEthAmount = expectedWorstEthAmountForAsset.mul(feePercentage);
|
const expectedWorstAffiliateFeeEthAmount = expectedWorstEthAmountForAsset.multipliedBy(feePercentage);
|
||||||
const expectedWorstFeeEthAmount = expectedWorstAffiliateFeeEthAmount.plus(expectedWorstEthAmountForZrxFees);
|
const expectedWorstFeeEthAmount = expectedWorstAffiliateFeeEthAmount.plus(expectedWorstEthAmountForZrxFees);
|
||||||
const expectedWorstTotalEthAmount = expectedWorstFillEthAmount.plus(expectedWorstFeeEthAmount);
|
const expectedWorstTotalEthAmount = expectedWorstFillEthAmount.plus(expectedWorstFeeEthAmount);
|
||||||
expect(buyQuote.worstCaseQuoteInfo.assetEthAmount).to.bignumber.equal(expectedWorstFillEthAmount);
|
expect(buyQuote.worstCaseQuoteInfo.assetEthAmount).to.bignumber.equal(expectedWorstFillEthAmount);
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "4.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "3.0.13",
|
"version": "3.0.13",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { AbiEncoder, abiUtils } from '@0x/utils';
|
import { AbiEncoder, abiUtils, BigNumber } from '@0x/utils';
|
||||||
import { Web3Wrapper } from '@0x/web3-wrapper';
|
import { Web3Wrapper } from '@0x/web3-wrapper';
|
||||||
import {
|
import {
|
||||||
AbiDefinition,
|
AbiDefinition,
|
||||||
@ -43,7 +43,7 @@ export class BaseContract {
|
|||||||
return type === 'address' ? value.toLowerCase() : value;
|
return type === 'address' ? value.toLowerCase() : value;
|
||||||
}
|
}
|
||||||
protected static _bigNumberToString(_type: string, value: any): any {
|
protected static _bigNumberToString(_type: string, value: any): any {
|
||||||
return _.isObject(value) && value.isBigNumber ? value.toString() : value;
|
return BigNumber.isBigNumber(value) ? value.toString() : value;
|
||||||
}
|
}
|
||||||
protected static _lookupConstructorAbi(abi: ContractAbi): ConstructorAbi {
|
protected static _lookupConstructorAbi(abi: ContractAbi): ConstructorAbi {
|
||||||
const constructorAbiIfExists = _.find(
|
const constructorAbiIfExists = _.find(
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "4.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "3.0.13",
|
"version": "3.0.13",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "6.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
"@types/web3-provider-engine": "^14.0.0",
|
"@types/web3-provider-engine": "^14.0.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"mocha": "^4.1.0",
|
"mocha": "^4.1.0",
|
||||||
|
@ -271,7 +271,7 @@ export class ERC20TokenWrapper extends ContractWrapper {
|
|||||||
const tokenContract = await this._getTokenContractAsync(normalizedTokenAddress);
|
const tokenContract = await this._getTokenContractAsync(normalizedTokenAddress);
|
||||||
|
|
||||||
const fromAddressBalance = await this.getBalanceAsync(normalizedTokenAddress, normalizedFromAddress);
|
const fromAddressBalance = await this.getBalanceAsync(normalizedTokenAddress, normalizedFromAddress);
|
||||||
if (fromAddressBalance.lessThan(amountInBaseUnits)) {
|
if (fromAddressBalance.isLessThan(amountInBaseUnits)) {
|
||||||
throw new Error(ContractWrappersError.InsufficientBalanceForTransfer);
|
throw new Error(ContractWrappersError.InsufficientBalanceForTransfer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -327,12 +327,12 @@ export class ERC20TokenWrapper extends ContractWrapper {
|
|||||||
normalizedFromAddress,
|
normalizedFromAddress,
|
||||||
normalizedSenderAddress,
|
normalizedSenderAddress,
|
||||||
);
|
);
|
||||||
if (fromAddressAllowance.lessThan(amountInBaseUnits)) {
|
if (fromAddressAllowance.isLessThan(amountInBaseUnits)) {
|
||||||
throw new Error(ContractWrappersError.InsufficientAllowanceForTransfer);
|
throw new Error(ContractWrappersError.InsufficientAllowanceForTransfer);
|
||||||
}
|
}
|
||||||
|
|
||||||
const fromAddressBalance = await this.getBalanceAsync(normalizedTokenAddress, normalizedFromAddress);
|
const fromAddressBalance = await this.getBalanceAsync(normalizedTokenAddress, normalizedFromAddress);
|
||||||
if (fromAddressBalance.lessThan(amountInBaseUnits)) {
|
if (fromAddressBalance.isLessThan(amountInBaseUnits)) {
|
||||||
throw new Error(ContractWrappersError.InsufficientBalanceForTransfer);
|
throw new Error(ContractWrappersError.InsufficientBalanceForTransfer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ export class AssetBalanceAndProxyAllowanceFetcher implements AbstractBalanceAndP
|
|||||||
nestedAssetDataElement,
|
nestedAssetDataElement,
|
||||||
userAddress,
|
userAddress,
|
||||||
)).dividedToIntegerBy(nestedAmountElement);
|
)).dividedToIntegerBy(nestedAmountElement);
|
||||||
if (_.isUndefined(balance) || nestedAssetBalance.lessThan(balance)) {
|
if (_.isUndefined(balance) || nestedAssetBalance.isLessThan(balance)) {
|
||||||
balance = nestedAssetBalance;
|
balance = nestedAssetBalance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,7 +81,7 @@ export class AssetBalanceAndProxyAllowanceFetcher implements AbstractBalanceAndP
|
|||||||
nestedAssetDataElement,
|
nestedAssetDataElement,
|
||||||
userAddress,
|
userAddress,
|
||||||
)).dividedToIntegerBy(nestedAmountElement);
|
)).dividedToIntegerBy(nestedAmountElement);
|
||||||
if (_.isUndefined(proxyAllowance) || nestedAssetAllowance.lessThan(proxyAllowance)) {
|
if (_.isUndefined(proxyAllowance) || nestedAssetAllowance.isLessThan(proxyAllowance)) {
|
||||||
proxyAllowance = nestedAssetAllowance;
|
proxyAllowance = nestedAssetAllowance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,10 +72,10 @@ export class ExchangeTransferSimulator {
|
|||||||
}
|
}
|
||||||
const balance = await this._store.getBalanceAsync(tokenAddress, from);
|
const balance = await this._store.getBalanceAsync(tokenAddress, from);
|
||||||
const proxyAllowance = await this._store.getProxyAllowanceAsync(tokenAddress, from);
|
const proxyAllowance = await this._store.getProxyAllowanceAsync(tokenAddress, from);
|
||||||
if (proxyAllowance.lessThan(amountInBaseUnits)) {
|
if (proxyAllowance.isLessThan(amountInBaseUnits)) {
|
||||||
ExchangeTransferSimulator._throwValidationError(FailureReason.ProxyAllowance, tradeSide, transferType);
|
ExchangeTransferSimulator._throwValidationError(FailureReason.ProxyAllowance, tradeSide, transferType);
|
||||||
}
|
}
|
||||||
if (balance.lessThan(amountInBaseUnits)) {
|
if (balance.isLessThan(amountInBaseUnits)) {
|
||||||
ExchangeTransferSimulator._throwValidationError(FailureReason.Balance, tradeSide, transferType);
|
ExchangeTransferSimulator._throwValidationError(FailureReason.Balance, tradeSide, transferType);
|
||||||
}
|
}
|
||||||
await this._decreaseProxyAllowanceAsync(tokenAddress, from, amountInBaseUnits);
|
await this._decreaseProxyAllowanceAsync(tokenAddress, from, amountInBaseUnits);
|
||||||
|
@ -7,13 +7,15 @@ import { constants } from './constants';
|
|||||||
export const utils = {
|
export const utils = {
|
||||||
getCurrentUnixTimestampSec(): BigNumber {
|
getCurrentUnixTimestampSec(): BigNumber {
|
||||||
const milisecondsInSecond = 1000;
|
const milisecondsInSecond = 1000;
|
||||||
return new BigNumber(Date.now() / milisecondsInSecond).round();
|
return new BigNumber(Date.now() / milisecondsInSecond).integerValue();
|
||||||
},
|
},
|
||||||
getCurrentUnixTimestampMs(): BigNumber {
|
getCurrentUnixTimestampMs(): BigNumber {
|
||||||
return new BigNumber(Date.now());
|
return new BigNumber(Date.now());
|
||||||
},
|
},
|
||||||
numberPercentageToEtherTokenAmountPercentage(percentage: number): BigNumber {
|
numberPercentageToEtherTokenAmountPercentage(percentage: number): BigNumber {
|
||||||
return Web3Wrapper.toBaseUnitAmount(constants.ONE_AMOUNT, constants.ETHER_TOKEN_DECIMALS).mul(percentage);
|
return Web3Wrapper.toBaseUnitAmount(constants.ONE_AMOUNT, constants.ETHER_TOKEN_DECIMALS).multipliedBy(
|
||||||
|
percentage,
|
||||||
|
);
|
||||||
},
|
},
|
||||||
removeUndefinedProperties<T extends object>(obj: T): Partial<T> {
|
removeUndefinedProperties<T extends object>(obj: T): Partial<T> {
|
||||||
return _.pickBy(obj);
|
return _.pickBy(obj);
|
||||||
|
@ -116,7 +116,7 @@ describe('EtherTokenWrapper', () => {
|
|||||||
const preETHBalance = await web3Wrapper.getBalanceInWeiAsync(addressWithETH);
|
const preETHBalance = await web3Wrapper.getBalanceInWeiAsync(addressWithETH);
|
||||||
|
|
||||||
const extraETHBalance = Web3Wrapper.toWei(new BigNumber(5));
|
const extraETHBalance = Web3Wrapper.toWei(new BigNumber(5));
|
||||||
const overETHBalanceinWei = preETHBalance.add(extraETHBalance);
|
const overETHBalanceinWei = preETHBalance.plus(extraETHBalance);
|
||||||
|
|
||||||
return expect(
|
return expect(
|
||||||
contractWrappers.etherToken.depositAsync(wethContractAddress, overETHBalanceinWei, addressWithETH),
|
contractWrappers.etherToken.depositAsync(wethContractAddress, overETHBalanceinWei, addressWithETH),
|
||||||
@ -153,7 +153,7 @@ describe('EtherTokenWrapper', () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(postWETHBalanceInBaseUnits).to.be.bignumber.equal(0);
|
expect(postWETHBalanceInBaseUnits).to.be.bignumber.equal(0);
|
||||||
const expectedETHBalance = preETHBalance.add(depositWeiAmount).round(decimalPlaces);
|
const expectedETHBalance = preETHBalance.plus(depositWeiAmount).integerValue(decimalPlaces);
|
||||||
gasCost = expectedETHBalance.minus(postETHBalance);
|
gasCost = expectedETHBalance.minus(postETHBalance);
|
||||||
expect(gasCost).to.be.bignumber.lte(MAX_REASONABLE_GAS_COST_IN_WEI);
|
expect(gasCost).to.be.bignumber.lte(MAX_REASONABLE_GAS_COST_IN_WEI);
|
||||||
});
|
});
|
||||||
@ -165,7 +165,7 @@ describe('EtherTokenWrapper', () => {
|
|||||||
expect(preWETHBalance).to.be.bignumber.equal(0);
|
expect(preWETHBalance).to.be.bignumber.equal(0);
|
||||||
|
|
||||||
// tslint:disable-next-line:custom-no-magic-numbers
|
// tslint:disable-next-line:custom-no-magic-numbers
|
||||||
const overWETHBalance = preWETHBalance.add(999999999);
|
const overWETHBalance = preWETHBalance.plus(999999999);
|
||||||
|
|
||||||
return expect(
|
return expect(
|
||||||
contractWrappers.etherToken.withdrawAsync(wethContractAddress, overWETHBalance, addressWithETH),
|
contractWrappers.etherToken.withdrawAsync(wethContractAddress, overWETHBalance, addressWithETH),
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.0.24",
|
"version": "1.0.24",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.1.6",
|
"version": "1.1.6",
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"bignumber.js": "~4.1.0"
|
"bignumber.js": "~8.0.2"
|
||||||
},
|
},
|
||||||
"publishConfig": {
|
"publishConfig": {
|
||||||
"access": "public"
|
"access": "public"
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"changes": [
|
"changes": [
|
||||||
|
@ -77,7 +77,7 @@ export class OrderDetails extends React.PureComponent<OrderDetailsProps> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _hadErrorFetchingUsdPrice(): boolean {
|
private _hadErrorFetchingUsdPrice(): boolean {
|
||||||
return this.props.ethUsdPrice ? this.props.ethUsdPrice.equals(BIG_NUMBER_ZERO) : false;
|
return this.props.ethUsdPrice ? this.props.ethUsdPrice.isEqualTo(BIG_NUMBER_ZERO) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _totalCostSecondaryValue(): React.ReactNode {
|
private _totalCostSecondaryValue(): React.ReactNode {
|
||||||
@ -156,7 +156,7 @@ export class OrderDetails extends React.PureComponent<OrderDetailsProps> {
|
|||||||
return !_.isUndefined(assetTotalInWei) &&
|
return !_.isUndefined(assetTotalInWei) &&
|
||||||
!_.isUndefined(selectedAssetUnitAmount) &&
|
!_.isUndefined(selectedAssetUnitAmount) &&
|
||||||
!selectedAssetUnitAmount.eq(BIG_NUMBER_ZERO)
|
!selectedAssetUnitAmount.eq(BIG_NUMBER_ZERO)
|
||||||
? assetTotalInWei.div(selectedAssetUnitAmount).ceil()
|
? assetTotalInWei.div(selectedAssetUnitAmount).integerValue(BigNumber.ROUND_CEIL)
|
||||||
: undefined;
|
: undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ export const NPM_PACKAGE_VERSION = process.env.NPM_PACKAGE_VERSION;
|
|||||||
export const DEFAULT_UNKOWN_ASSET_NAME = '???';
|
export const DEFAULT_UNKOWN_ASSET_NAME = '???';
|
||||||
export const ACCOUNT_UPDATE_INTERVAL_TIME_MS = ONE_SECOND_MS * 5;
|
export const ACCOUNT_UPDATE_INTERVAL_TIME_MS = ONE_SECOND_MS * 5;
|
||||||
export const BUY_QUOTE_UPDATE_INTERVAL_TIME_MS = ONE_SECOND_MS * 15;
|
export const BUY_QUOTE_UPDATE_INTERVAL_TIME_MS = ONE_SECOND_MS * 15;
|
||||||
export const DEFAULT_GAS_PRICE = GWEI_IN_WEI.mul(6);
|
export const DEFAULT_GAS_PRICE = GWEI_IN_WEI.multipliedBy(6);
|
||||||
export const DEFAULT_ESTIMATED_TRANSACTION_TIME_MS = ONE_MINUTE_MS * 2;
|
export const DEFAULT_ESTIMATED_TRANSACTION_TIME_MS = ONE_MINUTE_MS * 2;
|
||||||
export const MAGIC_TRIGGER_ERROR_INPUT = '0€';
|
export const MAGIC_TRIGGER_ERROR_INPUT = '0€';
|
||||||
export const MAGIC_TRIGGER_ERROR_MESSAGE = 'Triggered error';
|
export const MAGIC_TRIGGER_ERROR_MESSAGE = 'Triggered error';
|
||||||
|
@ -84,7 +84,7 @@ const mapDispatchToProps = (
|
|||||||
// reset our buy state
|
// reset our buy state
|
||||||
dispatch(actions.setBuyOrderStateNone());
|
dispatch(actions.setBuyOrderStateNone());
|
||||||
|
|
||||||
if (!_.isUndefined(value) && value.greaterThan(0) && !_.isUndefined(asset)) {
|
if (!_.isUndefined(value) && value.isGreaterThan(0) && !_.isUndefined(asset)) {
|
||||||
// even if it's debounced, give them the illusion it's loading
|
// even if it's debounced, give them the illusion it's loading
|
||||||
dispatch(actions.setQuoteRequestStatePending());
|
dispatch(actions.setQuoteRequestStatePending());
|
||||||
// tslint:disable-next-line:no-floating-promises
|
// tslint:disable-next-line:no-floating-promises
|
||||||
|
@ -99,7 +99,7 @@ export const asyncData = {
|
|||||||
if (
|
if (
|
||||||
!_.isUndefined(selectedAssetUnitAmount) &&
|
!_.isUndefined(selectedAssetUnitAmount) &&
|
||||||
!_.isUndefined(selectedAsset) &&
|
!_.isUndefined(selectedAsset) &&
|
||||||
selectedAssetUnitAmount.greaterThan(BIG_NUMBER_ZERO) &&
|
selectedAssetUnitAmount.isGreaterThan(BIG_NUMBER_ZERO) &&
|
||||||
buyOrderState.processState === OrderProcessState.None &&
|
buyOrderState.processState === OrderProcessState.None &&
|
||||||
selectedAsset.metaData.assetProxyId === AssetProxyId.ERC20
|
selectedAsset.metaData.assetProxyId === AssetProxyId.ERC20
|
||||||
) {
|
) {
|
||||||
|
@ -114,15 +114,18 @@ export const assetUtils = {
|
|||||||
const assetName = assetUtils.bestNameForAsset(asset, 'of this asset');
|
const assetName = assetUtils.bestNameForAsset(asset, 'of this asset');
|
||||||
if (
|
if (
|
||||||
error instanceof InsufficientAssetLiquidityError &&
|
error instanceof InsufficientAssetLiquidityError &&
|
||||||
error.amountAvailableToFill.greaterThan(BIG_NUMBER_ZERO)
|
error.amountAvailableToFill.isGreaterThan(BIG_NUMBER_ZERO)
|
||||||
) {
|
) {
|
||||||
const unitAmountAvailableToFill = Web3Wrapper.toUnitAmount(
|
const unitAmountAvailableToFill = Web3Wrapper.toUnitAmount(
|
||||||
error.amountAvailableToFill,
|
error.amountAvailableToFill,
|
||||||
asset.metaData.decimals,
|
asset.metaData.decimals,
|
||||||
);
|
);
|
||||||
const roundedUnitAmountAvailableToFill = unitAmountAvailableToFill.round(2, BigNumber.ROUND_DOWN);
|
const roundedUnitAmountAvailableToFill = unitAmountAvailableToFill.decimalPlaces(
|
||||||
|
2,
|
||||||
|
BigNumber.ROUND_DOWN,
|
||||||
|
);
|
||||||
|
|
||||||
if (roundedUnitAmountAvailableToFill.greaterThan(BIG_NUMBER_ZERO)) {
|
if (roundedUnitAmountAvailableToFill.isGreaterThan(BIG_NUMBER_ZERO)) {
|
||||||
return `There are only ${roundedUnitAmountAvailableToFill} ${assetName} available to buy`;
|
return `There are only ${roundedUnitAmountAvailableToFill} ${assetName} available to buy`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,16 +25,16 @@ export const format = {
|
|||||||
if (_.isUndefined(ethUnitAmount)) {
|
if (_.isUndefined(ethUnitAmount)) {
|
||||||
return defaultText;
|
return defaultText;
|
||||||
}
|
}
|
||||||
let roundedAmount = ethUnitAmount.round(decimalPlaces).toDigits(decimalPlaces);
|
let roundedAmount = ethUnitAmount.decimalPlaces(decimalPlaces).precision(decimalPlaces);
|
||||||
|
|
||||||
if (roundedAmount.eq(BIG_NUMBER_ZERO) && ethUnitAmount.greaterThan(BIG_NUMBER_ZERO)) {
|
if (roundedAmount.eq(BIG_NUMBER_ZERO) && ethUnitAmount.isGreaterThan(BIG_NUMBER_ZERO)) {
|
||||||
// Sometimes for small ETH amounts (i.e. 0.000045) the amount rounded to 4 decimalPlaces is 0
|
// Sometimes for small ETH amounts (i.e. 0.000045) the amount rounded to 4 decimalPlaces is 0
|
||||||
// If that is the case, show to 1 significant digit
|
// If that is the case, show to 1 significant digit
|
||||||
roundedAmount = new BigNumber(ethUnitAmount.toPrecision(1));
|
roundedAmount = new BigNumber(ethUnitAmount.toPrecision(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
const displayAmount =
|
const displayAmount =
|
||||||
roundedAmount.greaterThan(BIG_NUMBER_ZERO) && roundedAmount.lessThan(minUnitAmountToDisplay)
|
roundedAmount.isGreaterThan(BIG_NUMBER_ZERO) && roundedAmount.isLessThan(minUnitAmountToDisplay)
|
||||||
? `< ${minUnitAmountToDisplay.toString()}`
|
? `< ${minUnitAmountToDisplay.toString()}`
|
||||||
: roundedAmount.toString();
|
: roundedAmount.toString();
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ export const format = {
|
|||||||
if (_.isUndefined(ethUnitAmount) || _.isUndefined(ethUsdPrice)) {
|
if (_.isUndefined(ethUnitAmount) || _.isUndefined(ethUsdPrice)) {
|
||||||
return defaultText;
|
return defaultText;
|
||||||
}
|
}
|
||||||
const rawUsdPrice = ethUnitAmount.mul(ethUsdPrice);
|
const rawUsdPrice = ethUnitAmount.multipliedBy(ethUsdPrice);
|
||||||
const roundedUsdPrice = rawUsdPrice.toFixed(decimalPlaces);
|
const roundedUsdPrice = rawUsdPrice.toFixed(decimalPlaces);
|
||||||
if (roundedUsdPrice === '0.00' && rawUsdPrice.gt(BIG_NUMBER_ZERO)) {
|
if (roundedUsdPrice === '0.00' && rawUsdPrice.gt(BIG_NUMBER_ZERO)) {
|
||||||
return '<$0.01';
|
return '<$0.01';
|
||||||
|
@ -35,7 +35,7 @@ const fetchFastAmountInWeiAsync = async (): Promise<GasInfo> => {
|
|||||||
const gasPriceInGwei = new BigNumber(gasInfo.fast / 10);
|
const gasPriceInGwei = new BigNumber(gasInfo.fast / 10);
|
||||||
// Time is in minutes
|
// Time is in minutes
|
||||||
const estimatedTimeMs = gasInfo.fastWait * 60 * 1000; // Minutes to MS
|
const estimatedTimeMs = gasInfo.fastWait * 60 * 1000; // Minutes to MS
|
||||||
return { gasPriceInWei: gasPriceInGwei.mul(GWEI_IN_WEI), estimatedTimeMs };
|
return { gasPriceInWei: gasPriceInGwei.multipliedBy(GWEI_IN_WEI), estimatedTimeMs };
|
||||||
};
|
};
|
||||||
|
|
||||||
export class GasPriceEstimator {
|
export class GasPriceEstimator {
|
||||||
|
@ -18,7 +18,7 @@ export const maybeBigNumberUtil = {
|
|||||||
},
|
},
|
||||||
areMaybeBigNumbersEqual: (val1: Maybe<BigNumber>, val2: Maybe<BigNumber>): boolean => {
|
areMaybeBigNumbersEqual: (val1: Maybe<BigNumber>, val2: Maybe<BigNumber>): boolean => {
|
||||||
if (!_.isUndefined(val1) && !_.isUndefined(val2)) {
|
if (!_.isUndefined(val1) && !_.isUndefined(val2)) {
|
||||||
return val1.equals(val2);
|
return val1.isEqualTo(val2);
|
||||||
}
|
}
|
||||||
return _.isUndefined(val1) && _.isUndefined(val2);
|
return _.isUndefined(val1) && _.isUndefined(val2);
|
||||||
},
|
},
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "2.1.7",
|
"version": "2.1.7",
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
"@0x/sol-compiler": "^2.0.2",
|
"@0x/sol-compiler": "^2.0.2",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"npm-run-all": "^4.1.2",
|
"npm-run-all": "^4.1.2",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "2.4.0",
|
"version": "2.4.0",
|
||||||
"changes": [
|
"changes": [
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"changes": [
|
"changes": [
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "4.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "3.1.2",
|
"version": "3.1.2",
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
"@types/lodash": "4.14.104",
|
"@types/lodash": "4.14.104",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"mocha": "^4.1.0",
|
"mocha": "^4.1.0",
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { BigNumber } from '@0x/utils';
|
||||||
import BN = require('bn.js');
|
import BN = require('bn.js');
|
||||||
import ABI = require('ethereumjs-abi');
|
import ABI = require('ethereumjs-abi');
|
||||||
import ethUtil = require('ethereumjs-util');
|
import ethUtil = require('ethereumjs-util');
|
||||||
@ -24,7 +25,7 @@ export const crypto = {
|
|||||||
const isNumber = _.isFinite(arg);
|
const isNumber = _.isFinite(arg);
|
||||||
if (isNumber) {
|
if (isNumber) {
|
||||||
argTypes.push('uint8');
|
argTypes.push('uint8');
|
||||||
} else if (arg.isBigNumber) {
|
} else if (BigNumber.isBigNumber(arg)) {
|
||||||
argTypes.push('uint256');
|
argTypes.push('uint256');
|
||||||
const base = 10;
|
const base = 10;
|
||||||
args[i] = new BN(arg.toString(base), base);
|
args[i] = new BN(arg.toString(base), base);
|
||||||
|
@ -88,14 +88,14 @@ export class ExchangeTransferSimulator {
|
|||||||
}
|
}
|
||||||
const balance = await this._store.getBalanceAsync(assetData, from);
|
const balance = await this._store.getBalanceAsync(assetData, from);
|
||||||
const proxyAllowance = await this._store.getProxyAllowanceAsync(assetData, from);
|
const proxyAllowance = await this._store.getProxyAllowanceAsync(assetData, from);
|
||||||
if (proxyAllowance.lessThan(amountInBaseUnits)) {
|
if (proxyAllowance.isLessThan(amountInBaseUnits)) {
|
||||||
ExchangeTransferSimulator._throwValidationError(
|
ExchangeTransferSimulator._throwValidationError(
|
||||||
FailureReason.ProxyAllowance,
|
FailureReason.ProxyAllowance,
|
||||||
tradeSide,
|
tradeSide,
|
||||||
transferType,
|
transferType,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (balance.lessThan(amountInBaseUnits)) {
|
if (balance.isLessThan(amountInBaseUnits)) {
|
||||||
ExchangeTransferSimulator._throwValidationError(FailureReason.Balance, tradeSide, transferType);
|
ExchangeTransferSimulator._throwValidationError(FailureReason.Balance, tradeSide, transferType);
|
||||||
}
|
}
|
||||||
await this._decreaseProxyAllowanceAsync(assetData, from, amountInBaseUnits);
|
await this._decreaseProxyAllowanceAsync(assetData, from, amountInBaseUnits);
|
||||||
|
@ -52,7 +52,7 @@ export const marketUtils = {
|
|||||||
const result = _.reduce(
|
const result = _.reduce(
|
||||||
orders,
|
orders,
|
||||||
({ resultOrders, remainingFillAmount, ordersRemainingFillableMakerAssetAmounts }, order, index) => {
|
({ resultOrders, remainingFillAmount, ordersRemainingFillableMakerAssetAmounts }, order, index) => {
|
||||||
if (remainingFillAmount.lessThanOrEqualTo(constants.ZERO_AMOUNT)) {
|
if (remainingFillAmount.isLessThanOrEqualTo(constants.ZERO_AMOUNT)) {
|
||||||
return {
|
return {
|
||||||
resultOrders,
|
resultOrders,
|
||||||
remainingFillAmount: constants.ZERO_AMOUNT,
|
remainingFillAmount: constants.ZERO_AMOUNT,
|
||||||
@ -137,7 +137,7 @@ export const marketUtils = {
|
|||||||
(accFees, order, index) => {
|
(accFees, order, index) => {
|
||||||
const makerAssetAmountAvailable = remainingFillableMakerAssetAmounts[index];
|
const makerAssetAmountAvailable = remainingFillableMakerAssetAmounts[index];
|
||||||
const feeToFillMakerAssetAmountAvailable = makerAssetAmountAvailable
|
const feeToFillMakerAssetAmountAvailable = makerAssetAmountAvailable
|
||||||
.mul(order.takerFee)
|
.multipliedBy(order.takerFee)
|
||||||
.dividedToIntegerBy(order.makerAssetAmount);
|
.dividedToIntegerBy(order.makerAssetAmount);
|
||||||
return accFees.plus(feeToFillMakerAssetAmountAvailable);
|
return accFees.plus(feeToFillMakerAssetAmountAvailable);
|
||||||
},
|
},
|
||||||
|
@ -214,10 +214,10 @@ export class OrderStateUtils {
|
|||||||
const remainingFillableTakerAssetAmountGivenTakersStatus = orderRelevantTakerState.remainingFillableAssetAmount;
|
const remainingFillableTakerAssetAmountGivenTakersStatus = orderRelevantTakerState.remainingFillableAssetAmount;
|
||||||
|
|
||||||
// The min of these two in the actualy max fillable by either party
|
// The min of these two in the actualy max fillable by either party
|
||||||
const fillableTakerAssetAmount = BigNumber.min([
|
const fillableTakerAssetAmount = BigNumber.min(
|
||||||
remainingFillableTakerAssetAmountGivenMakersStatus,
|
remainingFillableTakerAssetAmountGivenMakersStatus,
|
||||||
remainingFillableTakerAssetAmountGivenTakersStatus,
|
remainingFillableTakerAssetAmountGivenTakersStatus,
|
||||||
]);
|
);
|
||||||
|
|
||||||
return fillableTakerAssetAmount;
|
return fillableTakerAssetAmount;
|
||||||
}
|
}
|
||||||
@ -260,8 +260,8 @@ export class OrderStateUtils {
|
|||||||
traderAddress,
|
traderAddress,
|
||||||
);
|
);
|
||||||
|
|
||||||
const transferrableTraderAssetAmount = BigNumber.min([traderProxyAllowance, traderBalance]);
|
const transferrableTraderAssetAmount = BigNumber.min(traderProxyAllowance, traderBalance);
|
||||||
const transferrableFeeAssetAmount = BigNumber.min([traderFeeProxyAllowance, traderFeeBalance]);
|
const transferrableFeeAssetAmount = BigNumber.min(traderFeeProxyAllowance, traderFeeBalance);
|
||||||
|
|
||||||
const orderHash = orderHashUtils.getOrderHashHex(signedOrder);
|
const orderHash = orderHashUtils.getOrderHashHex(signedOrder);
|
||||||
const filledTakerAssetAmount = await this._orderFilledCancelledFetcher.getFilledTakerAmountAsync(orderHash);
|
const filledTakerAssetAmount = await this._orderFilledCancelledFetcher.getFilledTakerAmountAsync(orderHash);
|
||||||
@ -312,7 +312,7 @@ export class OrderStateUtils {
|
|||||||
const tokenAddress = decodedAssetData.tokenAddress;
|
const tokenAddress = decodedAssetData.tokenAddress;
|
||||||
balances[tokenAddress] = _.isUndefined(initialBalances[tokenAddress])
|
balances[tokenAddress] = _.isUndefined(initialBalances[tokenAddress])
|
||||||
? balance
|
? balance
|
||||||
: balances[tokenAddress].add(balance);
|
: balances[tokenAddress].plus(balance);
|
||||||
} else if (assetDataUtils.isMultiAssetData(decodedAssetData)) {
|
} else if (assetDataUtils.isMultiAssetData(decodedAssetData)) {
|
||||||
for (const assetDataElement of decodedAssetData.nestedAssetData) {
|
for (const assetDataElement of decodedAssetData.nestedAssetData) {
|
||||||
balances = await this._getAssetBalancesAsync(assetDataElement, traderAddress, balances);
|
balances = await this._getAssetBalancesAsync(assetDataElement, traderAddress, balances);
|
||||||
@ -335,7 +335,7 @@ export class OrderStateUtils {
|
|||||||
const tokenAddress = decodedAssetData.tokenAddress;
|
const tokenAddress = decodedAssetData.tokenAddress;
|
||||||
allowances[tokenAddress] = _.isUndefined(initialAllowances[tokenAddress])
|
allowances[tokenAddress] = _.isUndefined(initialAllowances[tokenAddress])
|
||||||
? allowance
|
? allowance
|
||||||
: allowances[tokenAddress].add(allowance);
|
: allowances[tokenAddress].plus(allowance);
|
||||||
} else if (assetDataUtils.isMultiAssetData(decodedAssetData)) {
|
} else if (assetDataUtils.isMultiAssetData(decodedAssetData)) {
|
||||||
for (const assetDataElement of decodedAssetData.nestedAssetData) {
|
for (const assetDataElement of decodedAssetData.nestedAssetData) {
|
||||||
allowances = await this._getAssetBalancesAsync(assetDataElement, traderAddress, allowances);
|
allowances = await this._getAssetBalancesAsync(assetDataElement, traderAddress, allowances);
|
||||||
|
@ -31,13 +31,13 @@ export class OrderValidationUtils {
|
|||||||
if (denominator.eq(0)) {
|
if (denominator.eq(0)) {
|
||||||
throw new Error('denominator cannot be 0');
|
throw new Error('denominator cannot be 0');
|
||||||
}
|
}
|
||||||
const remainder = target.mul(numerator).mod(denominator);
|
const remainder = target.multipliedBy(numerator).mod(denominator);
|
||||||
if (remainder.eq(0)) {
|
if (remainder.eq(0)) {
|
||||||
return false; // no rounding error
|
return false; // no rounding error
|
||||||
}
|
}
|
||||||
|
|
||||||
// tslint:disable-next-line:custom-no-magic-numbers
|
// tslint:disable-next-line:custom-no-magic-numbers
|
||||||
const errPercentageTimes1000000 = remainder.mul(1000000).div(numerator.mul(target));
|
const errPercentageTimes1000000 = remainder.multipliedBy(1000000).div(numerator.multipliedBy(target));
|
||||||
// tslint:disable-next-line:custom-no-magic-numbers
|
// tslint:disable-next-line:custom-no-magic-numbers
|
||||||
const isError = errPercentageTimes1000000.gt(1000);
|
const isError = errPercentageTimes1000000.gt(1000);
|
||||||
return isError;
|
return isError;
|
||||||
@ -108,7 +108,7 @@ export class OrderValidationUtils {
|
|||||||
}
|
}
|
||||||
private static _validateOrderNotExpiredOrThrow(expirationTimeSeconds: BigNumber): void {
|
private static _validateOrderNotExpiredOrThrow(expirationTimeSeconds: BigNumber): void {
|
||||||
const currentUnixTimestampSec = utils.getCurrentUnixTimestampSec();
|
const currentUnixTimestampSec = utils.getCurrentUnixTimestampSec();
|
||||||
if (expirationTimeSeconds.lessThan(currentUnixTimestampSec)) {
|
if (expirationTimeSeconds.isLessThan(currentUnixTimestampSec)) {
|
||||||
throw new Error(RevertReason.OrderUnfillable);
|
throw new Error(RevertReason.OrderUnfillable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -216,7 +216,7 @@ export class OrderValidationUtils {
|
|||||||
}
|
}
|
||||||
OrderValidationUtils._validateOrderNotExpiredOrThrow(signedOrder.expirationTimeSeconds);
|
OrderValidationUtils._validateOrderNotExpiredOrThrow(signedOrder.expirationTimeSeconds);
|
||||||
const remainingTakerTokenAmount = signedOrder.takerAssetAmount.minus(filledTakerTokenAmount);
|
const remainingTakerTokenAmount = signedOrder.takerAssetAmount.minus(filledTakerTokenAmount);
|
||||||
const desiredFillTakerTokenAmount = remainingTakerTokenAmount.lessThan(fillTakerAssetAmount)
|
const desiredFillTakerTokenAmount = remainingTakerTokenAmount.isLessThan(fillTakerAssetAmount)
|
||||||
? remainingTakerTokenAmount
|
? remainingTakerTokenAmount
|
||||||
: fillTakerAssetAmount;
|
: fillTakerAssetAmount;
|
||||||
try {
|
try {
|
||||||
|
@ -22,7 +22,7 @@ export const rateUtils = {
|
|||||||
feeRate.gte(constants.ZERO_AMOUNT),
|
feeRate.gte(constants.ZERO_AMOUNT),
|
||||||
`Expected feeRate: ${feeRate} to be greater than or equal to 0`,
|
`Expected feeRate: ${feeRate} to be greater than or equal to 0`,
|
||||||
);
|
);
|
||||||
const takerAssetAmountNeededToPayForFees = order.takerFee.mul(feeRate);
|
const takerAssetAmountNeededToPayForFees = order.takerFee.multipliedBy(feeRate);
|
||||||
const totalTakerAssetAmount = takerAssetAmountNeededToPayForFees.plus(order.takerAssetAmount);
|
const totalTakerAssetAmount = takerAssetAmountNeededToPayForFees.plus(order.takerAssetAmount);
|
||||||
const rate = totalTakerAssetAmount.div(order.makerAssetAmount);
|
const rate = totalTakerAssetAmount.div(order.makerAssetAmount);
|
||||||
return rate;
|
return rate;
|
||||||
@ -35,9 +35,9 @@ export const rateUtils = {
|
|||||||
*/
|
*/
|
||||||
getFeeAdjustedRateOfFeeOrder(feeOrder: Order): BigNumber {
|
getFeeAdjustedRateOfFeeOrder(feeOrder: Order): BigNumber {
|
||||||
assert.doesConformToSchema('feeOrder', feeOrder, schemas.orderSchema);
|
assert.doesConformToSchema('feeOrder', feeOrder, schemas.orderSchema);
|
||||||
const zrxAmountAfterFees = feeOrder.makerAssetAmount.sub(feeOrder.takerFee);
|
const zrxAmountAfterFees = feeOrder.makerAssetAmount.minus(feeOrder.takerFee);
|
||||||
assert.assert(
|
assert.assert(
|
||||||
zrxAmountAfterFees.greaterThan(constants.ZERO_AMOUNT),
|
zrxAmountAfterFees.isGreaterThan(constants.ZERO_AMOUNT),
|
||||||
`Expected takerFee: ${JSON.stringify(feeOrder.takerFee)} to be less than makerAssetAmount: ${JSON.stringify(
|
`Expected takerFee: ${JSON.stringify(feeOrder.takerFee)} to be less than makerAssetAmount: ${JSON.stringify(
|
||||||
feeOrder.makerAssetAmount,
|
feeOrder.makerAssetAmount,
|
||||||
)}`,
|
)}`,
|
||||||
|
@ -39,15 +39,15 @@ export class RemainingFillableCalculator {
|
|||||||
private _hasSufficientFundsForFeeAndTransferAmount(): boolean {
|
private _hasSufficientFundsForFeeAndTransferAmount(): boolean {
|
||||||
if (this._isTraderAssetZRX) {
|
if (this._isTraderAssetZRX) {
|
||||||
const totalZRXTransferAmountRequired = this._remainingOrderAssetAmount.plus(this._remainingOrderFeeAmount);
|
const totalZRXTransferAmountRequired = this._remainingOrderAssetAmount.plus(this._remainingOrderFeeAmount);
|
||||||
const hasSufficientFunds = this._transferrableAssetAmount.greaterThanOrEqualTo(
|
const hasSufficientFunds = this._transferrableAssetAmount.isGreaterThanOrEqualTo(
|
||||||
totalZRXTransferAmountRequired,
|
totalZRXTransferAmountRequired,
|
||||||
);
|
);
|
||||||
return hasSufficientFunds;
|
return hasSufficientFunds;
|
||||||
} else {
|
} else {
|
||||||
const hasSufficientFundsForTransferAmount = this._transferrableAssetAmount.greaterThanOrEqualTo(
|
const hasSufficientFundsForTransferAmount = this._transferrableAssetAmount.isGreaterThanOrEqualTo(
|
||||||
this._remainingOrderAssetAmount,
|
this._remainingOrderAssetAmount,
|
||||||
);
|
);
|
||||||
const hasSufficientFundsForFeeAmount = this._transferrableFeeAmount.greaterThanOrEqualTo(
|
const hasSufficientFundsForFeeAmount = this._transferrableFeeAmount.isGreaterThanOrEqualTo(
|
||||||
this._remainingOrderFeeAmount,
|
this._remainingOrderFeeAmount,
|
||||||
);
|
);
|
||||||
const hasSufficientFunds = hasSufficientFundsForTransferAmount && hasSufficientFundsForFeeAmount;
|
const hasSufficientFunds = hasSufficientFundsForTransferAmount && hasSufficientFundsForFeeAmount;
|
||||||
|
@ -13,6 +13,6 @@ export function generatePseudoRandomSalt(): BigNumber {
|
|||||||
// Source: https://mikemcl.github.io/bignumber.js/#random
|
// Source: https://mikemcl.github.io/bignumber.js/#random
|
||||||
const randomNumber = BigNumber.random(MAX_DIGITS_IN_UNSIGNED_256_INT);
|
const randomNumber = BigNumber.random(MAX_DIGITS_IN_UNSIGNED_256_INT);
|
||||||
const factor = new BigNumber(10).pow(MAX_DIGITS_IN_UNSIGNED_256_INT - 1);
|
const factor = new BigNumber(10).pow(MAX_DIGITS_IN_UNSIGNED_256_INT - 1);
|
||||||
const salt = randomNumber.times(factor).round();
|
const salt = randomNumber.times(factor).integerValue();
|
||||||
return salt;
|
return salt;
|
||||||
}
|
}
|
||||||
|
@ -10,13 +10,13 @@ export const utils = {
|
|||||||
},
|
},
|
||||||
getCurrentUnixTimestampSec(): BigNumber {
|
getCurrentUnixTimestampSec(): BigNumber {
|
||||||
const milisecondsInSecond = 1000;
|
const milisecondsInSecond = 1000;
|
||||||
return new BigNumber(Date.now() / milisecondsInSecond).round();
|
return new BigNumber(Date.now() / milisecondsInSecond).integerValue();
|
||||||
},
|
},
|
||||||
getPartialAmountFloor(numerator: BigNumber, denominator: BigNumber, target: BigNumber): BigNumber {
|
getPartialAmountFloor(numerator: BigNumber, denominator: BigNumber, target: BigNumber): BigNumber {
|
||||||
const fillMakerTokenAmount = numerator
|
const fillMakerTokenAmount = numerator
|
||||||
.mul(target)
|
.multipliedBy(target)
|
||||||
.div(denominator)
|
.div(denominator)
|
||||||
.round(0);
|
.integerValue(0);
|
||||||
return fillMakerTokenAmount;
|
return fillMakerTokenAmount;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -162,7 +162,7 @@ describe('RemainingFillableCalculator', () => {
|
|||||||
remainingMakeAssetAmount,
|
remainingMakeAssetAmount,
|
||||||
);
|
);
|
||||||
const calculatedFillableAmount = calculator.computeRemainingFillable();
|
const calculatedFillableAmount = calculator.computeRemainingFillable();
|
||||||
expect(calculatedFillableAmount.lessThanOrEqualTo(transferrableMakeAssetAmount)).to.be.true();
|
expect(calculatedFillableAmount.isLessThanOrEqualTo(transferrableMakeAssetAmount)).to.be.true();
|
||||||
expect(calculatedFillableAmount).to.be.bignumber.greaterThan(new BigNumber(0));
|
expect(calculatedFillableAmount).to.be.bignumber.greaterThan(new BigNumber(0));
|
||||||
const orderToFeeRatio = signedOrder.makerAssetAmount.dividedBy(signedOrder.makerFee);
|
const orderToFeeRatio = signedOrder.makerAssetAmount.dividedBy(signedOrder.makerFee);
|
||||||
const calculatedFeeAmount = calculatedFillableAmount.dividedBy(orderToFeeRatio);
|
const calculatedFeeAmount = calculatedFillableAmount.dividedBy(orderToFeeRatio);
|
||||||
|
@ -132,10 +132,10 @@ describe('Signature utils', () => {
|
|||||||
});
|
});
|
||||||
it('generates salt in range [0..2^256)', () => {
|
it('generates salt in range [0..2^256)', () => {
|
||||||
const salt = generatePseudoRandomSalt();
|
const salt = generatePseudoRandomSalt();
|
||||||
expect(salt.greaterThanOrEqualTo(0)).to.be.true();
|
expect(salt.isGreaterThanOrEqualTo(0)).to.be.true();
|
||||||
// tslint:disable-next-line:custom-no-magic-numbers
|
// tslint:disable-next-line:custom-no-magic-numbers
|
||||||
const twoPow256 = new BigNumber(2).pow(256);
|
const twoPow256 = new BigNumber(2).pow(256);
|
||||||
expect(salt.lessThan(twoPow256)).to.be.true();
|
expect(salt.isLessThan(twoPow256)).to.be.true();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('#ecSignOrderAsync', () => {
|
describe('#ecSignOrderAsync', () => {
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "2.4.3",
|
"version": "2.4.3",
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
"@types/sinon": "^2.2.2",
|
"@types/sinon": "^2.2.2",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.1",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"mocha": "^4.1.0",
|
"mocha": "^4.1.0",
|
||||||
|
@ -73,7 +73,7 @@ export class ExpirationWatcher {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
const nextOrderHashToExpire = this._orderHashByExpirationRBTree.min();
|
const nextOrderHashToExpire = this._orderHashByExpirationRBTree.min();
|
||||||
const hasNoExpiredOrders = this._expiration[nextOrderHashToExpire].greaterThan(
|
const hasNoExpiredOrders = this._expiration[nextOrderHashToExpire].isGreaterThan(
|
||||||
currentUnixTimestampMs.plus(this._expirationMarginMs),
|
currentUnixTimestampMs.plus(this._expirationMarginMs),
|
||||||
);
|
);
|
||||||
const isSubscriptionActive = _.isUndefined(this._orderExpirationCheckingIntervalIdIfExists);
|
const isSubscriptionActive = _.isUndefined(this._orderExpirationCheckingIntervalIdIfExists);
|
||||||
|
@ -3,7 +3,7 @@ import { BigNumber } from '@0x/utils';
|
|||||||
export const utils = {
|
export const utils = {
|
||||||
getCurrentUnixTimestampSec(): BigNumber {
|
getCurrentUnixTimestampSec(): BigNumber {
|
||||||
const milisecondsInASecond = 1000;
|
const milisecondsInASecond = 1000;
|
||||||
return new BigNumber(Date.now() / milisecondsInASecond).round();
|
return new BigNumber(Date.now() / milisecondsInASecond).integerValue();
|
||||||
},
|
},
|
||||||
getCurrentUnixTimestampMs(): BigNumber {
|
getCurrentUnixTimestampMs(): BigNumber {
|
||||||
return new BigNumber(Date.now());
|
return new BigNumber(Date.now());
|
||||||
|
@ -317,7 +317,7 @@ describe('OrderWatcher', () => {
|
|||||||
const validOrderState = orderState as OrderStateValid;
|
const validOrderState = orderState as OrderStateValid;
|
||||||
expect(validOrderState.orderHash).to.be.equal(orderHash);
|
expect(validOrderState.orderHash).to.be.equal(orderHash);
|
||||||
const orderRelevantState = validOrderState.orderRelevantState;
|
const orderRelevantState = validOrderState.orderRelevantState;
|
||||||
const remainingMakerBalance = makerBalance.sub(fillAmountInBaseUnits);
|
const remainingMakerBalance = makerBalance.minus(fillAmountInBaseUnits);
|
||||||
const remainingFillable = fillableAmount.minus(fillAmountInBaseUnits);
|
const remainingFillable = fillableAmount.minus(fillAmountInBaseUnits);
|
||||||
expect(orderRelevantState.remainingFillableMakerAssetAmount).to.be.bignumber.equal(
|
expect(orderRelevantState.remainingFillableMakerAssetAmount).to.be.bignumber.equal(
|
||||||
remainingFillable,
|
remainingFillable,
|
||||||
@ -434,7 +434,7 @@ describe('OrderWatcher', () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const remainingAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(1), decimals);
|
const remainingAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(1), decimals);
|
||||||
const transferAmount = makerBalance.sub(remainingAmount);
|
const transferAmount = makerBalance.minus(remainingAmount);
|
||||||
await orderWatcher.addOrderAsync(signedOrder);
|
await orderWatcher.addOrderAsync(signedOrder);
|
||||||
|
|
||||||
const callback = callbackErrorReporter.reportNodeCallbackErrors(done)((orderState: OrderState) => {
|
const callback = callbackErrorReporter.reportNodeCallbackErrors(done)((orderState: OrderState) => {
|
||||||
@ -475,7 +475,7 @@ describe('OrderWatcher', () => {
|
|||||||
const remainingFeeAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(3), decimals);
|
const remainingFeeAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(3), decimals);
|
||||||
|
|
||||||
const remainingTokenAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(4), decimals);
|
const remainingTokenAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(4), decimals);
|
||||||
const transferTokenAmount = makerFee.sub(remainingTokenAmount);
|
const transferTokenAmount = makerFee.minus(remainingTokenAmount);
|
||||||
await orderWatcher.addOrderAsync(signedOrder);
|
await orderWatcher.addOrderAsync(signedOrder);
|
||||||
|
|
||||||
const callback = callbackErrorReporter.reportNodeCallbackErrors(done)((orderState: OrderState) => {
|
const callback = callbackErrorReporter.reportNodeCallbackErrors(done)((orderState: OrderState) => {
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
"@types/ramda": "^0.25.38",
|
"@types/ramda": "^0.25.38",
|
||||||
"chai": "^4.1.2",
|
"chai": "^4.1.2",
|
||||||
"chai-as-promised": "^7.1.1",
|
"chai-as-promised": "^7.1.1",
|
||||||
"chai-bignumber": "^2.0.2",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
"tslint": "5.11.0",
|
"tslint": "5.11.0",
|
||||||
|
@ -19,7 +19,7 @@ export class NumberToBigIntTransformer implements ValueTransformer {
|
|||||||
|
|
||||||
// tslint:disable-next-line:prefer-function-over-method
|
// tslint:disable-next-line:prefer-function-over-method
|
||||||
public from(value: string): number {
|
public from(value: string): number {
|
||||||
if (new BigNumber(value).greaterThan(Number.MAX_SAFE_INTEGER)) {
|
if (new BigNumber(value).isGreaterThan(Number.MAX_SAFE_INTEGER)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Attempted to convert PostgreSQL bigint value (${value}) to JavaScript number type but it is too big to safely convert`,
|
`Attempted to convert PostgreSQL bigint value (${value}) to JavaScript number type but it is too big to safely convert`,
|
||||||
);
|
);
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.0.25",
|
"version": "1.0.25",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "3.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
"@types/semver": "^5.5.0",
|
"@types/semver": "^5.5.0",
|
||||||
"chai": "^4.0.1",
|
"chai": "^4.0.1",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.2",
|
"chai-bignumber": "^3.0.0",
|
||||||
"copyfiles": "^2.0.0",
|
"copyfiles": "^2.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.0.14",
|
"version": "1.0.14",
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
"@0x/tslint-config": "^2.0.2",
|
"@0x/tslint-config": "^2.0.2",
|
||||||
"chai": "^4.1.2",
|
"chai": "^4.1.2",
|
||||||
"chai-as-promised": "^7.1.0",
|
"chai-as-promised": "^7.1.0",
|
||||||
"chai-bignumber": "^2.0.2",
|
"chai-bignumber": "^3.0.0",
|
||||||
"dirty-chai": "^2.0.1",
|
"dirty-chai": "^2.0.1",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547747677,
|
"timestamp": 1547747677,
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
|
@ -1,4 +1,13 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"changes": [
|
||||||
|
{
|
||||||
|
"note": "Upgrade the bignumber.js to v8.0.2",
|
||||||
|
"pr": 1517
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"timestamp": 1547561734,
|
"timestamp": 1547561734,
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user