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

Method sign

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

Source from the content-addressed store, hash-verified

4732 }
4733
4734 public Object sign(Object path, Object... optionalArgs)
4735 {
4736 Object api = Helpers.getArg(optionalArgs, 0, "public");
4737 Object method = Helpers.getArg(optionalArgs, 1, "GET");
4738 Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}});
4739 Object headers = Helpers.getArg(optionalArgs, 3, null);
4740 Object body = Helpers.getArg(optionalArgs, 4, null);
4741 Object url = Helpers.add(Helpers.add(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), api), "/"), path);
4742 if (Helpers.isTrue(Helpers.isTrue(Helpers.isEqual(api, "fapiPublic")) || Helpers.isTrue(Helpers.isEqual(api, "sapiPublic"))))
4743 {
4744 if (Helpers.isTrue(Helpers.getArrayLength(Helpers.objectKeys(parameters))))
4745 {
4746 url = Helpers.add(url, Helpers.add("?", this.rawencode(parameters)));
4747 }
4748 } else if (Helpers.isTrue(Helpers.isTrue(Helpers.isEqual(api, "fapiPrivate")) || Helpers.isTrue(Helpers.isEqual(api, "sapiPrivate"))))
4749 {
4750 this.checkRequiredCredentials();
4751 Object nonce = Helpers.multiply(this.milliseconds(), 1000);
4752 // Sign using EIP-712 typed data per the AsterSignTransaction spec
4753 Object zeroAddress = this.safeString(this.options, "zeroAddress", "0x0000000000000000000000000000000000000000");
4754 Object v3ChainId = this.safeInteger(this.options, "v3ChainId", 1666);
4755 Object walletAddress = this.ethGetAddressFromPrivateKey(this.privateKey);
4756 Object signerAddress = this.safeString(this.options, "signerAddress", walletAddress); // default to user's wallet
4757 if (Helpers.isTrue(Helpers.isEqual(signerAddress, null)))
4758 {
4759 throw new ArgumentsRequired((String)Helpers.add(this.id, " requires signerAddress in options when use v3 api")) ;
4760 }
4761 Object domain = new java.util.HashMap<String, Object>() {{
4762 put( "name", "AsterSignTransaction" );
4763 put( "version", "1" );
4764 put( "chainId", v3ChainId );
4765 put( "verifyingContract", zeroAddress );
4766 }};
4767 Object messageTypes = new java.util.HashMap<String, Object>() {{
4768 put( "Message", new java.util.ArrayList<Object>(java.util.Arrays.asList(new java.util.HashMap<String, Object>() {{
4769 put( "name", "msg" );
4770 put( "type", "string" );
4771}})) );
4772 }};
4773 // Build v3 params: original endpoint params + nonce (macroseconds) + user + signer
4774 // Note: timestamp and recvWindow are not used for v3; nonce replaces timestamp
4775 final Object finalSignerAddress = signerAddress;
4776 Object finalParams = this.extend(new java.util.HashMap<String, Object>() {{
4777 put( "nonce", String.valueOf(nonce) );
4778 put( "user", walletAddress );
4779 put( "signer", finalSignerAddress );
4780 }}, parameters);
4781 Object paramString = null;
4782 Object paramsToEncode = null;
4783 Object isApproveBuilder = (Helpers.isGreaterThanOrEqual(Helpers.getIndexOf(path, "/approveBuilder"), 0));
4784 if (Helpers.isTrue(isApproveBuilder))
4785 {
4786 // domain['name'] = 'Aster';
4787 messageTypes = new java.util.HashMap<String, Object>() {{
4788 put( "ApproveBuilder", new java.util.ArrayList<Object>(java.util.Arrays.asList(new java.util.HashMap<String, Object>() {{
4789 put( "name", "Builder" );
4790 put( "type", "string" );
4791}}, new java.util.HashMap<String, Object>() {{

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
multiplyMethod · 0.95
isGreaterThanOrEqualMethod · 0.95
getIndexOfMethod · 0.95
encodeValuesWithJsonMethod · 0.95
capitalizeKeysMethod · 0.95

Tested by

no test coverage detected