OSDN Git Service

merge tx signer
[bytom/bytom-java-sdk.git] / java-sdk / src / main / java / io / bytom / api / Message.java
1 package io.bytom.api;
2
3 import com.google.gson.annotations.SerializedName;
4 import io.bytom.common.Utils;
5 import io.bytom.exception.BytomException;
6 import io.bytom.http.Client;
7 import org.apache.log4j.Logger;
8
9 public class Message {
10
11     @SerializedName("derived_xpub")
12     public String derivedXpub;
13     @SerializedName("signature")
14     public String signature;
15
16     private static Logger logger = Logger.getLogger(Message.class);
17
18     public String toJson() {
19         return Utils.serializer.toJson(this);
20     }
21
22     public static class SignBuilder {
23
24         public String address;
25         public String message;
26         public String password;
27
28         public SignBuilder setAddress(String address) {
29             this.address = address;
30             return this;
31         }
32
33         public SignBuilder setMessage(String message) {
34             this.message = message;
35             return this;
36         }
37
38         public SignBuilder setPassword(String password) {
39             this.password = password;
40             return this;
41         }
42
43         /**
44          * Call sign-message api
45          *
46          * @param client
47          * @return
48          * @throws BytomException
49          */
50         public Message sign(Client client) throws BytomException {
51             Message message = client.request("sign-message", this, Message.class);
52
53             logger.info("sign-message:");
54             logger.info(message.toJson());
55
56             return message;
57         }
58
59     }
60
61     public static class VerifyBuilder {
62
63         /**
64          * address, address for account.
65          */
66         public String address;
67
68         /**
69          * derived_xpub, derived xpub.
70          */
71         @SerializedName("derived_xpub")
72         public String derivedXpub;
73
74         /**
75          * message, message for signature by derived_xpub.
76          */
77         public String message;
78
79         /**
80          * signature, signature for message.
81          */
82         public String signature;
83
84
85         public VerifyBuilder setAddress(String address) {
86             this.address = address;
87             return this;
88         }
89
90         public VerifyBuilder setDerivedXpub(String derivedXpub) {
91             this.derivedXpub = derivedXpub;
92             return this;
93         }
94
95         public VerifyBuilder setMessage(String message) {
96             this.message = message;
97             return this;
98         }
99
100         public VerifyBuilder setSignature(String signature) {
101             this.signature = signature;
102             return this;
103         }
104
105         /**
106          * Call verify-message api
107          * @param client
108          * @return
109          * @throws BytomException
110          */
111         public Boolean verifyMessage(Client client) throws BytomException {
112             Boolean result = client.requestGet("verify-message", this, "result", Boolean.class);
113
114             logger.info("verify-message:"+result);
115
116             return result;
117         }
118
119     }
120
121
122 }