From 45aacf122fbfe98229562106b8555ecc6eba86cf Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Mon, 17 Jun 2019 12:22:06 -0700 Subject: [PATCH] Fix StaticCallProxy comment and add sanity checks to TestStaticCallTarget --- .../asset-proxy/contracts/src/StaticCallProxy.sol | 2 +- .../contracts/test/TestStaticCallTarget.sol | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/contracts/asset-proxy/contracts/src/StaticCallProxy.sol b/contracts/asset-proxy/contracts/src/StaticCallProxy.sol index 577fcdc03b..c65ef60a37 100644 --- a/contracts/asset-proxy/contracts/src/StaticCallProxy.sol +++ b/contracts/asset-proxy/contracts/src/StaticCallProxy.sol @@ -174,7 +174,7 @@ contract StaticCallProxy { // + 32 (assetData len) // + 4 (proxyId) // + 32 (callTarget) - // + 32 (assetDataOffset) + // + 32 (staticCallDataOffset) let expectedResultHash := calldataload(add(assetDataOffset, 100)) if sub(callResultHash, expectedResultHash) { diff --git a/contracts/asset-proxy/contracts/test/TestStaticCallTarget.sol b/contracts/asset-proxy/contracts/test/TestStaticCallTarget.sol index 4179d148b1..a5bf3da795 100644 --- a/contracts/asset-proxy/contracts/test/TestStaticCallTarget.sol +++ b/contracts/asset-proxy/contracts/test/TestStaticCallTarget.sol @@ -18,9 +18,13 @@ pragma solidity ^0.5.5; +import "@0x/contracts-utils/contracts/src/LibBytes.sol"; + contract TestStaticCallTarget { + using LibBytes for bytes; + uint256 internal _state; function updateState() @@ -51,12 +55,17 @@ contract TestStaticCallTarget { function noInputFunction() external pure - {} + { + assert(msg.data.length == 4 && msg.data.readBytes4(0) == bytes4(keccak256("noInputFunction()"))); + } function dynamicInputFunction(bytes calldata a) external pure - {} + { + bytes memory abiEncodedData = abi.encodeWithSignature("dynamicInputFunction(bytes)", a); + assert(msg.data.equals(abiEncodedData)); + } function returnComplexType(uint256 a, uint256 b) external