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

Method sign

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

Source from the content-addressed store, hash-verified

4280 }
4281
4282 public Object sign(Object path, Object... optionalArgs)
4283 {
4284 Object api = Helpers.getArg(optionalArgs, 0, "public");
4285 Object method = Helpers.getArg(optionalArgs, 1, "GET");
4286 Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}});
4287 Object headers = Helpers.getArg(optionalArgs, 3, null);
4288 Object body = Helpers.getArg(optionalArgs, 4, null);
4289 Object query = this.omit(parameters, this.extractParams(path));
4290 Object implodedPath = this.implodeParams(path, parameters);
4291 Object url = Helpers.add(Helpers.add(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), api), "/"), implodedPath);
4292 Object getRequest = null;
4293 Object keys = Helpers.objectKeys(query);
4294 Object queryLength = Helpers.getArrayLength(keys);
4295 headers = new java.util.HashMap<String, Object>() {{
4296 put( "Content-Type", "application/json" );
4297 }};
4298 if (Helpers.isTrue(Helpers.isEqual(method, "GET")))
4299 {
4300 if (Helpers.isTrue(queryLength))
4301 {
4302 getRequest = Helpers.add("?", this.urlencode(query));
4303 url = Helpers.add(url, getRequest);
4304 }
4305 } else
4306 {
4307 body = this.json(parameters);
4308 }
4309 if (Helpers.isTrue(Helpers.isEqual(api, "private")))
4310 {
4311 this.checkRequiredCredentials();
4312 Object timestamp = String.valueOf(this.nonce());
4313 Object payload = new java.util.ArrayList<Object>(java.util.Arrays.asList(method, Helpers.add("/api/3/", implodedPath)));
4314 if (Helpers.isTrue(Helpers.isEqual(method, "GET")))
4315 {
4316 if (Helpers.isTrue(!Helpers.isEqual(getRequest, null)))
4317 {
4318 ((java.util.List<Object>)payload).add(getRequest);
4319 }
4320 } else
4321 {
4322 ((java.util.List<Object>)payload).add(body);
4323 }
4324 ((java.util.List<Object>)payload).add(timestamp);
4325 Object payloadString = String.join((String)"", (java.util.List<String>)payload);
4326 Object signature = this.hmac(this.encode(payloadString), this.encode(this.secret), sha256(), "hex");
4327 Object secondPayload = Helpers.add(Helpers.add(Helpers.add(Helpers.add(this.apiKey, ":"), signature), ":"), timestamp);
4328 Object encoded = this.stringToBase64(secondPayload);
4329 Helpers.addElementToObject(headers, "Authorization", Helpers.add("HS256 ", encoded));
4330 }
4331 final Object finalUrl = url;
4332 final Object finalMethod = method;
4333 final Object finalBody = body;
4334 final Object finalHeaders = headers;
4335 return new java.util.HashMap<String, Object>() {{
4336 put( "url", finalUrl );
4337 put( "method", finalMethod );
4338 put( "body", finalBody );
4339 put( "headers", finalHeaders );

Callers

nothing calls this directly

Calls 15

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

Tested by

no test coverage detected