Class SendTransaction
- java.lang.Object
-
- nxt.http.APIServlet.APIRequestHandler
-
- nxt.http.SendTransaction
-
public final class SendTransaction extends APIServlet.APIRequestHandler
Sends a transaction to some peers. Similarly toBroadcastTransaction
, the purpose ofSendTransaction
is to support client side signing of transactions. UnlikeBroadcastTransaction
, does not validate the transaction and requires adminPassword parameter to avoid abuses. Also does not re-broadcast the transaction and does not store it as unconfirmed transaction. Clients first submit their transaction usingCreateTransaction
without providing the secret phrase.
In response the client receives the unsigned transaction JSON and transaction bytes.The client then signs and submits the signed transaction using
SendTransaction
The default wallet implements this procedure in nrs.server.js which you can use as reference.
SendTransaction
accepts the following parameters:
transactionJSON - JSON representation of the signed transaction
transactionBytes - row bytes composing the signed transaction bytes excluding the prunable appendages
prunableAttachmentJSON - JSON representation of the prunable appendages
Clients can submit either the signed transactionJSON or the signed transactionBytes but not both.
In case the client submits transactionBytes for a transaction containing prunable appendages, the client also needs to submit the prunableAttachmentJSON parameter which includes the attachment JSON for the prunable appendages.
Prunable appendages are classes implementing the
Appendix.Prunable
interface.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
allowRequiredBlockParameters()
protected org.json.simple.JSONStreamAware
processRequest(javax.servlet.http.HttpServletRequest req)
protected boolean
requireBlockchain()
protected boolean
requirePassword()
protected boolean
requirePost()
-
Methods inherited from class nxt.http.APIServlet.APIRequestHandler
getAPITags, getFileParameter, getParameters, isPassword, isTextArea, processRequest, requireFullClient, startDbTransaction
-
-
-
-
Method Detail
-
processRequest
protected org.json.simple.JSONStreamAware processRequest(javax.servlet.http.HttpServletRequest req) throws ParameterException
- Specified by:
processRequest
in classAPIServlet.APIRequestHandler
- Throws:
ParameterException
-
requirePost
protected boolean requirePost()
- Overrides:
requirePost
in classAPIServlet.APIRequestHandler
-
requirePassword
protected boolean requirePassword()
- Overrides:
requirePassword
in classAPIServlet.APIRequestHandler
-
requireBlockchain
protected boolean requireBlockchain()
- Overrides:
requireBlockchain
in classAPIServlet.APIRequestHandler
-
allowRequiredBlockParameters
protected final boolean allowRequiredBlockParameters()
- Overrides:
allowRequiredBlockParameters
in classAPIServlet.APIRequestHandler
-
-