(Object path, Object... optionalArgs)
| 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 ); |
nothing calls this directly
no test coverage detected