aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol')
-rw-r--r--packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol10
1 files changed, 6 insertions, 4 deletions
diff --git a/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol b/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol
index ee0c66fdc..7c25c9770 100644
--- a/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol
+++ b/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol
@@ -47,21 +47,23 @@ contract ERC20Proxy is
bytes memory assetMetadata,
address from,
address to,
- uint256 amount)
+ uint256 amount
+ )
internal
{
// Data must be intended for this proxy.
+ uint256 length = assetMetadata.length;
require(
- uint8(assetMetadata[0]) == PROXY_ID,
+ uint8(assetMetadata[length - 1]) == PROXY_ID,
PROXY_ID_MISMATCH
);
// Decode metadata.
require(
- assetMetadata.length == 21,
+ length == 21,
INVALID_METADATA_LENGTH
);
- address token = readAddress(assetMetadata, 1);
+ address token = readAddress(assetMetadata, 0);
// Transfer tokens.
bool success = IERC20Token(token).transferFrom(from, to, amount);