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

Method sign

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

Source from the content-addressed store, hash-verified

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")));

Callers

nothing calls this directly

Calls 15

getArgMethod · 0.95
addMethod · 0.95
GetValueMethod · 0.95
isTrueMethod · 0.95
isEqualMethod · 0.95
getArrayLengthMethod · 0.95
objectKeysMethod · 0.95
isGreaterThanOrEqualMethod · 0.95
getIndexOfMethod · 0.95
nonceMethod · 0.95
addElementToObjectMethod · 0.95
isGreaterThanMethod · 0.95

Tested by

no test coverage detected