code: function estimateContractGas(payload) {
    const {
      props,
      contractInstance,
    } = payload
  
    const {
      args,
      from,
      method,
    } = props
  
    // Extend contract method args. Add transaction object as last argument
    const transactionObject = { from }
    args.push(transactionObject)
  
    return txUtils.estimateContractGas(contractInstance[method], args)
  }
docs: @async
  @function estimateContractGas
  
  @description Gets estimate gas for the contract transaction
  Only one of the two params ({privateKey} or {from}) is required
  {privateKey} has higher priority
  
  @param {object} payload - Payload object
  @param {object} payload.props - API function properties
  @param {string} payload.props.method - Contract method name
  @param {array} payload.props.args - Contract method arguments
  @param {string} payload.props.privateKey - Private key (64 hex symbols, without '0x' prefix)
  @param {string} payload.props.from - Address from (42 hex symbols, with '0x' prefix)
  @param {object} payload.contractInstance - Contract instance
  
  @returns Promise (@see getContractGasLimit)