(Object path, Object... optionalArgs)
| 11159 | } |
| 11160 | |
| 11161 | public Object sign(Object path, Object... optionalArgs) |
| 11162 | { |
| 11163 | Object api = Helpers.getArg(optionalArgs, 0, "public"); |
| 11164 | Object method = Helpers.getArg(optionalArgs, 1, "GET"); |
| 11165 | Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}}); |
| 11166 | Object headers = Helpers.getArg(optionalArgs, 3, null); |
| 11167 | Object body = Helpers.getArg(optionalArgs, 4, null); |
| 11168 | Object url = Helpers.add(Helpers.add(this.implodeHostname(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), api)), "/"), path); |
| 11169 | if (Helpers.isTrue(Helpers.isEqual(api, "public"))) |
| 11170 | { |
| 11171 | if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(parameters)))) |
| 11172 | { |
| 11173 | url = Helpers.add(url, Helpers.add("?", this.rawencode(parameters))); |
| 11174 | } |
| 11175 | } else if (Helpers.isTrue(Helpers.isEqual(api, "private"))) |
| 11176 | { |
| 11177 | this.checkRequiredCredentials(); |
| 11178 | Object isOpenapi = Helpers.isGreaterThanOrEqual(Helpers.getIndexOf(url, "openapi"), 0); |
| 11179 | Object isV3UnifiedMargin = Helpers.isGreaterThanOrEqual(Helpers.getIndexOf(url, "unified/v3"), 0); |
| 11180 | Object isV3Contract = Helpers.isGreaterThanOrEqual(Helpers.getIndexOf(url, "contract/v3"), 0); |
| 11181 | Object isV5UnifiedAccount = Helpers.isGreaterThanOrEqual(Helpers.getIndexOf(url, "v5"), 0); |
| 11182 | Object timestamp = String.valueOf(this.nonce()); |
| 11183 | if (Helpers.isTrue(isOpenapi)) |
| 11184 | { |
| 11185 | if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(parameters)))) |
| 11186 | { |
| 11187 | body = this.json(parameters); |
| 11188 | } else |
| 11189 | { |
| 11190 | // this fix for PHP is required otherwise it generates |
| 11191 | // '[]' on empty arrays even when forced to use objects |
| 11192 | body = "{}"; |
| 11193 | } |
| 11194 | Object payload = Helpers.add(Helpers.add(timestamp, this.apiKey), body); |
| 11195 | Object signature = this.hmac(this.encode(payload), this.encode(this.secret), sha256(), "hex"); |
| 11196 | final Object finalTimestamp = timestamp; |
| 11197 | headers = new java.util.HashMap<String, Object>() {{ |
| 11198 | put( "Content-Type", "application/json" ); |
| 11199 | put( "X-BAPI-API-KEY", BybitCore.this.apiKey ); |
| 11200 | put( "X-BAPI-TIMESTAMP", finalTimestamp ); |
| 11201 | put( "X-BAPI-SIGN", signature ); |
| 11202 | }}; |
| 11203 | } else if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(isV3UnifiedMargin) || Helpers.isTrue(isV3Contract)) || Helpers.isTrue(isV5UnifiedAccount))) |
| 11204 | { |
| 11205 | final Object finalTimestamp_2 = timestamp; |
| 11206 | headers = new java.util.HashMap<String, Object>() {{ |
| 11207 | put( "Content-Type", "application/json" ); |
| 11208 | put( "X-BAPI-API-KEY", BybitCore.this.apiKey ); |
| 11209 | put( "X-BAPI-TIMESTAMP", finalTimestamp_2 ); |
| 11210 | put( "X-BAPI-RECV-WINDOW", String.valueOf(Helpers.GetValue(BybitCore.this.options, "recvWindow")) ); |
| 11211 | }}; |
| 11212 | if (Helpers.isTrue(Helpers.isTrue(isV3UnifiedMargin) || Helpers.isTrue(isV3Contract))) |
| 11213 | { |
| 11214 | Helpers.addElementToObject(headers, "X-BAPI-SIGN-TYPE", "2"); |
| 11215 | } |
| 11216 | Object query = this.extend(new java.util.HashMap<String, Object>() {{}}, parameters); |
| 11217 | Object queryEncoded = this.rawencode(query); |
| 11218 | Object auth_base = Helpers.add(Helpers.add(String.valueOf(timestamp), this.apiKey), String.valueOf(Helpers.GetValue(this.options, "recvWindow"))); |
nothing calls this directly
no test coverage detected