aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/contracts/current/protocol/Exchange/MixinAssetProxyDispatcher.sol
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/src/contracts/current/protocol/Exchange/MixinAssetProxyDispatcher.sol')
-rw-r--r--packages/contracts/src/contracts/current/protocol/Exchange/MixinAssetProxyDispatcher.sol12
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/contracts/src/contracts/current/protocol/Exchange/MixinAssetProxyDispatcher.sol b/packages/contracts/src/contracts/current/protocol/Exchange/MixinAssetProxyDispatcher.sol
index 3b38d1f37..d996f933c 100644
--- a/packages/contracts/src/contracts/current/protocol/Exchange/MixinAssetProxyDispatcher.sol
+++ b/packages/contracts/src/contracts/current/protocol/Exchange/MixinAssetProxyDispatcher.sol
@@ -39,7 +39,8 @@ contract MixinAssetProxyDispatcher is
function registerAssetProxy(
uint8 assetProxyId,
address newAssetProxy,
- address oldAssetProxy)
+ address oldAssetProxy
+ )
external
onlyOwner
{
@@ -86,17 +87,20 @@ contract MixinAssetProxyDispatcher is
bytes memory assetMetadata,
address from,
address to,
- uint256 amount)
+ uint256 amount
+ )
internal
{
// Do nothing if no amount should be transferred.
if (amount > 0) {
+
// Lookup asset proxy
+ uint256 length = assetMetadata.length;
require(
- assetMetadata.length >= 1,
+ length > 0,
GT_ZERO_LENGTH_REQUIRED
);
- uint8 assetProxyId = uint8(assetMetadata[0]);
+ uint8 assetProxyId = uint8(assetMetadata[length - 1]);
IAssetProxy assetProxy = assetProxies[assetProxyId];
// transferFrom will either succeed or throw.