(Object path, Object... optionalArgs)
| 5215 | } |
| 5216 | |
| 5217 | public Object sign(Object path, Object... optionalArgs) |
| 5218 | { |
| 5219 | Object api = Helpers.getArg(optionalArgs, 0, "public"); |
| 5220 | Object method = Helpers.getArg(optionalArgs, 1, "GET"); |
| 5221 | Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}}); |
| 5222 | Object headers = Helpers.getArg(optionalArgs, 3, null); |
| 5223 | Object body = Helpers.getArg(optionalArgs, 4, null); |
| 5224 | Object query = this.omit(parameters, this.extractParams(path)); |
| 5225 | Object requestPath = Helpers.add("/", this.implodeParams(path, parameters)); |
| 5226 | Object url = requestPath; |
| 5227 | Object queryString = ""; |
| 5228 | if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(method, "GET"))) || Helpers.isTrue((Helpers.isEqual(method, "DELETE")))) || Helpers.isTrue((Helpers.isEqual(method, "PUT")))) || Helpers.isTrue((Helpers.isEqual(url, "/positions/assign"))))) |
| 5229 | { |
| 5230 | if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(query)))) |
| 5231 | { |
| 5232 | queryString = this.urlencodeWithArrayRepeat(query); |
| 5233 | url = Helpers.add(url, Helpers.add("?", queryString)); |
| 5234 | } |
| 5235 | } |
| 5236 | if (Helpers.isTrue(Helpers.isEqual(api, "private"))) |
| 5237 | { |
| 5238 | this.checkRequiredCredentials(); |
| 5239 | Object timestamp = this.seconds(); |
| 5240 | Object xPhemexRequestExpiry = this.safeInteger(this.options, "x-phemex-request-expiry", 60); |
| 5241 | Object expiry = this.sum(timestamp, xPhemexRequestExpiry); |
| 5242 | Object expiryString = String.valueOf(expiry); |
| 5243 | headers = new java.util.HashMap<String, Object>() {{ |
| 5244 | put( "x-phemex-access-token", PhemexCore.this.apiKey ); |
| 5245 | put( "x-phemex-request-expiry", expiryString ); |
| 5246 | }}; |
| 5247 | Object payload = ""; |
| 5248 | if (Helpers.isTrue(Helpers.isEqual(method, "POST"))) |
| 5249 | { |
| 5250 | Object isOrderPlacement = Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(path, "g-orders"))) || Helpers.isTrue((Helpers.isEqual(path, "spot/orders")))) || Helpers.isTrue((Helpers.isEqual(path, "orders"))); |
| 5251 | if (Helpers.isTrue(isOrderPlacement)) |
| 5252 | { |
| 5253 | if (Helpers.isTrue(Helpers.isEqual(this.safeString(parameters, "clOrdID"), null))) |
| 5254 | { |
| 5255 | Object id = this.safeString(this.options, "brokerId", "CCXT123456"); |
| 5256 | Helpers.addElementToObject(parameters, "clOrdID", Helpers.add(id, this.uuid16())); |
| 5257 | } |
| 5258 | } |
| 5259 | payload = this.json(parameters); |
| 5260 | body = payload; |
| 5261 | Helpers.addElementToObject(headers, "Content-Type", "application/json"); |
| 5262 | } |
| 5263 | Object auth = Helpers.add(Helpers.add(Helpers.add(requestPath, queryString), expiryString), payload); |
| 5264 | Helpers.addElementToObject(headers, "x-phemex-request-signature", this.hmac(this.encode(auth), this.encode(this.secret), sha256())); |
| 5265 | } |
| 5266 | url = Helpers.add(this.implodeHostname(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), api)), url); |
| 5267 | final Object finalUrl = url; |
| 5268 | final Object finalMethod = method; |
| 5269 | final Object finalBody = body; |
| 5270 | final Object finalHeaders = headers; |
| 5271 | return new java.util.HashMap<String, Object>() {{ |
| 5272 | put( "url", finalUrl ); |
| 5273 | put( "method", finalMethod ); |
| 5274 | put( "body", finalBody ); |
nothing calls this directly
no test coverage detected