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

Method sign

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

Source from the content-addressed store, hash-verified

5749 }
5750
5751 public Object sign(Object path, Object... optionalArgs)
5752 {
5753 Object api = Helpers.getArg(optionalArgs, 0, new java.util.ArrayList<Object>(java.util.Arrays.asList()));
5754 Object method = Helpers.getArg(optionalArgs, 1, "GET");
5755 Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}});
5756 Object headers = Helpers.getArg(optionalArgs, 3, null);
5757 Object body = Helpers.getArg(optionalArgs, 4, null);
5758 path = this.implodeParams(path, parameters);
5759 Object version = Helpers.GetValue(api, 0);
5760 Object requestUrl = Helpers.GetValue(api, 1);
5761 Object url = Helpers.add(Helpers.add(Helpers.add(Helpers.add(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), requestUrl), "/"), version), "/"), path);
5762 Object query = this.omit(parameters, this.extractParams(path));
5763 Object nonce = String.valueOf(this.nonce());
5764 if (Helpers.isTrue(Helpers.isEqual(method, "POST")))
5765 {
5766 Object parts = Helpers.split(path, "/");
5767 Object firstPart = this.safeString(parts, 0, "");
5768 Object numParts = Helpers.getArrayLength(parts);
5769 Object lastPart = this.safeString(parts, Helpers.subtract(numParts, 1), "");
5770 Object lastWords = Helpers.split(lastPart, "_");
5771 Object numWords = Helpers.getArrayLength(lastWords);
5772 Object lastWord = this.safeString(lastWords, Helpers.subtract(numWords, 1), "");
5773 if (Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(firstPart, "order"))) && Helpers.isTrue((Helpers.isTrue(Helpers.isEqual(lastWord, "limit")) || Helpers.isTrue(Helpers.isEqual(lastWord, "market"))))))
5774 {
5775 // inject in implicit API calls
5776 // POST /order/limit - Place limit orders
5777 // POST /order/market - Place market orders
5778 // POST /order/stop/limit - Place stop limit orders
5779 // POST /order/stop/market - Place stop market orders
5780 // POST /perpetual/v1/order/put_limit - Place limit orders
5781 // POST /perpetual/v1/order/put_market - Place market orders
5782 // POST /perpetual/v1/order/put_stop_limit - Place stop limit orders
5783 // POST /perpetual/v1/order/put_stop_market - Place stop market orders
5784 Object clientOrderId = this.safeString(parameters, "client_id");
5785 if (Helpers.isTrue(Helpers.isEqual(clientOrderId, null)))
5786 {
5787 Object defaultId = "x-167673045";
5788 Object brokerId = this.safeValue(this.options, "brokerId", defaultId);
5789 Helpers.addElementToObject(query, "client_id", Helpers.add(Helpers.add(brokerId, "_"), this.uuid16()));
5790 }
5791 }
5792 }
5793 if (Helpers.isTrue(Helpers.isEqual(requestUrl, "perpetualPrivate")))
5794 {
5795 this.checkRequiredCredentials();
5796 final Object finalNonce = nonce;
5797 query = this.extend(new java.util.HashMap<String, Object>() {{
5798 put( "access_id", CoinexCore.this.apiKey );
5799 put( "timestamp", finalNonce );
5800 }}, query);
5801 query = this.keysort(query);
5802 Object urlencoded = this.rawencode(query);
5803 Object signature = this.hash(this.encode(Helpers.add(Helpers.add(urlencoded, "&secret_key="), this.secret)), sha256());
5804 headers = new java.util.HashMap<String, Object>() {{
5805 put( "Authorization", ((String)signature).toLowerCase() );
5806 put( "AccessId", CoinexCore.this.apiKey );
5807 }};
5808 if (Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(method, "GET"))) || Helpers.isTrue((Helpers.isEqual(method, "PUT")))))

Callers

nothing calls this directly

Calls 15

getArgMethod · 0.95
GetValueMethod · 0.95
addMethod · 0.95
nonceMethod · 0.95
isTrueMethod · 0.95
isEqualMethod · 0.95
splitMethod · 0.95
getArrayLengthMethod · 0.95
subtractMethod · 0.95
addElementToObjectMethod · 0.95
objectKeysMethod · 0.95
implodeParamsMethod · 0.45

Tested by

no test coverage detected