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

Method sign

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

Source from the content-addressed store, hash-verified

2195 }
2196
2197 public Object sign(Object path, Object... optionalArgs)
2198 {
2199 Object api = Helpers.getArg(optionalArgs, 0, "public");
2200 Object method = Helpers.getArg(optionalArgs, 1, "GET");
2201 Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}});
2202 Object headers = Helpers.getArg(optionalArgs, 3, null);
2203 Object body = Helpers.getArg(optionalArgs, 4, null);
2204 parameters = this.omit(parameters, "defaultType");
2205 Object isV1 = Helpers.isGreaterThan(Helpers.getIndexOf(path, "v1/"), Helpers.opNeg(1));
2206 Object marketType = ((Helpers.isTrue(isV1))) ? "swap" : "spot";
2207 Object url = Helpers.GetValue(Helpers.GetValue(this.urls, "api"), marketType);
2208 Object tail = Helpers.add("/api/", this.implodeParams(path, parameters));
2209 url = Helpers.add(url, tail);
2210 Object timestamp = String.valueOf(this.milliseconds());
2211 Object signature = "";
2212 Object query = this.omit(parameters, this.extractParams(path));
2213 Object queryLength = Helpers.getArrayLength(Helpers.objectKeys(query));
2214 Object access = this.safeString(api, 0, "public");
2215 if (Helpers.isTrue(Helpers.isEqual(access, "public")))
2216 {
2217 if (Helpers.isTrue(Helpers.isTrue(Helpers.isEqual(method, "GET")) || Helpers.isTrue(Helpers.isEqual(method, "DELETE"))))
2218 {
2219 if (Helpers.isTrue(queryLength))
2220 {
2221 url = Helpers.add(url, Helpers.add("?", this.urlencode(query)));
2222 }
2223 } else
2224 {
2225 body = Helpers.json(parameters);
2226 headers = new java.util.HashMap<String, Object>() {{
2227 put( "Referrer", "ccxt" );
2228 put( "Content-Type", "application/json" );
2229 }};
2230 }
2231 } else
2232 {
2233 this.checkRequiredCredentials();
2234 Object isSpot = Helpers.isEqual(marketType, "spot");
2235 Helpers.addElementToObject(parameters, "timestamp", timestamp);
2236 if (Helpers.isTrue(Helpers.isTrue(Helpers.isEqual(method, "GET")) || Helpers.isTrue((Helpers.isTrue(Helpers.isEqual(method, "DELETE")) && Helpers.isTrue(isSpot)))))
2237 {
2238 // For GET/DELETE: Append params to URL and sign the query string
2239 Object queryString = this.urlencode(parameters);
2240 signature = this.hmac(this.encode(queryString), this.encode(this.secret), sha256(), "hex");
2241 url = Helpers.add(url, Helpers.add("?", queryString));
2242 } else
2243 {
2244 // For POST/PUT: Convert body to JSON and sign the stringified payload
2245 body = this.json(parameters);
2246 signature = this.hmac(this.encode(body), this.encode(this.secret), sha256(), "hex");
2247 }
2248 final Object finalSignature = signature;
2249 headers = new java.util.HashMap<String, Object>() {{
2250 put( "Referrer", "ccxt" );
2251 put( "X-AUTH-APIKEY", ZebpayCore.this.apiKey );
2252 put( "X-AUTH-SIGNATURE", finalSignature );
2253 }};
2254 Helpers.addElementToObject(headers, "Content-Type", "application/json");

Callers

nothing calls this directly

Calls 15

getArgMethod · 0.95
isGreaterThanMethod · 0.95
getIndexOfMethod · 0.95
opNegMethod · 0.95
isTrueMethod · 0.95
GetValueMethod · 0.95
addMethod · 0.95
getArrayLengthMethod · 0.95
objectKeysMethod · 0.95
isEqualMethod · 0.95
jsonMethod · 0.95
addElementToObjectMethod · 0.95

Tested by

no test coverage detected