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

Method sign

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

Source from the content-addressed store, hash-verified

1377 }
1378
1379 public Object sign(Object path, Object... optionalArgs)
1380 {
1381 Object api = Helpers.getArg(optionalArgs, 0, "www");
1382 Object method = Helpers.getArg(optionalArgs, 1, "GET");
1383 Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}});
1384 Object headers = Helpers.getArg(optionalArgs, 3, null);
1385 Object body = Helpers.getArg(optionalArgs, 4, null);
1386 Object urls = ((Object)this.urls);
1387 if (!Helpers.isTrue((Helpers.inOp(Helpers.GetValue(urls, "api"), api))))
1388 {
1389 throw new ExchangeError((String)Helpers.add(Helpers.add(Helpers.add(this.id, " does not have a testnet/sandbox URL for "), api), " endpoints")) ;
1390 }
1391 if (Helpers.isTrue(!Helpers.isEqual(api, "www")))
1392 {
1393 this.checkRequiredCredentials();
1394 headers = new java.util.HashMap<String, Object>() {{
1395 put( "X-BITBNS-APIKEY", BitbnsCore.this.apiKey );
1396 }};
1397 }
1398 Object baseUrl = this.implodeHostname(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), api));
1399 Object url = Helpers.add(Helpers.add(baseUrl, "/"), this.implodeParams(path, parameters));
1400 Object query = this.omit(parameters, this.extractParams(path));
1401 Object nonce = String.valueOf(this.nonce());
1402 if (Helpers.isTrue(Helpers.isEqual(method, "GET")))
1403 {
1404 if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(query))))
1405 {
1406 url = Helpers.add(url, Helpers.add("?", this.urlencode(query)));
1407 }
1408 } else if (Helpers.isTrue(Helpers.isEqual(method, "POST")))
1409 {
1410 if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(query))))
1411 {
1412 body = this.json(query);
1413 } else
1414 {
1415 body = "{}";
1416 }
1417 final Object finalBody = body;
1418 Object auth = new java.util.HashMap<String, Object>() {{
1419 put( "timeStamp_nonce", nonce );
1420 put( "body", finalBody );
1421 }};
1422 Object payload = this.stringToBase64(this.json(auth));
1423 Object signature = this.hmac(this.encode(payload), this.encode(this.secret), sha512());
1424 headers = ((Helpers.isTrue((Helpers.isEqual(headers, null))))) ? new java.util.HashMap<String, Object>() {{}} : headers;
1425 Helpers.addElementToObject(headers, "X-BITBNS-PAYLOAD", payload);
1426 Helpers.addElementToObject(headers, "X-BITBNS-SIGNATURE", signature);
1427 Helpers.addElementToObject(headers, "Content-Type", "application/x-www-form-urlencoded");
1428 }
1429 final Object finalUrl = url;
1430 final Object finalMethod = method;
1431 final Object finalBody_2 = body;
1432 final Object finalHeaders = headers;
1433 return new java.util.HashMap<String, Object>() {{
1434 put( "url", finalUrl );
1435 put( "method", finalMethod );
1436 put( "body", finalBody_2 );

Callers

nothing calls this directly

Calls 15

getArgMethod · 0.95
isTrueMethod · 0.95
inOpMethod · 0.95
GetValueMethod · 0.95
addMethod · 0.95
isEqualMethod · 0.95
nonceMethod · 0.95
getArrayLengthMethod · 0.95
objectKeysMethod · 0.95
addElementToObjectMethod · 0.95
implodeHostnameMethod · 0.45

Tested by

no test coverage detected