Updated the erc1155 tests to expect RichErrors
This commit is contained in:
committed by
Amir Bandeali
parent
6e4b6929d2
commit
b3da4bb5b7
@@ -8,7 +8,7 @@ import {
|
||||
} from '@0x/contracts-test-utils';
|
||||
import { BlockchainLifecycle } from '@0x/dev-utils';
|
||||
import { RevertReason } from '@0x/types';
|
||||
import { BigNumber } from '@0x/utils';
|
||||
import { BigNumber, SafeMathRevertErrors } from '@0x/utils';
|
||||
import * as chai from 'chai';
|
||||
import { LogWithDecodedArgs } from 'ethereum-types';
|
||||
import * as _ from 'lodash';
|
||||
@@ -171,18 +171,21 @@ describe('ERC1155Token', () => {
|
||||
// setup test parameters
|
||||
const tokenToTransfer = fungibleToken;
|
||||
const valueToTransfer = spenderInitialFungibleBalance.plus(1);
|
||||
// execute transfer
|
||||
await expectTransactionFailedAsync(
|
||||
erc1155Contract.safeTransferFrom.sendTransactionAsync(
|
||||
spender,
|
||||
receiver,
|
||||
tokenToTransfer,
|
||||
valueToTransfer,
|
||||
receiverCallbackData,
|
||||
{ from: spender },
|
||||
),
|
||||
RevertReason.Uint256Underflow,
|
||||
// create the expected error (a uint256 underflow)
|
||||
let expectedError = new SafeMathRevertErrors.Uint256UnderflowError(
|
||||
spenderInitialFungibleBalance,
|
||||
valueToTransfer
|
||||
);
|
||||
// execute transfer
|
||||
let tx = erc1155Contract.safeTransferFrom.sendTransactionAsync(
|
||||
spender,
|
||||
receiver,
|
||||
tokenToTransfer,
|
||||
valueToTransfer,
|
||||
receiverCallbackData,
|
||||
{ from: spender },
|
||||
);
|
||||
expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
it('should throw if callback reverts', async () => {
|
||||
// setup test parameters
|
||||
@@ -343,18 +346,21 @@ describe('ERC1155Token', () => {
|
||||
// setup test parameters
|
||||
const tokensToTransfer = [fungibleToken];
|
||||
const valuesToTransfer = [spenderInitialFungibleBalance.plus(1)];
|
||||
// execute transfer
|
||||
await expectTransactionFailedAsync(
|
||||
erc1155Contract.safeBatchTransferFrom.sendTransactionAsync(
|
||||
spender,
|
||||
receiver,
|
||||
tokensToTransfer,
|
||||
valuesToTransfer,
|
||||
receiverCallbackData,
|
||||
{ from: spender },
|
||||
),
|
||||
RevertReason.Uint256Underflow,
|
||||
// create the expected error (a uint256 underflow)
|
||||
let expectedError = new SafeMathRevertErrors.Uint256UnderflowError(
|
||||
spenderInitialFungibleBalance,
|
||||
valuesToTransfer
|
||||
);
|
||||
// execute transfer
|
||||
let tx = erc1155Contract.safeBatchTransferFrom.sendTransactionAsync(
|
||||
spender,
|
||||
receiver,
|
||||
tokensToTransfer,
|
||||
valuesToTransfer,
|
||||
receiverCallbackData,
|
||||
{ from: spender },
|
||||
);
|
||||
expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
it('should throw if callback reverts', async () => {
|
||||
// setup test parameters
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import * as OwnableRevertErrors from './ownable_revert_errors';
|
||||
import * as SafeMathRevertErrors from './safe_math_revert_errors';
|
||||
|
||||
export { promisify } from './promisify';
|
||||
export { addressUtils } from './address_utils';
|
||||
export { classUtils } from './class_utils';
|
||||
@@ -24,3 +27,5 @@ export {
|
||||
StringRevertError,
|
||||
AnyRevertError,
|
||||
} from './revert_error';
|
||||
|
||||
export { OwnableRevertErrors, SafeMathRevertErrors };
|
||||
|
||||
14
packages/utils/src/ownable_revert_errors.ts
Normal file
14
packages/utils/src/ownable_revert_errors.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { BigNumber } from './configured_bignumber';
|
||||
import { RevertError } from './revert_error';
|
||||
|
||||
export class OnlyOwnerError extends RevertError {
|
||||
constructor(sender?: string, owner?: string) {
|
||||
super('OnlyOwnerError', 'OnlyOwnerError(address sender, address owner)', {
|
||||
sender,
|
||||
owner,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Register the OnlyOwnerError type
|
||||
RevertError.registerType(OnlyOwnerError);
|
||||
32
packages/utils/src/safe_math_revert_errors.ts
Normal file
32
packages/utils/src/safe_math_revert_errors.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { BigNumber } from './configured_bignumber';
|
||||
import { RevertError } from './revert_error';
|
||||
|
||||
// tslint:disable:max-classes-per-file
|
||||
|
||||
export class Uint256OverflowError extends RevertError {
|
||||
constructor(a?: BigNumber | number | string, b?: BigNumber | number | string) {
|
||||
super('Uint256OverflowError', 'Uint256OverflowError(uint256 a, uint256 b)', {
|
||||
a,
|
||||
b,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class Uint256UnderflowError extends RevertError {
|
||||
constructor(a?: BigNumber | number | string, b?: BigNumber | number | string) {
|
||||
super('Uint256UnderflowError', 'Uint256UnderflowError(uint256 a, uint256 b)', {
|
||||
a,
|
||||
b,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const types = [
|
||||
Uint256OverflowError,
|
||||
Uint256UnderflowError,
|
||||
]
|
||||
|
||||
// Register the types we've defined.
|
||||
for (const type of types) {
|
||||
RevertError.registerType(type);
|
||||
}
|
||||
Reference in New Issue
Block a user