@InvokeOnHeader(Web3jConstants.ETH_GET_STORAGE_AT)
void ethGetStorageAt(Message message) throws IOException {
String address = message.getHeader(Web3jConstants.ADDRESS, configuration::getAddress, String.class);
DefaultBlockParameter atBlock = toBlockParameter(message.getHeader(Web3jConstants.AT_BLOCK, configuration::getAtBlock, Object.class));
BigInteger position = message.getHeader(Web3jConstants.POSITION, configuration::getPosition, BigInteger.class);
Request<?, EthGetStorageAt> request = web3j.ethGetStorageAt(address, position, atBlock);
setRequestId(message, request);
EthGetStorageAt response = request.send();
boolean hasError = checkForError(message, response);
if (!hasError) {
message.setBody(response.getData());
}
}