Skip to content

Commit

Permalink
Update func parser for arrays of fixed bytes.
Browse files Browse the repository at this point in the history
  • Loading branch information
mcdee committed Sep 7, 2023
1 parent c912325 commit 1736aee
Show file tree
Hide file tree
Showing 5 changed files with 165 additions and 73 deletions.
5 changes: 4 additions & 1 deletion util/funcparser/Tester.abi
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
[{"constant":true,"inputs":[{"name":"arg1","type":"string[]"}],"name":"testStringArray","outputs":[{"name":"","type":"string[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint256[][]"}],"name":"testUint2562DArray","outputs":[{"name":"","type":"uint256[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint256[]"}],"name":"testUint256Array","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint8[]"}],"name":"testUint8Array","outputs":[{"name":"","type":"uint8[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int256[]"}],"name":"testInt256Array","outputs":[{"name":"","type":"int256[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int32[][]"}],"name":"testInt322DArray","outputs":[{"name":"","type":"int32[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"bool[]"}],"name":"testBoolArray","outputs":[{"name":"","type":"bool[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int256"}],"name":"testInt256","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint32[][]"}],"name":"testUint322DArray","outputs":[{"name":"","type":"uint32[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int128[][]"}],"name":"testInt1282DArray","outputs":[{"name":"","type":"int128[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"bytes"}],"name":"testBytes","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"bool[][]"}],"name":"testBool2DArray","outputs":[{"name":"","type":"bool[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int32[]"}],"name":"testInt32Array","outputs":[{"name":"","type":"int32[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int256[][]"}],"name":"testInt2562DArray","outputs":[{"name":"","type":"int256[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int8[]"}],"name":"testInt8Array","outputs":[{"name":"","type":"int8[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint64"}],"name":"testUint64","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"address"}],"name":"testAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint32"}],"name":"testUint32","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint256"}],"name":"testUint256","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"bytes[][]"}],"name":"testBytes2DArray","outputs":[{"name":"","type":"bytes[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint8"}],"name":"testUint8","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint128[][]"}],"name":"testUint1282DArray","outputs":[{"name":"","type":"uint128[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int16"}],"name":"testInt16","outputs":[{"name":"","type":"int16"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint16"}],"name":"testUint16","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"string"}],"name":"testString","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int16[][]"}],"name":"testInt162DArray","outputs":[{"name":"","type":"int16[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int32"}],"name":"testInt32","outputs":[{"name":"","type":"int32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int64[][]"}],"name":"testInt642DArray","outputs":[{"name":"","type":"int64[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint16[]"}],"name":"testUint16Array","outputs":[{"name":"","type":"uint16[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"string[][]"}],"name":"testString2DArray","outputs":[{"name":"","type":"string[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint64[][]"}],"name":"testUint642DArray","outputs":[{"name":"","type":"uint64[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int64"}],"name":"testInt64","outputs":[{"name":"","type":"int64"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint128"}],"name":"testUint128","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint128[]"}],"name":"testUint128Array","outputs":[{"name":"","type":"uint128[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"address[]"}],"name":"testAddressArray","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"address[][]"}],"name":"testAddress2DArray","outputs":[{"name":"","type":"address[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"bytes[]"}],"name":"testBytesArray","outputs":[{"name":"","type":"bytes[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint32[]"}],"name":"testUint32Array","outputs":[{"name":"","type":"uint32[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int8[][]"}],"name":"testInt82DArray","outputs":[{"name":"","type":"int8[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int8"}],"name":"testInt8","outputs":[{"name":"","type":"int8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int16[]"}],"name":"testInt16Array","outputs":[{"name":"","type":"int16[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint64[]"}],"name":"testUint64Array","outputs":[{"name":"","type":"uint64[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int128"}],"name":"testInt128","outputs":[{"name":"","type":"int128"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int128[]"}],"name":"testInt128Array","outputs":[{"name":"","type":"int128[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint16[][]"}],"name":"testUint162DArray","outputs":[{"name":"","type":"uint16[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"uint8[][]"}],"name":"testUint82DArray","outputs":[{"name":"","type":"uint8[][]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"bool"}],"name":"testBool","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"arg1","type":"int64[]"}],"name":"testInt64Array","outputs":[{"name":"","type":"int64[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"test","outputs":[],"payable":false,"stateMutability":"pure","type":"function"}]

======= Tester.sol:Tester =======
Contract JSON ABI
[{"inputs":[],"name":"test","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"arg1","type":"address"}],"name":"testAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[][]","name":"arg1","type":"address[][]"}],"name":"testAddress2DArray","outputs":[{"internalType":"address[][]","name":"","type":"address[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"arg1","type":"address[]"}],"name":"testAddressArray","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"arg1","type":"bool"}],"name":"testBool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[][]","name":"arg1","type":"bool[][]"}],"name":"testBool2DArray","outputs":[{"internalType":"bool[][]","name":"","type":"bool[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool[]","name":"arg1","type":"bool[]"}],"name":"testBoolArray","outputs":[{"internalType":"bool[]","name":"","type":"bool[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"arg1","type":"bytes"}],"name":"testBytes","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[][]","name":"arg1","type":"bytes[][]"}],"name":"testBytes2DArray","outputs":[{"internalType":"bytes[][]","name":"","type":"bytes[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"arg1","type":"bytes[]"}],"name":"testBytesArray","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int128","name":"arg1","type":"int128"}],"name":"testInt128","outputs":[{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int128[][]","name":"arg1","type":"int128[][]"}],"name":"testInt1282DArray","outputs":[{"internalType":"int128[][]","name":"","type":"int128[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int128[]","name":"arg1","type":"int128[]"}],"name":"testInt128Array","outputs":[{"internalType":"int128[]","name":"","type":"int128[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int16","name":"arg1","type":"int16"}],"name":"testInt16","outputs":[{"internalType":"int16","name":"","type":"int16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int16[][]","name":"arg1","type":"int16[][]"}],"name":"testInt162DArray","outputs":[{"internalType":"int16[][]","name":"","type":"int16[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int16[]","name":"arg1","type":"int16[]"}],"name":"testInt16Array","outputs":[{"internalType":"int16[]","name":"","type":"int16[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256","name":"arg1","type":"int256"}],"name":"testInt256","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[][]","name":"arg1","type":"int256[][]"}],"name":"testInt2562DArray","outputs":[{"internalType":"int256[][]","name":"","type":"int256[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int256[]","name":"arg1","type":"int256[]"}],"name":"testInt256Array","outputs":[{"internalType":"int256[]","name":"","type":"int256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int32","name":"arg1","type":"int32"}],"name":"testInt32","outputs":[{"internalType":"int32","name":"","type":"int32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int32[][]","name":"arg1","type":"int32[][]"}],"name":"testInt322DArray","outputs":[{"internalType":"int32[][]","name":"","type":"int32[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int32[]","name":"arg1","type":"int32[]"}],"name":"testInt32Array","outputs":[{"internalType":"int32[]","name":"","type":"int32[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int64","name":"arg1","type":"int64"}],"name":"testInt64","outputs":[{"internalType":"int64","name":"","type":"int64"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int64[][]","name":"arg1","type":"int64[][]"}],"name":"testInt642DArray","outputs":[{"internalType":"int64[][]","name":"","type":"int64[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int64[]","name":"arg1","type":"int64[]"}],"name":"testInt64Array","outputs":[{"internalType":"int64[]","name":"","type":"int64[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int8","name":"arg1","type":"int8"}],"name":"testInt8","outputs":[{"internalType":"int8","name":"","type":"int8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int8[][]","name":"arg1","type":"int8[][]"}],"name":"testInt82DArray","outputs":[{"internalType":"int8[][]","name":"","type":"int8[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int8[]","name":"arg1","type":"int8[]"}],"name":"testInt8Array","outputs":[{"internalType":"int8[]","name":"","type":"int8[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"arg1","type":"string"}],"name":"testString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[][]","name":"arg1","type":"string[][]"}],"name":"testString2DArray","outputs":[{"internalType":"string[][]","name":"","type":"string[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"arg1","type":"string[]"}],"name":"testStringArray","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"field1","type":"uint32"},{"internalType":"uint64","name":"field2","type":"uint64"},{"internalType":"bool","name":"field3","type":"bool"}],"internalType":"struct Tester.TestTuple","name":"arg1","type":"tuple"}],"name":"testTuple","outputs":[{"components":[{"internalType":"uint32","name":"field1","type":"uint32"},{"internalType":"uint64","name":"field2","type":"uint64"},{"internalType":"bool","name":"field3","type":"bool"}],"internalType":"struct Tester.TestTuple","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint128","name":"arg1","type":"uint128"}],"name":"testUint128","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint128[][]","name":"arg1","type":"uint128[][]"}],"name":"testUint1282DArray","outputs":[{"internalType":"uint128[][]","name":"","type":"uint128[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint128[]","name":"arg1","type":"uint128[]"}],"name":"testUint128Array","outputs":[{"internalType":"uint128[]","name":"","type":"uint128[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16","name":"arg1","type":"uint16"}],"name":"testUint16","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16[][]","name":"arg1","type":"uint16[][]"}],"name":"testUint162DArray","outputs":[{"internalType":"uint16[][]","name":"","type":"uint16[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"arg1","type":"uint16[]"}],"name":"testUint16Array","outputs":[{"internalType":"uint16[]","name":"","type":"uint16[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"arg1","type":"uint256"}],"name":"testUint256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[][]","name":"arg1","type":"uint256[][]"}],"name":"testUint2562DArray","outputs":[{"internalType":"uint256[][]","name":"","type":"uint256[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"arg1","type":"uint256[]"}],"name":"testUint256Array","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint32","name":"arg1","type":"uint32"}],"name":"testUint32","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint32[][]","name":"arg1","type":"uint32[][]"}],"name":"testUint322DArray","outputs":[{"internalType":"uint32[][]","name":"","type":"uint32[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"arg1","type":"uint32[]"}],"name":"testUint32Array","outputs":[{"internalType":"uint32[]","name":"","type":"uint32[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint64","name":"arg1","type":"uint64"}],"name":"testUint64","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint64[][]","name":"arg1","type":"uint64[][]"}],"name":"testUint642DArray","outputs":[{"internalType":"uint64[][]","name":"","type":"uint64[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint64[]","name":"arg1","type":"uint64[]"}],"name":"testUint64Array","outputs":[{"internalType":"uint64[]","name":"","type":"uint64[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"arg1","type":"uint8"}],"name":"testUint8","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8[][]","name":"arg1","type":"uint8[][]"}],"name":"testUint82DArray","outputs":[{"internalType":"uint8[][]","name":"","type":"uint8[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8[]","name":"arg1","type":"uint8[]"}],"name":"testUint8Array","outputs":[{"internalType":"uint8[]","name":"","type":"uint8[]"}],"stateMutability":"pure","type":"function"}]
2 changes: 1 addition & 1 deletion util/funcparser/Tester.json

Large diffs are not rendered by default.

12 changes: 11 additions & 1 deletion util/funcparser/Tester.sol
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pragma solidity ^0.5.0;
pragma solidity ^0.8.20;
pragma experimental ABIEncoderV2;

contract Tester {
Expand Down Expand Up @@ -195,4 +195,14 @@ contract Tester {
function testBytes2DArray(bytes[][] memory arg1) public pure returns (bytes[][] memory) {
return arg1;
}

struct TestTuple {
uint32 field1;
uint64 field2;
bool field3;
}

function testTuple(TestTuple memory arg1) public pure returns (TestTuple memory) {
return arg1;
}
}
Loading

0 comments on commit 1736aee

Please sign in to comment.