package max import "github.com/google/uuid" // BBGO is a broker on MAX const spotBrokerID = "bbgo" func NewClientOrderID(originalID string, tags ...string) (clientOrderID string) { prefix := "x-" + spotBrokerID + "-" for _, tag := range tags { prefix += tag + "-" } prefixLen := len(prefix) if originalID != "" { // try to keep the whole original client order ID if user specifies it. if prefixLen+len(originalID) > 32 { return originalID } clientOrderID = prefix + originalID return clientOrderID } clientOrderID = uuid.New().String() clientOrderID = prefix + clientOrderID if len(clientOrderID) > 32 { return clientOrderID[0:32] } return clientOrderID }