MCPcopy Index your code
hub / github.com/ccxt/ccxt / sign

Method sign

java/lib/src/main/java/io/github/ccxt/exchanges/PhemexCore.java:5217–5277  ·  view source on GitHub ↗
(Object path, Object... optionalArgs)

Source from the content-addressed store, hash-verified

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 );

Callers

nothing calls this directly

Calls 15

getArgMethod · 0.95
addMethod · 0.95
isTrueMethod · 0.95
isEqualMethod · 0.95
getArrayLengthMethod · 0.95
objectKeysMethod · 0.95
addElementToObjectMethod · 0.95
GetValueMethod · 0.95
omitMethod · 0.45
extractParamsMethod · 0.45
implodeParamsMethod · 0.45

Tested by

no test coverage detected