(Object path, Object... optionalArgs)
| 4121 | } |
| 4122 | |
| 4123 | public Object sign(Object path, Object... optionalArgs) |
| 4124 | { |
| 4125 | Object api = Helpers.getArg(optionalArgs, 0, "public"); |
| 4126 | Object method = Helpers.getArg(optionalArgs, 1, "GET"); |
| 4127 | Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}}); |
| 4128 | Object headers = Helpers.getArg(optionalArgs, 3, null); |
| 4129 | Object body = Helpers.getArg(optionalArgs, 4, null); |
| 4130 | Object url = Helpers.add(Helpers.add(Helpers.add(Helpers.add(Helpers.add("/", this.version), "/"), api), "/"), path); |
| 4131 | if (Helpers.isTrue(Helpers.isEqual(api, "public"))) |
| 4132 | { |
| 4133 | if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(parameters)))) |
| 4134 | { |
| 4135 | // rawencode is used to address https://github.com/ccxt/ccxt/issues/12872 |
| 4136 | url = Helpers.add(url, Helpers.add("?", this.urlencodeNested(parameters))); |
| 4137 | } |
| 4138 | } else if (Helpers.isTrue(Helpers.isEqual(api, "private"))) |
| 4139 | { |
| 4140 | Object price = this.safeString(parameters, "price"); |
| 4141 | Object isTriggerPercent = false; |
| 4142 | if (Helpers.isTrue(!Helpers.isEqual(price, null))) |
| 4143 | { |
| 4144 | isTriggerPercent = ((Helpers.isTrue((((String)price).endsWith(((String)"%")))))) ? true : false; |
| 4145 | } |
| 4146 | Object isCancelOrderBatch = (Helpers.isEqual(path, "CancelOrderBatch")); |
| 4147 | Object isBatchOrder = (Helpers.isEqual(path, "AddOrderBatch")); |
| 4148 | this.checkRequiredCredentials(); |
| 4149 | Object nonce = String.valueOf(this.nonce()); |
| 4150 | if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(isCancelOrderBatch) || Helpers.isTrue(isTriggerPercent)) || Helpers.isTrue(isBatchOrder))) |
| 4151 | { |
| 4152 | final Object finalNonce = nonce; |
| 4153 | body = this.json(this.extend(new java.util.HashMap<String, Object>() {{ |
| 4154 | put( "nonce", finalNonce ); |
| 4155 | }}, parameters)); |
| 4156 | } else |
| 4157 | { |
| 4158 | // rawencode is used to address https://github.com/ccxt/ccxt/issues/12872 |
| 4159 | final Object finalNonce_2 = nonce; |
| 4160 | body = this.urlencodeNested(this.extend(new java.util.HashMap<String, Object>() {{ |
| 4161 | put( "nonce", finalNonce_2 ); |
| 4162 | }}, parameters)); |
| 4163 | } |
| 4164 | Object auth = this.encode(Helpers.add(nonce, body)); |
| 4165 | Object hash = this.hash(auth, sha256(), "binary"); |
| 4166 | Object binary = this.encode(url); |
| 4167 | Object binhash = this.binaryConcat(binary, hash); |
| 4168 | Object secret = this.base64ToBinary(this.secret); |
| 4169 | Object signature = this.hmac(binhash, secret, sha512(), "base64"); |
| 4170 | headers = new java.util.HashMap<String, Object>() {{ |
| 4171 | put( "API-Key", KrakenCore.this.apiKey ); |
| 4172 | put( "API-Sign", signature ); |
| 4173 | }}; |
| 4174 | if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(isCancelOrderBatch) || Helpers.isTrue(isTriggerPercent)) || Helpers.isTrue(isBatchOrder))) |
| 4175 | { |
| 4176 | Helpers.addElementToObject(headers, "Content-Type", "application/json"); |
| 4177 | } else |
| 4178 | { |
| 4179 | Helpers.addElementToObject(headers, "Content-Type", "application/x-www-form-urlencoded"); |
| 4180 | } |
nothing calls this directly
no test coverage detected