Fix StaticCallProxy comment and add sanity checks to TestStaticCallTarget

This commit is contained in:
Amir Bandeali 2019-06-17 12:22:06 -07:00
parent 5dcf7919fc
commit 45aacf122f
2 changed files with 12 additions and 3 deletions

View File

@ -174,7 +174,7 @@ contract StaticCallProxy {
// + 32 (assetData len) // + 32 (assetData len)
// + 4 (proxyId) // + 4 (proxyId)
// + 32 (callTarget) // + 32 (callTarget)
// + 32 (assetDataOffset) // + 32 (staticCallDataOffset)
let expectedResultHash := calldataload(add(assetDataOffset, 100)) let expectedResultHash := calldataload(add(assetDataOffset, 100))
if sub(callResultHash, expectedResultHash) { if sub(callResultHash, expectedResultHash) {

View File

@ -18,9 +18,13 @@
pragma solidity ^0.5.5; pragma solidity ^0.5.5;
import "@0x/contracts-utils/contracts/src/LibBytes.sol";
contract TestStaticCallTarget { contract TestStaticCallTarget {
using LibBytes for bytes;
uint256 internal _state; uint256 internal _state;
function updateState() function updateState()
@ -51,12 +55,17 @@ contract TestStaticCallTarget {
function noInputFunction() function noInputFunction()
external external
pure pure
{} {
assert(msg.data.length == 4 && msg.data.readBytes4(0) == bytes4(keccak256("noInputFunction()")));
}
function dynamicInputFunction(bytes calldata a) function dynamicInputFunction(bytes calldata a)
external external
pure pure
{} {
bytes memory abiEncodedData = abi.encodeWithSignature("dynamicInputFunction(bytes)", a);
assert(msg.data.equals(abiEncodedData));
}
function returnComplexType(uint256 a, uint256 b) function returnComplexType(uint256 a, uint256 b)
external external