(Object path, Object... optionalArgs)
| 8382 | } |
| 8383 | |
| 8384 | public Object sign(Object path, Object... optionalArgs) |
| 8385 | { |
| 8386 | Object api = Helpers.getArg(optionalArgs, 0, "public"); |
| 8387 | Object method = Helpers.getArg(optionalArgs, 1, "GET"); |
| 8388 | Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}}); |
| 8389 | Object headers = Helpers.getArg(optionalArgs, 3, null); |
| 8390 | Object body = Helpers.getArg(optionalArgs, 4, null); |
| 8391 | Object url = "/"; |
| 8392 | Object isArrayParams = Helpers.isArray(parameters); |
| 8393 | Object query = null; |
| 8394 | if (Helpers.isTrue(isArrayParams)) |
| 8395 | { |
| 8396 | query = new java.util.HashMap<String, Object>() {{}}; |
| 8397 | } else |
| 8398 | { |
| 8399 | query = this.omit(parameters, this.extractParams(path)); |
| 8400 | } |
| 8401 | if (Helpers.isTrue((api instanceof String))) |
| 8402 | { |
| 8403 | // signing implementation for the old endpoints |
| 8404 | if (Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(api, "public"))) || Helpers.isTrue((Helpers.isEqual(api, "private"))))) |
| 8405 | { |
| 8406 | url = Helpers.add(url, this.version); |
| 8407 | } else if (Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(api, "v2Public"))) || Helpers.isTrue((Helpers.isEqual(api, "v2Private"))))) |
| 8408 | { |
| 8409 | url = Helpers.add(url, "v2"); |
| 8410 | } |
| 8411 | url = Helpers.add(url, Helpers.add("/", this.implodeParams(path, parameters))); |
| 8412 | if (Helpers.isTrue(Helpers.isTrue(Helpers.isEqual(api, "private")) || Helpers.isTrue(Helpers.isEqual(api, "v2Private")))) |
| 8413 | { |
| 8414 | this.checkRequiredCredentials(); |
| 8415 | Object timestamp = this.ymdhms(this.nonce(), "T"); |
| 8416 | Object request = new java.util.HashMap<String, Object>() {{ |
| 8417 | put( "SignatureMethod", "HmacSHA256" ); |
| 8418 | put( "SignatureVersion", "2" ); |
| 8419 | put( "AccessKeyId", HtxCore.this.apiKey ); |
| 8420 | put( "Timestamp", timestamp ); |
| 8421 | }}; |
| 8422 | if (Helpers.isTrue(!Helpers.isEqual(method, "POST"))) |
| 8423 | { |
| 8424 | request = this.extend(request, query); |
| 8425 | } |
| 8426 | Object sortedRequest = this.keysort(request); |
| 8427 | Object auth = this.urlencode(sortedRequest, true); // true is a go only requirment |
| 8428 | // unfortunately, PHP demands double quotes for the escaped newline symbol |
| 8429 | Object content = new java.util.ArrayList<Object>(java.util.Arrays.asList(method, this.hostname, url, auth)); |
| 8430 | Object payload = String.join((String)"\n", (java.util.List<String>)content); // eslint-disable-line quotes |
| 8431 | Object signature = this.hmac(this.encode(payload), this.encode(this.secret), sha256(), "base64"); |
| 8432 | auth = Helpers.add(auth, Helpers.add("&", this.urlencode(new java.util.HashMap<String, Object>() {{ |
| 8433 | put( "Signature", signature ); |
| 8434 | }}))); |
| 8435 | url = Helpers.add(url, Helpers.add("?", auth)); |
| 8436 | if (Helpers.isTrue(Helpers.isEqual(method, "POST"))) |
| 8437 | { |
| 8438 | Object bodyRequest = null; |
| 8439 | if (Helpers.isTrue(isArrayParams)) |
| 8440 | { |
| 8441 | bodyRequest = parameters; |
nothing calls this directly
no test coverage detected