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

Method sign

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

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 15

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

Tested by

no test coverage detected