(Object path, Object... optionalArgs)
| 3403 | } |
| 3404 | |
| 3405 | public Object sign(Object path, Object... optionalArgs) |
| 3406 | { |
| 3407 | Object api = Helpers.getArg(optionalArgs, 0, "public"); |
| 3408 | Object method = Helpers.getArg(optionalArgs, 1, "GET"); |
| 3409 | Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}}); |
| 3410 | Object headers = Helpers.getArg(optionalArgs, 3, null); |
| 3411 | Object body = Helpers.getArg(optionalArgs, 4, null); |
| 3412 | Object query = this.omit(parameters, this.extractParams(path)); |
| 3413 | Object url = Helpers.add(Helpers.add(Helpers.add(Helpers.add(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), "rest"), "/"), this.version), "/"), this.implodeParams(path, parameters)); |
| 3414 | // Every spot endpoint ends with ".do" |
| 3415 | if (Helpers.isTrue(Helpers.isEqual(Helpers.GetValue(api, 0), "spot"))) |
| 3416 | { |
| 3417 | url = Helpers.add(url, ".do"); |
| 3418 | } else |
| 3419 | { |
| 3420 | url = Helpers.add(Helpers.add(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), "contract"), "/"), this.implodeParams(path, parameters)); |
| 3421 | } |
| 3422 | if (Helpers.isTrue(Helpers.isEqual(Helpers.GetValue(api, 1), "public"))) |
| 3423 | { |
| 3424 | if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(query)))) |
| 3425 | { |
| 3426 | url = Helpers.add(url, Helpers.add("?", this.urlencode(this.keysort(query)))); |
| 3427 | } |
| 3428 | } else |
| 3429 | { |
| 3430 | this.checkRequiredCredentials(); |
| 3431 | Object timestamp = String.valueOf(this.milliseconds()); |
| 3432 | Object echostr = Helpers.add(this.uuid22(), this.uuid16()); |
| 3433 | query = this.extend(new java.util.HashMap<String, Object>() {{ |
| 3434 | put( "api_key", LbankCore.this.apiKey ); |
| 3435 | }}, query); |
| 3436 | Object signatureMethod = null; |
| 3437 | if (Helpers.isTrue(Helpers.isGreaterThan(((String)this.secret).length(), 32))) |
| 3438 | { |
| 3439 | signatureMethod = "RSA"; |
| 3440 | } else |
| 3441 | { |
| 3442 | signatureMethod = "HmacSHA256"; |
| 3443 | } |
| 3444 | Object finalSig = signatureMethod; // java req |
| 3445 | Object auth = this.rawencode(this.keysort(this.extend(new java.util.HashMap<String, Object>() {{ |
| 3446 | put( "echostr", echostr ); |
| 3447 | put( "signature_method", finalSig ); |
| 3448 | put( "timestamp", timestamp ); |
| 3449 | }}, query))); |
| 3450 | Object encoded = this.encode(auth); |
| 3451 | Object hash = this.hash(encoded, md5()); |
| 3452 | Object uppercaseHash = ((String)hash).toUpperCase(); |
| 3453 | Object sign = null; |
| 3454 | if (Helpers.isTrue(Helpers.isEqual(signatureMethod, "RSA"))) |
| 3455 | { |
| 3456 | Object cacheSecretAsPem = this.safeBool(this.options, "cacheSecretAsPem", true); |
| 3457 | Object pem = null; |
| 3458 | if (Helpers.isTrue(cacheSecretAsPem)) |
| 3459 | { |
| 3460 | pem = this.safeValue(this.options, "pem"); |
| 3461 | if (Helpers.isTrue(Helpers.isEqual(pem, null))) |
| 3462 | { |
nothing calls this directly
no test coverage detected