aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/2.0.0/forwarder/MixinAssets.sol
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/src/2.0.0/forwarder/MixinAssets.sol')
-rw-r--r--packages/contracts/src/2.0.0/forwarder/MixinAssets.sol12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/contracts/src/2.0.0/forwarder/MixinAssets.sol b/packages/contracts/src/2.0.0/forwarder/MixinAssets.sol
index 325af5518..cd150764e 100644
--- a/packages/contracts/src/2.0.0/forwarder/MixinAssets.sol
+++ b/packages/contracts/src/2.0.0/forwarder/MixinAssets.sol
@@ -95,7 +95,7 @@ contract MixinAssets is
if (proxyId == ERC20_DATA_ID) {
transferERC20Token(assetData, amount);
} else if (proxyId == ERC721_DATA_ID) {
- transferERC721Token(assetData);
+ transferERC721Token(assetData, amount);
} else {
revert("UNSUPPORTED_TOKEN_PROXY");
}
@@ -149,9 +149,17 @@ contract MixinAssets is
/// @dev Decodes ERC721 assetData and transfers given amount to sender.
/// @param assetData Byte array encoded for the respective asset proxy.
- function transferERC721Token(bytes memory assetData)
+ /// @param amount Amount of asset to transfer to sender.
+ function transferERC721Token(
+ bytes memory assetData,
+ uint256 amount
+ )
internal
{
+ require(
+ amount == 1,
+ "INVALID_AMOUNT"
+ );
// Decode asset data.
address token = assetData.readAddress(16);
uint256 tokenId = assetData.readUint256(36);