diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol | 4 | ||||
-rw-r--r-- | packages/contracts/src/contracts/current/protocol/AssetProxy/MixinAuthorizable.sol | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol b/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol index cb9c8c86c..7dcd2087b 100644 --- a/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol +++ b/packages/contracts/src/contracts/current/protocol/AssetProxy/ERC20Proxy.sol @@ -55,8 +55,6 @@ contract ERC20Proxy is ) external { - bool auth = authorized[msg.sender]; - // `transferFrom`. // The function is marked `external`, so no abi decodeding is done for // us. Instead, we expect the `calldata` memory to contain the @@ -104,7 +102,7 @@ contract ERC20Proxy is // | | 68 | | 3. amount | assembly { - if iszero(auth) { + if iszero(sload(caller)) { // Revert with `Error("SENDER_NOT_AUTHORIZED")` mstore(0, 0x08c379a000000000000000000000000000000000000000000000000000000000) mstore(32, 0x0000002000000000000000000000000000000000000000000000000000000000) diff --git a/packages/contracts/src/contracts/current/protocol/AssetProxy/MixinAuthorizable.sol b/packages/contracts/src/contracts/current/protocol/AssetProxy/MixinAuthorizable.sol index 3b9584a44..9aa8697ba 100644 --- a/packages/contracts/src/contracts/current/protocol/AssetProxy/MixinAuthorizable.sol +++ b/packages/contracts/src/contracts/current/protocol/AssetProxy/MixinAuthorizable.sol @@ -49,6 +49,10 @@ contract MixinAuthorizable is !authorized[target], "TARGET_ALREADY_AUTHORIZED" ); + + assembly { + sstore(target, 1) + } authorized[target] = true; authorities.push(target); |