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

Method sign

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

Source from the content-addressed store, hash-verified

3425 }
3426
3427 public Object sign(Object path, Object... optionalArgs)
3428 {
3429 Object api = Helpers.getArg(optionalArgs, 0, "public");
3430 Object method = Helpers.getArg(optionalArgs, 1, "GET");
3431 Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}});
3432 Object headers = Helpers.getArg(optionalArgs, 3, null);
3433 Object body = Helpers.getArg(optionalArgs, 4, null);
3434 Object request = Helpers.add(Helpers.add(Helpers.add("/api/", this.version), "/"), this.implodeParams(path, parameters));
3435 Object query = this.omit(parameters, this.extractParams(path));
3436 Object url = Helpers.add(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), "rest"), request);
3437 // const type = this.getPathAuthenticationType (path);
3438 if (Helpers.isTrue(Helpers.isEqual(api, "public")))
3439 {
3440 if (!Helpers.isTrue(this.isEmpty(query)))
3441 {
3442 url = Helpers.add(url, Helpers.add("?", this.urlencode(query)));
3443 }
3444 } else if (Helpers.isTrue(Helpers.isEqual(api, "private")))
3445 {
3446 this.checkRequiredCredentials();
3447 Object timestamp = String.valueOf(this.milliseconds());
3448 headers = new java.util.HashMap<String, Object>() {{
3449 put( "ACCESS-KEY", BlofinCore.this.apiKey );
3450 put( "ACCESS-PASSPHRASE", BlofinCore.this.password );
3451 put( "ACCESS-TIMESTAMP", timestamp );
3452 put( "ACCESS-NONCE", timestamp );
3453 }};
3454 Object sign_body = "";
3455 if (Helpers.isTrue(Helpers.isEqual(method, "GET")))
3456 {
3457 if (!Helpers.isTrue(this.isEmpty(query)))
3458 {
3459 Object urlencodedQuery = Helpers.add("?", this.urlencode(query));
3460 url = Helpers.add(url, urlencodedQuery);
3461 request = Helpers.add(request, urlencodedQuery);
3462 }
3463 } else
3464 {
3465 if (!Helpers.isTrue(this.isEmpty(query)))
3466 {
3467 body = this.json(query);
3468 sign_body = body;
3469 }
3470 Helpers.addElementToObject(headers, "Content-Type", "application/json");
3471 }
3472 Object auth = Helpers.add(Helpers.add(Helpers.add(Helpers.add(request, method), timestamp), timestamp), sign_body);
3473 Object signature = this.stringToBase64(this.hmac(this.encode(auth), this.encode(this.secret), sha256()));
3474 Helpers.addElementToObject(headers, "ACCESS-SIGN", signature);
3475 }
3476 final Object finalUrl = url;
3477 final Object finalMethod = method;
3478 final Object finalBody = body;
3479 final Object finalHeaders = headers;
3480 return new java.util.HashMap<String, Object>() {{
3481 put( "url", finalUrl );
3482 put( "method", finalMethod );
3483 put( "body", finalBody );
3484 put( "headers", finalHeaders );

Callers

nothing calls this directly

Calls 15

getArgMethod · 0.95
addMethod · 0.95
GetValueMethod · 0.95
isTrueMethod · 0.95
isEqualMethod · 0.95
addElementToObjectMethod · 0.95
isEmptyMethod · 0.80
implodeParamsMethod · 0.45
omitMethod · 0.45
extractParamsMethod · 0.45
urlencodeMethod · 0.45

Tested by

no test coverage detected