(Object path, Object... optionalArgs)
| 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>() {{ |
nothing calls this directly
no test coverage detected