MCPcopy
hub / github.com/thrasher-corp/gocryptotrader / GetOrder

Method GetOrder

engine/rpcserver.go:1078–1154  ·  view source on GitHub ↗

GetOrder returns order information based on exchange and order ID

(ctx context.Context, r *gctrpc.GetOrderRequest)

Source from the content-addressed store, hash-verified

1076
1077// GetOrder returns order information based on exchange and order ID
1078func (s *RPCServer) GetOrder(ctx context.Context, r *gctrpc.GetOrderRequest) (*gctrpc.OrderDetails, error) {
1079 if r == nil {
1080 return nil, errInvalidArguments
1081 }
1082
1083 if r.Pair == nil {
1084 return nil, errCurrencyPairUnset
1085 }
1086
1087 a, err := asset.New(r.Asset)
1088 if err != nil {
1089 return nil, err
1090 }
1091
1092 exch, err := s.GetExchangeByName(r.Exchange)
1093 if err != nil {
1094 return nil, err
1095 }
1096
1097 pair := currency.NewPairWithDelimiter(r.Pair.Base, r.Pair.Quote, r.Pair.Delimiter)
1098
1099 err = checkParams(r.Exchange, exch, a, pair)
1100 if err != nil {
1101 return nil, err
1102 }
1103
1104 result, err := s.OrderManager.GetOrderInfo(ctx,
1105 r.Exchange,
1106 r.OrderId,
1107 pair,
1108 a)
1109 if err != nil {
1110 return nil, fmt.Errorf("error whilst trying to retrieve info for order %s: %w", r.OrderId, err)
1111 }
1112 trades := make([]*gctrpc.TradeHistory, len(result.Trades))
1113 for i := range result.Trades {
1114 trades[i] = &gctrpc.TradeHistory{
1115 CreationTime: s.unixTimestamp(result.Trades[i].Timestamp),
1116 Id: result.Trades[i].TID,
1117 Price: result.Trades[i].Price,
1118 Amount: result.Trades[i].Amount,
1119 Exchange: result.Trades[i].Exchange,
1120 AssetType: result.Trades[i].Type.String(),
1121 OrderSide: result.Trades[i].Side.String(),
1122 Fee: result.Trades[i].Fee,
1123 Total: result.Trades[i].Total,
1124 }
1125 }
1126
1127 var creationTime, updateTime string
1128 if !result.Date.IsZero() {
1129 creationTime = result.Date.Format(common.SimpleTimeFormatWithTimezone)
1130 }
1131 if !result.LastUpdated.IsZero() {
1132 updateTime = result.LastUpdated.Format(common.SimpleTimeFormatWithTimezone)
1133 }
1134
1135 return &gctrpc.OrderDetails{

Callers 1

TestGetOrderFunction · 0.95

Calls 8

unixTimestampMethod · 0.95
NewFunction · 0.92
NewPairWithDelimiterFunction · 0.92
checkParamsFunction · 0.85
GetExchangeByNameMethod · 0.65
GetOrderInfoMethod · 0.65
StringMethod · 0.65
FormatMethod · 0.45

Tested by 1

TestGetOrderFunction · 0.76