func()

in accumulator/invocation.go [66:89]


func (inc *Invocation) MaybeCreateProxyTxn(status string, endTime time.Time) ([]byte, error) {
	if !inc.NeedProxyTransaction() {
		return nil, nil
	}
	txn, err := sjson.SetBytes(inc.AgentPayload, "transaction.result", status)
	if err != nil {
		return nil, err
	}
	// Transaction duration cannot be known in partial transaction payload. Estimate
	// the duration based on the time provided. Time can be based on the runtimeDone
	// log record or function deadline.
	duration := endTime.Sub(inc.Timestamp)
	txn, err = sjson.SetBytes(txn, "transaction.duration", duration.Milliseconds())
	if err != nil {
		return nil, err
	}
	if status != "success" {
		txn, err = sjson.SetBytes(txn, "transaction.outcome", "failure")
		if err != nil {
			return nil, err
		}
	}
	return txn, nil
}