diff options
author | Amir Bandeali <abandeali1@gmail.com> | 2018-07-11 06:41:33 +0800 |
---|---|---|
committer | Amir Bandeali <abandeali1@gmail.com> | 2018-07-23 23:00:23 +0800 |
commit | 6fb157488cf337a1b3c96fc4a9b04d81098bd27d (patch) | |
tree | 4d0eae30f24e1dea0a90d0971a3e60a1e3e287bb /packages/contracts/src/2.0.0/forwarder/MixinAssets.sol | |
parent | 814518dd8094d03908d77e39faa21b8758f1552b (diff) | |
download | dexon-sol-tools-6fb157488cf337a1b3c96fc4a9b04d81098bd27d.tar dexon-sol-tools-6fb157488cf337a1b3c96fc4a9b04d81098bd27d.tar.gz dexon-sol-tools-6fb157488cf337a1b3c96fc4a9b04d81098bd27d.tar.bz2 dexon-sol-tools-6fb157488cf337a1b3c96fc4a9b04d81098bd27d.tar.lz dexon-sol-tools-6fb157488cf337a1b3c96fc4a9b04d81098bd27d.tar.xz dexon-sol-tools-6fb157488cf337a1b3c96fc4a9b04d81098bd27d.tar.zst dexon-sol-tools-6fb157488cf337a1b3c96fc4a9b04d81098bd27d.zip |
Update transferEthFeeAndRefund, add check to ERC721 transfer
Diffstat (limited to 'packages/contracts/src/2.0.0/forwarder/MixinAssets.sol')
-rw-r--r-- | packages/contracts/src/2.0.0/forwarder/MixinAssets.sol | 12 |
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); |