diff --git a/contracts/broker/contracts/src/Broker.sol b/contracts/broker/contracts/src/Broker.sol index e60b1cf36f..1fa86a849e 100644 --- a/contracts/broker/contracts/src/Broker.sol +++ b/contracts/broker/contracts/src/Broker.sol @@ -20,7 +20,7 @@ pragma solidity ^0.5.9; pragma experimental ABIEncoderV2; import "@0x/contracts-exchange/contracts/src/interfaces/IExchange.sol"; -import "@0x/contracts-exchange-forwarder/contracts/src/libs/LibAssetDataTransfer.sol"; +import "@0x/contracts-exchange-libs/contracts/src/LibAssetDataTransfer.sol"; import "@0x/contracts-exchange-libs/contracts/src/LibFillResults.sol"; import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol"; import "@0x/contracts-utils/contracts/src/LibBytes.sol"; diff --git a/contracts/broker/package.json b/contracts/broker/package.json index 90dcd43171..53b87b9945 100644 --- a/contracts/broker/package.json +++ b/contracts/broker/package.json @@ -54,7 +54,6 @@ "@0x/abi-gen": "^5.1.0", "@0x/contracts-erc721": "^3.0.4", "@0x/contracts-exchange": "^3.1.0", - "@0x/contracts-exchange-forwarder": "^4.0.4", "@0x/contracts-exchange-libs": "^4.1.0", "@0x/contracts-gen": "^2.0.4", "@0x/contracts-test-utils": "^5.1.1", diff --git a/contracts/exchange-forwarder/CHANGELOG.json b/contracts/exchange-forwarder/CHANGELOG.json index f13d966947..146fe0b0ad 100644 --- a/contracts/exchange-forwarder/CHANGELOG.json +++ b/contracts/exchange-forwarder/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "4.1.0", + "changes": [ + { + "note": "Moved LibAssetDataTransfer to exchange-libs", + "pr": 2455 + } + ] + }, { "timestamp": 1580811564, "version": "4.0.5", diff --git a/contracts/exchange-forwarder/contracts/src/MixinAssets.sol b/contracts/exchange-forwarder/contracts/src/MixinAssets.sol index 8e08e3c02a..c7b0058fe8 100644 --- a/contracts/exchange-forwarder/contracts/src/MixinAssets.sol +++ b/contracts/exchange-forwarder/contracts/src/MixinAssets.sol @@ -18,13 +18,13 @@ pragma solidity ^0.5.9; +import "@0x/contracts-exchange-libs/contracts/src/LibAssetDataTransfer.sol"; import "@0x/contracts-utils/contracts/src/LibBytes.sol"; import "@0x/contracts-utils/contracts/src/LibRichErrors.sol"; import "@0x/contracts-utils/contracts/src/Ownable.sol"; import "@0x/contracts-erc20/contracts/src/LibERC20Token.sol"; import "@0x/contracts-asset-proxy/contracts/src/interfaces/IAssetData.sol"; import "./libs/LibConstants.sol"; -import "./libs/LibAssetDataTransfer.sol"; import "./libs/LibForwarderRichErrors.sol"; import "./interfaces/IAssets.sol"; diff --git a/contracts/exchange-forwarder/contracts/src/libs/LibForwarderRichErrors.sol b/contracts/exchange-forwarder/contracts/src/libs/LibForwarderRichErrors.sol index 75ff5406c5..2d6e57f780 100644 --- a/contracts/exchange-forwarder/contracts/src/libs/LibForwarderRichErrors.sol +++ b/contracts/exchange-forwarder/contracts/src/libs/LibForwarderRichErrors.sol @@ -25,10 +25,6 @@ library LibForwarderRichErrors { bytes4 internal constant UNREGISTERED_ASSET_PROXY_ERROR_SELECTOR = 0xf3b96b8d; - // bytes4(keccak256("UnsupportedAssetProxyError(bytes4)")) - bytes4 internal constant UNSUPPORTED_ASSET_PROXY_ERROR_SELECTOR = - 0x7996a271; - // bytes4(keccak256("CompleteBuyFailedError(uint256,uint256)")) bytes4 internal constant COMPLETE_BUY_FAILED_ERROR_SELECTOR = 0x91353a0c; @@ -49,10 +45,6 @@ library LibForwarderRichErrors { bytes4 internal constant DEFAULT_FUNCTION_WETH_CONTRACT_ONLY_ERROR_SELECTOR = 0x08b18698; - // bytes4(keccak256("Erc721AmountMustEqualOneError(uint256)")) - bytes4 internal constant ERC721_AMOUNT_MUST_EQUAL_ONE_ERROR_SELECTOR = - 0xbaffa474; - // bytes4(keccak256("EthFeeLengthMismatchError(uint256,uint256)")) bytes4 internal constant ETH_FEE_LENGTH_MISMATCH_ERROR_SELECTOR = 0x3ecb6ceb; @@ -66,19 +58,6 @@ library LibForwarderRichErrors { return abi.encodeWithSelector(UNREGISTERED_ASSET_PROXY_ERROR_SELECTOR); } - function UnsupportedAssetProxyError( - bytes4 proxyId - ) - internal - pure - returns (bytes memory) - { - return abi.encodeWithSelector( - UNSUPPORTED_ASSET_PROXY_ERROR_SELECTOR, - proxyId - ); - } - function CompleteBuyFailedError( uint256 expectedAssetBuyAmount, uint256 actualAssetBuyAmount @@ -150,19 +129,6 @@ library LibForwarderRichErrors { ); } - function Erc721AmountMustEqualOneError( - uint256 amount - ) - internal - pure - returns (bytes memory) - { - return abi.encodeWithSelector( - ERC721_AMOUNT_MUST_EQUAL_ONE_ERROR_SELECTOR, - amount - ); - } - function EthFeeLengthMismatchError( uint256 ethFeesLength, uint256 feeRecipientsLength diff --git a/contracts/exchange-forwarder/contracts/test/TestForwarder.sol b/contracts/exchange-forwarder/contracts/test/TestForwarder.sol index 232911c0f9..c6f9f45b3d 100644 --- a/contracts/exchange-forwarder/contracts/test/TestForwarder.sol +++ b/contracts/exchange-forwarder/contracts/test/TestForwarder.sol @@ -19,9 +19,9 @@ pragma solidity ^0.5.9; pragma experimental ABIEncoderV2; +import "@0x/contracts-exchange-libs/contracts/src/LibAssetDataTransfer.sol"; import "../src/MixinExchangeWrapper.sol"; import "../src/libs/LibConstants.sol"; -import "../src/libs/LibAssetDataTransfer.sol"; import "../src/MixinReceiver.sol"; diff --git a/contracts/exchange-forwarder/package.json b/contracts/exchange-forwarder/package.json index b1bb49c42b..f35a5b4ad5 100644 --- a/contracts/exchange-forwarder/package.json +++ b/contracts/exchange-forwarder/package.json @@ -39,7 +39,7 @@ }, "config": { "publicInterfaceContracts": "Forwarder,IExchangeV2", - "abis": "./test/generated-artifacts/@(Forwarder|IAssets|IExchangeV2|IForwarder|IForwarderCore|LibAssetDataTransfer|LibConstants|LibForwarderRichErrors|MixinAssets|MixinExchangeWrapper|MixinForwarderCore|MixinReceiver|MixinWeth|TestForwarder).json", + "abis": "./test/generated-artifacts/@(Forwarder|IAssets|IExchangeV2|IForwarder|IForwarderCore|LibConstants|LibForwarderRichErrors|MixinAssets|MixinExchangeWrapper|MixinForwarderCore|MixinReceiver|MixinWeth|TestForwarder).json", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { diff --git a/contracts/exchange-forwarder/test/artifacts.ts b/contracts/exchange-forwarder/test/artifacts.ts index 1b706dbba4..89c80a983d 100644 --- a/contracts/exchange-forwarder/test/artifacts.ts +++ b/contracts/exchange-forwarder/test/artifacts.ts @@ -10,7 +10,6 @@ import * as IAssets from '../test/generated-artifacts/IAssets.json'; import * as IExchangeV2 from '../test/generated-artifacts/IExchangeV2.json'; import * as IForwarder from '../test/generated-artifacts/IForwarder.json'; import * as IForwarderCore from '../test/generated-artifacts/IForwarderCore.json'; -import * as LibAssetDataTransfer from '../test/generated-artifacts/LibAssetDataTransfer.json'; import * as LibConstants from '../test/generated-artifacts/LibConstants.json'; import * as LibForwarderRichErrors from '../test/generated-artifacts/LibForwarderRichErrors.json'; import * as MixinAssets from '../test/generated-artifacts/MixinAssets.json'; @@ -30,7 +29,6 @@ export const artifacts = { IExchangeV2: IExchangeV2 as ContractArtifact, IForwarder: IForwarder as ContractArtifact, IForwarderCore: IForwarderCore as ContractArtifact, - LibAssetDataTransfer: LibAssetDataTransfer as ContractArtifact, LibConstants: LibConstants as ContractArtifact, LibForwarderRichErrors: LibForwarderRichErrors as ContractArtifact, TestForwarder: TestForwarder as ContractArtifact, diff --git a/contracts/exchange-forwarder/test/asset_test.ts b/contracts/exchange-forwarder/test/asset_test.ts index 64b03977df..0ee8cca8c4 100644 --- a/contracts/exchange-forwarder/test/asset_test.ts +++ b/contracts/exchange-forwarder/test/asset_test.ts @@ -26,7 +26,7 @@ import { randomAddress, verifyEventsFromLogs, } from '@0x/contracts-test-utils'; -import { BigNumber, ExchangeForwarderRevertErrors, hexUtils } from '@0x/utils'; +import { BigNumber, hexUtils, LibAssetDataTransferRevertErrors } from '@0x/utils'; import { LogWithDecodedArgs } from 'ethereum-types'; import { artifacts } from './artifacts'; @@ -235,7 +235,7 @@ blockchainTests.resets('Supported asset type unit tests', env => { const tx = forwarder .transferOut(erc721AssetData, invalidAmount) .awaitTransactionSuccessAsync({ from: receiver }); - const expectedError = new ExchangeForwarderRevertErrors.Erc721AmountMustEqualOneError(invalidAmount); + const expectedError = new LibAssetDataTransferRevertErrors.Erc721AmountMustEqualOneError(invalidAmount); return expect(tx).to.revertWith(expectedError); }); it('transfers a single ERC1155 token', async () => { @@ -365,7 +365,7 @@ blockchainTests.resets('Supported asset type unit tests', env => { const tx = forwarder .transferOut(randomBytes, TRANSFER_AMOUNT) .awaitTransactionSuccessAsync({ from: receiver }); - const expectedError = new ExchangeForwarderRevertErrors.UnsupportedAssetProxyError( + const expectedError = new LibAssetDataTransferRevertErrors.UnsupportedAssetProxyError( hexUtils.slice(randomBytes, 0, 4), ); return expect(tx).to.revertWith(expectedError); diff --git a/contracts/exchange-forwarder/test/wrappers.ts b/contracts/exchange-forwarder/test/wrappers.ts index 37796558fa..be47b14fb8 100644 --- a/contracts/exchange-forwarder/test/wrappers.ts +++ b/contracts/exchange-forwarder/test/wrappers.ts @@ -8,7 +8,6 @@ export * from '../test/generated-wrappers/i_assets'; export * from '../test/generated-wrappers/i_exchange_v2'; export * from '../test/generated-wrappers/i_forwarder'; export * from '../test/generated-wrappers/i_forwarder_core'; -export * from '../test/generated-wrappers/lib_asset_data_transfer'; export * from '../test/generated-wrappers/lib_constants'; export * from '../test/generated-wrappers/lib_forwarder_rich_errors'; export * from '../test/generated-wrappers/mixin_assets'; diff --git a/contracts/exchange-forwarder/tsconfig.json b/contracts/exchange-forwarder/tsconfig.json index a02b1463ff..5953b5f196 100644 --- a/contracts/exchange-forwarder/tsconfig.json +++ b/contracts/exchange-forwarder/tsconfig.json @@ -10,7 +10,6 @@ "test/generated-artifacts/IExchangeV2.json", "test/generated-artifacts/IForwarder.json", "test/generated-artifacts/IForwarderCore.json", - "test/generated-artifacts/LibAssetDataTransfer.json", "test/generated-artifacts/LibConstants.json", "test/generated-artifacts/LibForwarderRichErrors.json", "test/generated-artifacts/MixinAssets.json", diff --git a/contracts/exchange-libs/CHANGELOG.json b/contracts/exchange-libs/CHANGELOG.json index 357b8c2318..f6fb6ba861 100644 --- a/contracts/exchange-libs/CHANGELOG.json +++ b/contracts/exchange-libs/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "4.2.0", + "changes": [ + { + "note": "Moved LibAssetDataTransfer here from forwarder", + "pr": 2455 + } + ] + }, { "timestamp": 1580811564, "version": "4.1.1", diff --git a/contracts/exchange-forwarder/contracts/src/libs/LibAssetDataTransfer.sol b/contracts/exchange-libs/contracts/src/LibAssetDataTransfer.sol similarity index 97% rename from contracts/exchange-forwarder/contracts/src/libs/LibAssetDataTransfer.sol rename to contracts/exchange-libs/contracts/src/LibAssetDataTransfer.sol index 8616885062..b1121a5733 100644 --- a/contracts/exchange-forwarder/contracts/src/libs/LibAssetDataTransfer.sol +++ b/contracts/exchange-libs/contracts/src/LibAssetDataTransfer.sol @@ -26,7 +26,7 @@ import "@0x/contracts-erc20/contracts/src/LibERC20Token.sol"; import "@0x/contracts-erc721/contracts/src/interfaces/IERC721Token.sol"; import "@0x/contracts-erc1155/contracts/src/interfaces/IERC1155.sol"; import "@0x/contracts-asset-proxy/contracts/src/interfaces/IAssetData.sol"; -import "./LibForwarderRichErrors.sol"; +import "./LibAssetDataTransferRichErrors.sol"; library LibAssetDataTransfer { @@ -82,7 +82,7 @@ library LibAssetDataTransfer { amount ); } else if (proxyId != IAssetData(address(0)).StaticCall.selector) { - LibRichErrors.rrevert(LibForwarderRichErrors.UnsupportedAssetProxyError( + LibRichErrors.rrevert(LibAssetDataTransferRichErrors.UnsupportedAssetProxyError( proxyId )); } @@ -165,7 +165,7 @@ library LibAssetDataTransfer { internal { if (amount != 1) { - LibRichErrors.rrevert(LibForwarderRichErrors.Erc721AmountMustEqualOneError( + LibRichErrors.rrevert(LibAssetDataTransferRichErrors.Erc721AmountMustEqualOneError( amount )); } diff --git a/contracts/exchange-libs/contracts/src/LibAssetDataTransferRichErrors.sol b/contracts/exchange-libs/contracts/src/LibAssetDataTransferRichErrors.sol new file mode 100644 index 0000000000..61bea82ffd --- /dev/null +++ b/contracts/exchange-libs/contracts/src/LibAssetDataTransferRichErrors.sol @@ -0,0 +1,58 @@ +/* + + Copyright 2019 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.5.9; + + +library LibAssetDataTransferRichErrors { + + // bytes4(keccak256("UnsupportedAssetProxyError(bytes4)")) + bytes4 internal constant UNSUPPORTED_ASSET_PROXY_ERROR_SELECTOR = + 0x7996a271; + + // bytes4(keccak256("Erc721AmountMustEqualOneError(uint256)")) + bytes4 internal constant ERC721_AMOUNT_MUST_EQUAL_ONE_ERROR_SELECTOR = + 0xbaffa474; + + // solhint-disable func-name-mixedcase + function UnsupportedAssetProxyError( + bytes4 proxyId + ) + internal + pure + returns (bytes memory) + { + return abi.encodeWithSelector( + UNSUPPORTED_ASSET_PROXY_ERROR_SELECTOR, + proxyId + ); + } + + function Erc721AmountMustEqualOneError( + uint256 amount + ) + internal + pure + returns (bytes memory) + { + return abi.encodeWithSelector( + ERC721_AMOUNT_MUST_EQUAL_ONE_ERROR_SELECTOR, + amount + ); + } +} diff --git a/contracts/exchange-libs/package.json b/contracts/exchange-libs/package.json index af31197e08..373bb4f929 100644 --- a/contracts/exchange-libs/package.json +++ b/contracts/exchange-libs/package.json @@ -39,7 +39,7 @@ }, "config": { "publicInterfaceContracts": "IWallet,LibEIP712ExchangeDomain,LibExchangeRichErrors,LibMath,LibMathRichErrors,LibOrder,LibZeroExTransaction", - "abis": "./test/generated-artifacts/@(IWallet|LibEIP712ExchangeDomain|LibExchangeRichErrors|LibFillResults|LibMath|LibMathRichErrors|LibOrder|LibZeroExTransaction|TestLibEIP712ExchangeDomain|TestLibFillResults|TestLibMath|TestLibOrder|TestLibZeroExTransaction).json", + "abis": "./test/generated-artifacts/@(IWallet|LibAssetDataTransfer|LibAssetDataTransferRichErrors|LibEIP712ExchangeDomain|LibExchangeRichErrors|LibFillResults|LibMath|LibMathRichErrors|LibOrder|LibZeroExTransaction|TestLibEIP712ExchangeDomain|TestLibFillResults|TestLibMath|TestLibOrder|TestLibZeroExTransaction).json", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { diff --git a/contracts/exchange-libs/src/index.ts b/contracts/exchange-libs/src/index.ts index f0fb0f8085..7df2c24ef1 100644 --- a/contracts/exchange-libs/src/index.ts +++ b/contracts/exchange-libs/src/index.ts @@ -8,7 +8,7 @@ export { LibOrderContract, LibZeroExTransactionContract, } from './wrappers'; -export { LibMathRevertErrors } from '@0x/utils'; +export { LibAssetDataTransferRevertErrors, LibMathRevertErrors } from '@0x/utils'; import * as ReferenceFunctionsToExport from './reference_functions'; export import ReferenceFunctions = ReferenceFunctionsToExport; diff --git a/contracts/exchange-libs/test/artifacts.ts b/contracts/exchange-libs/test/artifacts.ts index 01c47756ec..bdd73abe70 100644 --- a/contracts/exchange-libs/test/artifacts.ts +++ b/contracts/exchange-libs/test/artifacts.ts @@ -6,6 +6,8 @@ import { ContractArtifact } from 'ethereum-types'; import * as IWallet from '../test/generated-artifacts/IWallet.json'; +import * as LibAssetDataTransfer from '../test/generated-artifacts/LibAssetDataTransfer.json'; +import * as LibAssetDataTransferRichErrors from '../test/generated-artifacts/LibAssetDataTransferRichErrors.json'; import * as LibEIP712ExchangeDomain from '../test/generated-artifacts/LibEIP712ExchangeDomain.json'; import * as LibExchangeRichErrors from '../test/generated-artifacts/LibExchangeRichErrors.json'; import * as LibFillResults from '../test/generated-artifacts/LibFillResults.json'; @@ -20,6 +22,8 @@ import * as TestLibOrder from '../test/generated-artifacts/TestLibOrder.json'; import * as TestLibZeroExTransaction from '../test/generated-artifacts/TestLibZeroExTransaction.json'; export const artifacts = { IWallet: IWallet as ContractArtifact, + LibAssetDataTransfer: LibAssetDataTransfer as ContractArtifact, + LibAssetDataTransferRichErrors: LibAssetDataTransferRichErrors as ContractArtifact, LibEIP712ExchangeDomain: LibEIP712ExchangeDomain as ContractArtifact, LibExchangeRichErrors: LibExchangeRichErrors as ContractArtifact, LibFillResults: LibFillResults as ContractArtifact, diff --git a/contracts/exchange-libs/test/wrappers.ts b/contracts/exchange-libs/test/wrappers.ts index c0205dc234..98042bd054 100644 --- a/contracts/exchange-libs/test/wrappers.ts +++ b/contracts/exchange-libs/test/wrappers.ts @@ -4,6 +4,8 @@ * ----------------------------------------------------------------------------- */ export * from '../test/generated-wrappers/i_wallet'; +export * from '../test/generated-wrappers/lib_asset_data_transfer'; +export * from '../test/generated-wrappers/lib_asset_data_transfer_rich_errors'; export * from '../test/generated-wrappers/lib_e_i_p712_exchange_domain'; export * from '../test/generated-wrappers/lib_exchange_rich_errors'; export * from '../test/generated-wrappers/lib_fill_results'; diff --git a/contracts/exchange-libs/tsconfig.json b/contracts/exchange-libs/tsconfig.json index 26f76e6e57..b32b8739d6 100644 --- a/contracts/exchange-libs/tsconfig.json +++ b/contracts/exchange-libs/tsconfig.json @@ -11,6 +11,8 @@ "generated-artifacts/LibOrder.json", "generated-artifacts/LibZeroExTransaction.json", "test/generated-artifacts/IWallet.json", + "test/generated-artifacts/LibAssetDataTransfer.json", + "test/generated-artifacts/LibAssetDataTransferRichErrors.json", "test/generated-artifacts/LibEIP712ExchangeDomain.json", "test/generated-artifacts/LibExchangeRichErrors.json", "test/generated-artifacts/LibFillResults.json", diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json index 7e9aa09d5d..66b6f4dc77 100644 --- a/packages/utils/CHANGELOG.json +++ b/packages/utils/CHANGELOG.json @@ -5,6 +5,10 @@ { "note": "Added Broker revert errors", "pr": 2455 + }, + { + "note": "Moved LibAssetDataTransfer revert errors into their own file", + "pr": 2455 } ] }, diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index e3cc79e78f..030c91f244 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -30,6 +30,7 @@ export { export import BrokerRevertErrors = require('./revert_errors/broker/revert_errors'); export import CoordinatorRevertErrors = require('./revert_errors/coordinator/revert_errors'); export import ExchangeForwarderRevertErrors = require('./revert_errors/exchange-forwarder/revert_errors'); +export import LibAssetDataTransferRevertErrors = require('./revert_errors/exchange-libs/lib_asset_data_transfer_revert_errors'); export import LibMathRevertErrors = require('./revert_errors/exchange-libs/lib_math_revert_errors'); export import ExchangeRevertErrors = require('./revert_errors/exchange/revert_errors'); export import FixedMathRevertErrors = require('./revert_errors/staking/fixed_math_revert_errors'); diff --git a/packages/utils/src/revert_errors/exchange-forwarder/revert_errors.ts b/packages/utils/src/revert_errors/exchange-forwarder/revert_errors.ts index 14ee6039dd..ad8035b71b 100644 --- a/packages/utils/src/revert_errors/exchange-forwarder/revert_errors.ts +++ b/packages/utils/src/revert_errors/exchange-forwarder/revert_errors.ts @@ -9,12 +9,6 @@ export class UnregisteredAssetProxyError extends RevertError { } } -export class UnsupportedAssetProxyError extends RevertError { - constructor(proxyId?: string) { - super('UnsupportedAssetProxyError', 'UnsupportedAssetProxyError(bytes4 proxyId)', { proxyId }); - } -} - export class CompleteBuyFailedError extends RevertError { constructor( expectedAssetBuyAmount?: BigNumber | number | string, @@ -67,14 +61,6 @@ export class MsgValueCannotEqualZeroError extends RevertError { } } -export class Erc721AmountMustEqualOneError extends RevertError { - constructor(amount?: BigNumber | number | string) { - super('Erc721AmountMustEqualOneError', 'Erc721AmountMustEqualOneError(uint256 amount)', { - amount, - }); - } -} - export class EthFeeLengthMismatchError extends RevertError { constructor(ethFeesLength?: BigNumber | number | string, feeRecipientsLength?: BigNumber | number | string) { super( @@ -90,14 +76,12 @@ export class EthFeeLengthMismatchError extends RevertError { const types = [ UnregisteredAssetProxyError, - UnsupportedAssetProxyError, CompleteBuyFailedError, UnsupportedFeeError, InsufficientEthForFeeError, OverspentWethError, DefaultFunctionWethContractOnlyError, MsgValueCannotEqualZeroError, - Erc721AmountMustEqualOneError, EthFeeLengthMismatchError, ]; diff --git a/packages/utils/src/revert_errors/exchange-libs/lib_asset_data_transfer_revert_errors.ts b/packages/utils/src/revert_errors/exchange-libs/lib_asset_data_transfer_revert_errors.ts new file mode 100644 index 0000000000..d2c6944994 --- /dev/null +++ b/packages/utils/src/revert_errors/exchange-libs/lib_asset_data_transfer_revert_errors.ts @@ -0,0 +1,25 @@ +import { BigNumber } from '../../configured_bignumber'; +import { RevertError } from '../../revert_error'; + +// tslint:disable:max-classes-per-file + +export class UnsupportedAssetProxyError extends RevertError { + constructor(proxyId?: string) { + super('UnsupportedAssetProxyError', 'UnsupportedAssetProxyError(bytes4 proxyId)', { proxyId }); + } +} + +export class Erc721AmountMustEqualOneError extends RevertError { + constructor(amount?: BigNumber | number | string) { + super('Erc721AmountMustEqualOneError', 'Erc721AmountMustEqualOneError(uint256 amount)', { + amount, + }); + } +} + +const types = [UnsupportedAssetProxyError, Erc721AmountMustEqualOneError]; + +// Register the types we've defined. +for (const type of types) { + RevertError.registerType(type); +}