getPlugArrayHash
Encode an array of Plugs into a hash and verify the decoded Plug data from a hash to verify type compliance.
Parameters
$input
: Plug[] : ThePlug[]
data to encode.
Returns
$typeHash
:bytes32
: The hash of the encoded Plug array data.
Onchain Implementation
With getPlugArrayHash
you can call the function as a read
and get the built hash back.
This is helpful in times when you need to build a message hash without tracking down all the types as well as when you need to verify a signed message hash containing a Plug[]
data type.
solidity
function getPlugArrayHash(
TypesLib.Plug[] memory $input
) public pure virtual returns (bytes32 $typeHash) {
/// @dev Load the stack.
bytes memory encoded;
uint256 i;
uint256 length = $input.length;
/// @dev Encode each item in the array.
for (i; i < length; i++) {
encoded = bytes.concat(
encoded,
getPlugHash($input[i])
);
}
/// @dev Hash the encoded array.
$typeHash = keccak256(encoded);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19