You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When calling a python script to retrieve abi information and return that information to echidna tests, special characters(like \n) are not being stripped and cause data conversion issues. This python script is being used with Foundry tests with no issues because Foundry strips the special characters to keep this from happening.
I think it should have more parity with Foundry test ffi or give more descriptive output.
solidity function that calls script: '
/**
* @dev deploy a facet and return its address
*/
function _deployFacetAndGetSelectors(bytes memory _bytecode, string memory _facetName) internal returns (address _facetAddress, bytes4[] memory _selectors) {
// deploy the facet
assembly {
_facetAddress := create(0, add(_bytecode, 0x20), mload(_bytecode))
}
string[] inputs = ["python3", "script/python/get_selectors.py", ""];
// Get the facet selectors.
inputs[2] = _facetName;
bytes memory res = vm.ffi(inputs);
_selectors = abi.decode(res, (bytes4[]));
return (_facetAddress, _selectors);
}
'
Version:
Echidna 2.2.1
Slither 0.9.1
Relevant log output:
echidna: Internal error: invalid hex bytestring "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000027240f9af0000000000000000000000000000000000000000000000000000000054fd4d5000000000000000000000000000000000000000000000000000000000\n" -- CallStack (from HasCallStack):
internalError, called at src/EVM/Format.hs:602:10 in hevm-0.51.3-AoN9URJtMgjJhononiOAyj:EVM.Format
CallStack (from HasCallStack):
error, called at src/EVM/Types.hs:1273:19 in hevm-0.51.3-AoN9URJtMgjJhononiOAyj:EVM.Types
internalError, called at src/EVM/Format.hs:602:10 in hevm-0.51.3-AoN9URJtMgjJhononiOAyj:EVM.Format
The text was updated successfully, but these errors were encountered:
Describe the issue:
When calling a python script to retrieve abi information and return that information to echidna tests, special characters(like \n) are not being stripped and cause data conversion issues. This python script is being used with Foundry tests with no issues because Foundry strips the special characters to keep this from happening.
I think it should have more parity with Foundry test ffi or give more descriptive output.
Code example to reproduce the issue:
python script '
import subprocess
import argparse
import json
from eth_abi import encode
def get_selectors(args):
contract = args.contract
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("contract", type=str)
return parser.parse_args()
def main():
args = parse_args()
get_selectors(args)
if name == "main":
main()
'
solidity function that calls script: '
/**
* @dev deploy a facet and return its address
*/
function _deployFacetAndGetSelectors(bytes memory _bytecode, string memory _facetName) internal returns (address _facetAddress, bytes4[] memory _selectors) {
// deploy the facet
assembly {
_facetAddress := create(0, add(_bytecode, 0x20), mload(_bytecode))
}
string[] inputs = ["python3", "script/python/get_selectors.py", ""];
// Get the facet selectors.
inputs[2] = _facetName;
bytes memory res = vm.ffi(inputs);
_selectors = abi.decode(res, (bytes4[]));
return (_facetAddress, _selectors);
}
'
Version:
Echidna 2.2.1
Slither 0.9.1
Relevant log output:
The text was updated successfully, but these errors were encountered: