syntax = "proto3";

package proto;

option java_package = "com.hederahashgraph.api.proto.java";
option java_multiple_files = true;

import "BasicTypes.proto";

/* Call a function of the given smart contract instance, giving it functionParameters as its inputs. it can use the given amount of gas, and any unspent gas will be refunded to the paying account.
 *
 * If this function stores information, it is charged gas to store it. There is a fee in hbars to maintain that storage until the expiration time, and that fee is added as part of the transaction fee.*/
message ContractCallTransactionBody {
    ContractID contractID = 1; // the contract instance to call, in the format used in transactions
    int64 gas = 2; // the maximum amount of gas to use for the call
    int64 amount = 3; // number of tinybars sent (the function must be payable if this is nonzero)
    bytes functionParameters = 4; // which function to call, and the parameters to pass to the function
}
