public long cost(final MessageFrame frame, final boolean accountIsWarm) {
    final long stipend = gas(frame);
    final long inputDataOffset = inputDataOffset(frame);
    final long inputDataLength = inputDataLength(frame);
    final long outputDataOffset = outputDataOffset(frame);
    final long outputDataLength = outputDataLength(frame);
    final Account recipient = frame.getWorldUpdater().get(address(frame));
    final Address to = to(frame);
    GasCalculator gasCalculator = gasCalculator();

    return gasCalculator.callOperationGasCost(
        frame,
        stipend,
        inputDataOffset,
        inputDataLength,
        outputDataOffset,
        outputDataLength,
        value(frame),
        recipient,
        to,
        accountIsWarm);
  }
Calculates Cost.

@param frame the frame
@param accountIsWarm whether the contract being called is "warm" as per EIP-2929.
@return the long
evm/src/main/java/org/hyperledger/besu/evm/operation/AbstractCallOperation.java