* add LibERC721Order.sol * Add ERC721 interface to vendor/ * Add ERC721OrdersFeature interface * Storage lib for ERC721 orders feature * Implement basic functionality for ERC721 orders (buy, sell, cancel, etc) * Add isValidERC721OrderSignature to interface * implement onERC721Received * Implement batchBuyERC721s * left/right orders -> sell/buy orders * Add missing @return comments * Implement matching functions * Use SafeMath where necessary * add rich errors for ERC721OrdersFeature * Add comments * Add presign support for ERC721 orders * Cancel using just the order nonce * Add IERC721OrdersFeature to IZeroEx * Add taker callback * Assembly optimizations in LibERC721Order * Add ERC721Orders TS class * create zero-ex/contracts/test/integration/ and tokens/ directories * TestMintableERC721Token * tmp * address feedback from original PR (#391) * address feedback from original PR * Update contracts/zero-ex/contracts/src/features/ERC721OrdersFeature.sol Co-authored-by: Kim Persson <kimpers@users.noreply.github.com> * address review feedback and improve order parameter naming * Add batchCancel function * Emit order fields in preSign * Fix tests Co-authored-by: Lawrence Forman <me@merklejerk.com> Co-authored-by: Kim Persson <kimpers@users.noreply.github.com> Co-authored-by: Michael Zhu <mchl.zhu.96@gmail.com> * Remove revertIfIncomplete from batchMatch * Sanity check maker address in preSign * ERC1155OrdersFeature contracts * Commence refactor, abstract base contract * ERC721OrdersFeature inherits from NFTOrders * Refactor ERC1155OrdersFeature to inherit from NFTOrders * Fix order hashing * Fix ERC721OrdersFeature tests * Typos * Remove maker address from preSigned mapping * disable dex sampler tests * Refactor TS tooling * Address PR feedback * Rearrange event fields to better align with struct fields * Update comments * update AbiEncoder.create params * Add ERC1155Order to protocol-utils * Add ERC1155OrdersFeeature tests * Bump package versions and regenerate contract wrappers * Add ERC165Feature * NFT orders: address audit findings (#417) * CVF-1: use pragma solidity ^0.6 instead of ^0.6.5 * CVF-11: fix inaccurate comment * CVF-16: Enable taker callbacks for batchBuyERC1155s * CVF-17: use internal call if revertIfIncomplete is true * CVF-21: avoid duplicate SLOAD * CVF-23: merge if statements * CVF-24: Reorder status checks to be consistent with ERC721OrdersFeature * CVF-25: Update unclear comment (canonical hash -> EIP-712 hash) * CVF-31: Document keys of orderState mapping * CVF-45: DRY up fees/properties hashing * CVF-47, CVF-50, CVF-57: calculate properties.length once; hash propertyStructHashArray in-place using assembly * CVF-56: More descriptive names for assembly variables * CVF-71: Update confusing comment about rounding in _payFees * CVF-72: Move ETH assertions outside of loop in _payFees * CVF-74: Move property validation loop to else branch * CVF-82: Update inaccurate comment * CVF-86: Enable taker callbacks for batchBuyERC721s * CVF-87: use internal call if revertIfIncomplete is true * CVF-89: Perform token mismatch checks before stateful operations * CVF-90, CVF-91: Defer ERC20 token mismatch check * CVF-93: Add inline comments for _payFees parameters in matchERC721Orders * CVF-94: Fix comment (Step 7 -> Step 5) * CVF-98: Use binary & operator instead of mod * CVF-99: Update unclear comment (canonical hash -> EIP-712 hash) * CVF-65, CVF-66, CVF-67: Copy params.ethAvailable into local variable; check that ethSpent does not exceed ethAvailable; remove ethAvailable < erc20FillAmount check * CVF-52, CVF-55, CVF-59: calculate fees.length once; hash feeStructHashArray in-place using assembly * CVF-14, CVF-32: OrderState struct; separate storage mapping for 1155 cancellations so orders can be cancelled by nonce * Update changelogs, IZeroEx artifact/wrapper Co-authored-by: Lawrence Forman <lawrence@0xproject.com> Co-authored-by: Lawrence Forman <me@merklejerk.com> Co-authored-by: Kim Persson <kimpers@users.noreply.github.com>
193 lines
5.7 KiB
TypeScript
193 lines
5.7 KiB
TypeScript
export {
|
|
AwaitTransactionSuccessOpts,
|
|
ContractEvent,
|
|
ContractFunctionObj,
|
|
ContractTxFunctionObj,
|
|
EncoderOverrides,
|
|
SendTransactionOpts,
|
|
SubscriptionErrors,
|
|
} from '@0x/base-contract';
|
|
export { ContractAddresses } from '@0x/contract-addresses';
|
|
export {
|
|
DecodedLogEvent,
|
|
EventCallback,
|
|
IndexedFilterValues,
|
|
SimpleContractArtifact,
|
|
SimpleEvmBytecodeOutput,
|
|
SimpleEvmOutput,
|
|
SimpleStandardContractOutput,
|
|
} from '@0x/types';
|
|
export { AbiDecoder, AbiEncoder, DecodedCalldata, EncodingRules } from '@0x/utils';
|
|
export {
|
|
AbiDefinition,
|
|
BlockParam,
|
|
BlockParamLiteral,
|
|
BlockRange,
|
|
CallData,
|
|
CompilerOpts,
|
|
CompilerSettings,
|
|
CompilerSettingsMetadata,
|
|
ConstructorAbi,
|
|
ConstructorStateMutability,
|
|
ContractAbi,
|
|
ContractArtifact,
|
|
ContractChainData,
|
|
ContractChains,
|
|
ContractEventArg,
|
|
DataItem,
|
|
DecodedLogArgs,
|
|
DecodedLogEntry,
|
|
DecodedLogEntryEvent,
|
|
DevdocOutput,
|
|
EIP1193Event,
|
|
EIP1193Provider,
|
|
EventAbi,
|
|
EventParameter,
|
|
EvmBytecodeOutput,
|
|
EvmBytecodeOutputLinkReferences,
|
|
EvmOutput,
|
|
FallbackAbi,
|
|
FunctionAbi,
|
|
GanacheProvider,
|
|
GethCallOverrides,
|
|
JSONRPCErrorCallback,
|
|
JSONRPCRequestPayload,
|
|
JSONRPCResponseError,
|
|
JSONRPCResponsePayload,
|
|
LogEntry,
|
|
LogEntryEvent,
|
|
LogWithDecodedArgs,
|
|
MethodAbi,
|
|
OptimizerSettings,
|
|
OutputField,
|
|
ParamDescription,
|
|
RawLog,
|
|
RevertErrorAbi,
|
|
StandardContractOutput,
|
|
StateMutability,
|
|
SupportedProvider,
|
|
TupleDataItem,
|
|
TxData,
|
|
TxDataPayable,
|
|
Web3JsProvider,
|
|
Web3JsV1Provider,
|
|
Web3JsV2Provider,
|
|
Web3JsV3Provider,
|
|
ZeroExProvider,
|
|
} from 'ethereum-types';
|
|
export { ContractWrappers } from './contract_wrappers';
|
|
export { CoordinatorContract } from './generated-wrappers/coordinator';
|
|
export { DevUtilsContract } from './generated-wrappers/dev_utils';
|
|
export {
|
|
ERC20TokenApprovalEventArgs,
|
|
ERC20TokenContract,
|
|
ERC20TokenEventArgs,
|
|
ERC20TokenEvents,
|
|
ERC20TokenTransferEventArgs,
|
|
} from './generated-wrappers/erc20_token';
|
|
export {
|
|
ERC721TokenApprovalEventArgs,
|
|
ERC721TokenApprovalForAllEventArgs,
|
|
ERC721TokenContract,
|
|
ERC721TokenEventArgs,
|
|
ERC721TokenEvents,
|
|
ERC721TokenTransferEventArgs,
|
|
} from './generated-wrappers/erc721_token';
|
|
export {
|
|
ExchangeAssetProxyRegisteredEventArgs,
|
|
ExchangeCancelEventArgs,
|
|
ExchangeCancelUpToEventArgs,
|
|
ExchangeContract,
|
|
ExchangeEventArgs,
|
|
ExchangeEvents,
|
|
ExchangeFillEventArgs,
|
|
ExchangeOwnershipTransferredEventArgs,
|
|
ExchangeProtocolFeeCollectorAddressEventArgs,
|
|
ExchangeProtocolFeeMultiplierEventArgs,
|
|
ExchangeSignatureValidatorApprovalEventArgs,
|
|
ExchangeTransactionExecutionEventArgs,
|
|
} from './generated-wrappers/exchange';
|
|
export {
|
|
ForwarderContract,
|
|
ForwarderEventArgs,
|
|
ForwarderEvents,
|
|
ForwarderOwnershipTransferredEventArgs,
|
|
} from './generated-wrappers/forwarder';
|
|
export { IAssetDataContract } from './generated-wrappers/i_asset_data'; // used for synchronously encoding and decoding asset data
|
|
export {
|
|
ITransformERC20Contract,
|
|
ITransformERC20EventArgs,
|
|
ITransformERC20Events,
|
|
ITransformERC20QuoteSignerUpdatedEventArgs,
|
|
ITransformERC20TransformedERC20EventArgs,
|
|
ITransformERC20TransformerDeployerUpdatedEventArgs,
|
|
} from './generated-wrappers/i_transform_erc20';
|
|
export {
|
|
IZeroExContract,
|
|
IZeroExEventArgs,
|
|
IZeroExEvents,
|
|
IZeroExLiquidityProviderSwapEventArgs,
|
|
IZeroExMetaTransactionExecutedEventArgs,
|
|
IZeroExMigratedEventArgs,
|
|
IZeroExOwnershipTransferredEventArgs,
|
|
IZeroExProxyFunctionUpdatedEventArgs,
|
|
IZeroExQuoteSignerUpdatedEventArgs,
|
|
IZeroExTransformedERC20EventArgs,
|
|
IZeroExTransformerDeployerUpdatedEventArgs,
|
|
IZeroExLimitOrderFilledEventArgs,
|
|
IZeroExOrderCancelledEventArgs,
|
|
IZeroExOtcOrderFilledEventArgs,
|
|
IZeroExPairCancelledLimitOrdersEventArgs,
|
|
IZeroExPairCancelledRfqOrdersEventArgs,
|
|
IZeroExRfqOrderFilledEventArgs,
|
|
IZeroExRfqOrderOriginsAllowedEventArgs,
|
|
IZeroExOrderSignerRegisteredEventArgs,
|
|
IZeroExERC1155OrderCancelledEventArgs,
|
|
IZeroExERC1155OrderFilledEventArgs,
|
|
IZeroExERC1155OrderPreSignedEventArgs,
|
|
IZeroExERC721OrderCancelledEventArgs,
|
|
IZeroExERC721OrderFilledEventArgs,
|
|
IZeroExERC721OrderPreSignedEventArgs,
|
|
} from './generated-wrappers/i_zero_ex';
|
|
export {
|
|
StakingAuthorizedAddressAddedEventArgs,
|
|
StakingAuthorizedAddressRemovedEventArgs,
|
|
StakingContract,
|
|
StakingEpochEndedEventArgs,
|
|
StakingEpochFinalizedEventArgs,
|
|
StakingEventArgs,
|
|
StakingEvents,
|
|
StakingExchangeAddedEventArgs,
|
|
StakingExchangeRemovedEventArgs,
|
|
StakingMakerStakingPoolSetEventArgs,
|
|
StakingMoveStakeEventArgs,
|
|
StakingOperatorShareDecreasedEventArgs,
|
|
StakingOwnershipTransferredEventArgs,
|
|
StakingParamsSetEventArgs,
|
|
StakingRewardsPaidEventArgs,
|
|
StakingStakeEventArgs,
|
|
StakingStakingPoolCreatedEventArgs,
|
|
StakingStakingPoolEarnedRewardsInEpochEventArgs,
|
|
StakingUnstakeEventArgs,
|
|
} from './generated-wrappers/staking';
|
|
export {
|
|
StakingProxyAuthorizedAddressAddedEventArgs,
|
|
StakingProxyAuthorizedAddressRemovedEventArgs,
|
|
StakingProxyContract,
|
|
StakingProxyEventArgs,
|
|
StakingProxyEvents,
|
|
StakingProxyOwnershipTransferredEventArgs,
|
|
StakingProxyStakingContractAttachedToProxyEventArgs,
|
|
StakingProxyStakingContractDetachedFromProxyEventArgs,
|
|
} from './generated-wrappers/staking_proxy';
|
|
export {
|
|
WETH9ApprovalEventArgs,
|
|
WETH9Contract,
|
|
WETH9DepositEventArgs,
|
|
WETH9EventArgs,
|
|
WETH9Events,
|
|
WETH9TransferEventArgs,
|
|
WETH9WithdrawalEventArgs,
|
|
} from './generated-wrappers/weth9';
|
|
export { ContractError, ContractWrappersConfig, ForwarderError, OrderInfo, OrderStatus } from './types';
|