From dcd19f8e4243a548ae77228252eeeb9403c52910 Mon Sep 17 00:00:00 2001 From: catbref Date: Thu, 13 Dec 2018 08:44:50 +0000 Subject: [PATCH] Transaction-specific info in API results --- .gitignore | 4 ++++ src/api/models/BlockWithTransactions.java | 6 ++++-- src/api/models/TransactionClassExtractor.java | 15 +++++++++++++++ src/data/PaymentData.java | 9 +++++++++ src/data/transaction/ATTransactionData.java | 11 +++++++++++ .../transaction/ArbitraryTransactionData.java | 11 +++++++++++ .../transaction/BuyNameTransactionData.java | 11 +++++++++++ .../CancelOrderTransactionData.java | 11 +++++++++++ .../CancelSellNameTransactionData.java | 11 +++++++++++ .../CreateOrderTransactionData.java | 11 +++++++++++ .../CreatePollTransactionData.java | 11 +++++++++++ .../transaction/DeployATTransactionData.java | 11 +++++++++++ .../transaction/GenesisTransactionData.java | 2 +- .../IssueAssetTransactionData.java | 11 +++++++++++ .../transaction/MessageTransactionData.java | 11 +++++++++++ .../MultiPaymentTransactionData.java | 11 +++++++++++ .../RegisterNameTransactionData.java | 11 +++++++++++ .../transaction/SellNameTransactionData.java | 11 +++++++++++ src/data/transaction/TransactionData.java | 19 ++++++++++++++++++- .../TransferAssetTransactionData.java | 11 +++++++++++ .../UpdateNameTransactionData.java | 11 +++++++++++ .../VoteOnPollTransactionData.java | 12 ++++++++++++ src/data/voting/PollOptionData.java | 9 +++++++++ 23 files changed, 237 insertions(+), 4 deletions(-) create mode 100644 src/api/models/TransactionClassExtractor.java diff --git a/.gitignore b/.gitignore index 08aba977..6f35d4a1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ /db* /bin/ /target/ +/log.txt.* +/arbitrary* +/Qora-BTC* +/.factorypath diff --git a/src/api/models/BlockWithTransactions.java b/src/api/models/BlockWithTransactions.java index ae323aa9..0844a589 100644 --- a/src/api/models/BlockWithTransactions.java +++ b/src/api/models/BlockWithTransactions.java @@ -3,6 +3,8 @@ package api.models; import java.util.List; import java.util.stream.Collectors; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import api.ApiError; @@ -15,6 +17,7 @@ import repository.DataException; import repository.Repository; @Schema(description = "Block with (optional) transactions") +@XmlAccessorType(XmlAccessType.FIELD) public class BlockWithTransactions { @Schema(implementation = BlockData.class, name = "block", title = "block data") @@ -24,8 +27,7 @@ public class BlockWithTransactions { public List transactions; // For JAX-RS - @SuppressWarnings("unused") - private BlockWithTransactions() { + protected BlockWithTransactions() { } public BlockWithTransactions(Repository repository, BlockData blockData, boolean includeTransactions) throws DataException { diff --git a/src/api/models/TransactionClassExtractor.java b/src/api/models/TransactionClassExtractor.java new file mode 100644 index 00000000..d215c219 --- /dev/null +++ b/src/api/models/TransactionClassExtractor.java @@ -0,0 +1,15 @@ +package api.models; + +import org.eclipse.persistence.descriptors.ClassExtractor; +import org.eclipse.persistence.sessions.Record; +import org.eclipse.persistence.sessions.Session; + +public class TransactionClassExtractor extends ClassExtractor { + + @Override + public Class extractClassFromRow(Record record, Session session) { + // Never called anyway? + return null; + } + +} diff --git a/src/data/PaymentData.java b/src/data/PaymentData.java index c42e24c2..96b3eafd 100644 --- a/src/data/PaymentData.java +++ b/src/data/PaymentData.java @@ -2,6 +2,11 @@ package data; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +//All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) public class PaymentData { // Properties @@ -11,6 +16,10 @@ public class PaymentData { // Constructors + // For JAX-RS + protected PaymentData() { + } + public PaymentData(String recipient, long assetId, BigDecimal amount) { this.recipient = recipient; this.assetId = assetId; diff --git a/src/data/transaction/ATTransactionData.java b/src/data/transaction/ATTransactionData.java index e81dc099..9594724e 100644 --- a/src/data/transaction/ATTransactionData.java +++ b/src/data/transaction/ATTransactionData.java @@ -2,9 +2,16 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.account.GenesisAccount; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class ATTransactionData extends TransactionData { // Properties @@ -16,6 +23,10 @@ public class ATTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected ATTransactionData() { + } + public ATTransactionData(String atAddress, String recipient, BigDecimal amount, Long assetId, byte[] message, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.AT, fee, GenesisAccount.PUBLIC_KEY, timestamp, reference, signature); diff --git a/src/data/transaction/ArbitraryTransactionData.java b/src/data/transaction/ArbitraryTransactionData.java index 7392e1ff..19952df1 100644 --- a/src/data/transaction/ArbitraryTransactionData.java +++ b/src/data/transaction/ArbitraryTransactionData.java @@ -3,9 +3,16 @@ package data.transaction; import java.math.BigDecimal; import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + import data.PaymentData; +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class ArbitraryTransactionData extends TransactionData { // "data" field types @@ -24,6 +31,10 @@ public class ArbitraryTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected ArbitraryTransactionData() { + } + /** Reconstructing a V3 arbitrary transaction with signature */ public ArbitraryTransactionData(int version, byte[] senderPublicKey, int service, byte[] data, DataType dataType, List payments, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { diff --git a/src/data/transaction/BuyNameTransactionData.java b/src/data/transaction/BuyNameTransactionData.java index 5f534610..cedd76eb 100644 --- a/src/data/transaction/BuyNameTransactionData.java +++ b/src/data/transaction/BuyNameTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class BuyNameTransactionData extends TransactionData { // Properties @@ -15,6 +22,10 @@ public class BuyNameTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected BuyNameTransactionData() { + } + public BuyNameTransactionData(byte[] buyerPublicKey, String name, BigDecimal amount, String seller, byte[] nameReference, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.BUY_NAME, fee, buyerPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/CancelOrderTransactionData.java b/src/data/transaction/CancelOrderTransactionData.java index 126116e7..7bf91043 100644 --- a/src/data/transaction/CancelOrderTransactionData.java +++ b/src/data/transaction/CancelOrderTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class CancelOrderTransactionData extends TransactionData { // Properties @@ -11,6 +18,10 @@ public class CancelOrderTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected CancelOrderTransactionData() { + } + public CancelOrderTransactionData(byte[] creatorPublicKey, byte[] orderId, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(Transaction.TransactionType.CANCEL_ASSET_ORDER, fee, creatorPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/CancelSellNameTransactionData.java b/src/data/transaction/CancelSellNameTransactionData.java index 17c62bb5..f300baf8 100644 --- a/src/data/transaction/CancelSellNameTransactionData.java +++ b/src/data/transaction/CancelSellNameTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class CancelSellNameTransactionData extends TransactionData { // Properties @@ -12,6 +19,10 @@ public class CancelSellNameTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected CancelSellNameTransactionData() { + } + public CancelSellNameTransactionData(byte[] ownerPublicKey, String name, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.CANCEL_SELL_NAME, fee, ownerPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/CreateOrderTransactionData.java b/src/data/transaction/CreateOrderTransactionData.java index 95bd2cfe..3534a719 100644 --- a/src/data/transaction/CreateOrderTransactionData.java +++ b/src/data/transaction/CreateOrderTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class CreateOrderTransactionData extends TransactionData { // Properties @@ -14,6 +21,10 @@ public class CreateOrderTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected CreateOrderTransactionData() { + } + public CreateOrderTransactionData(byte[] creatorPublicKey, long haveAssetId, long wantAssetId, BigDecimal amount, BigDecimal price, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.CREATE_ASSET_ORDER, fee, creatorPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/CreatePollTransactionData.java b/src/data/transaction/CreatePollTransactionData.java index 78fd0862..e96f1ea7 100644 --- a/src/data/transaction/CreatePollTransactionData.java +++ b/src/data/transaction/CreatePollTransactionData.java @@ -3,9 +3,16 @@ package data.transaction; import java.math.BigDecimal; import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + import data.voting.PollOptionData; +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class CreatePollTransactionData extends TransactionData { // Properties @@ -16,6 +23,10 @@ public class CreatePollTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected CreatePollTransactionData() { + } + public CreatePollTransactionData(byte[] creatorPublicKey, String owner, String pollName, String description, List pollOptions, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(Transaction.TransactionType.CREATE_POLL, fee, creatorPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/DeployATTransactionData.java b/src/data/transaction/DeployATTransactionData.java index b02379e8..ad63b5c5 100644 --- a/src/data/transaction/DeployATTransactionData.java +++ b/src/data/transaction/DeployATTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class DeployATTransactionData extends TransactionData { // Properties @@ -18,6 +25,10 @@ public class DeployATTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected DeployATTransactionData() { + } + public DeployATTransactionData(String ATAddress, byte[] creatorPublicKey, String name, String description, String ATType, String tags, byte[] creationBytes, BigDecimal amount, long assetId, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.DEPLOY_AT, fee, creatorPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/GenesisTransactionData.java b/src/data/transaction/GenesisTransactionData.java index f30561b6..36b53e1a 100644 --- a/src/data/transaction/GenesisTransactionData.java +++ b/src/data/transaction/GenesisTransactionData.java @@ -11,7 +11,7 @@ import qora.transaction.Transaction.TransactionType; // All properties to be converted to JSON via JAX-RS @XmlAccessorType(XmlAccessType.FIELD) -@Schema( allOf = { TransactionData.class } ) +@Schema(allOf = { TransactionData.class }) public class GenesisTransactionData extends TransactionData { // Properties diff --git a/src/data/transaction/IssueAssetTransactionData.java b/src/data/transaction/IssueAssetTransactionData.java index cc5168b0..d832248e 100644 --- a/src/data/transaction/IssueAssetTransactionData.java +++ b/src/data/transaction/IssueAssetTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class IssueAssetTransactionData extends TransactionData { // Properties @@ -18,6 +25,10 @@ public class IssueAssetTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected IssueAssetTransactionData() { + } + public IssueAssetTransactionData(Long assetId, byte[] issuerPublicKey, String owner, String assetName, String description, long quantity, boolean isDivisible, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.ISSUE_ASSET, fee, issuerPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/MessageTransactionData.java b/src/data/transaction/MessageTransactionData.java index 734ebb7c..d5b19e40 100644 --- a/src/data/transaction/MessageTransactionData.java +++ b/src/data/transaction/MessageTransactionData.java @@ -2,9 +2,16 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.assets.Asset; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class MessageTransactionData extends TransactionData { // Properties @@ -19,6 +26,10 @@ public class MessageTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected MessageTransactionData() { + } + public MessageTransactionData(int version, byte[] senderPublicKey, String recipient, Long assetId, BigDecimal amount, byte[] data, boolean isText, boolean isEncrypted, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.MESSAGE, fee, senderPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/MultiPaymentTransactionData.java b/src/data/transaction/MultiPaymentTransactionData.java index 43c4c92d..754ecd6c 100644 --- a/src/data/transaction/MultiPaymentTransactionData.java +++ b/src/data/transaction/MultiPaymentTransactionData.java @@ -3,9 +3,16 @@ package data.transaction; import java.math.BigDecimal; import java.util.List; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + import data.PaymentData; +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class MultiPaymentTransactionData extends TransactionData { // Properties @@ -14,6 +21,10 @@ public class MultiPaymentTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected MultiPaymentTransactionData() { + } + public MultiPaymentTransactionData(byte[] senderPublicKey, List payments, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(Transaction.TransactionType.MULTIPAYMENT, fee, senderPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/RegisterNameTransactionData.java b/src/data/transaction/RegisterNameTransactionData.java index 6e1e1904..6d7b31f9 100644 --- a/src/data/transaction/RegisterNameTransactionData.java +++ b/src/data/transaction/RegisterNameTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class RegisterNameTransactionData extends TransactionData { // Properties @@ -14,6 +21,10 @@ public class RegisterNameTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected RegisterNameTransactionData() { + } + public RegisterNameTransactionData(byte[] registrantPublicKey, String owner, String name, String data, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.REGISTER_NAME, fee, registrantPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/SellNameTransactionData.java b/src/data/transaction/SellNameTransactionData.java index f934def9..d9cee47b 100644 --- a/src/data/transaction/SellNameTransactionData.java +++ b/src/data/transaction/SellNameTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class SellNameTransactionData extends TransactionData { // Properties @@ -13,6 +20,10 @@ public class SellNameTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected SellNameTransactionData() { + } + public SellNameTransactionData(byte[] ownerPublicKey, String name, BigDecimal amount, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.SELL_NAME, fee, ownerPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/TransactionData.java b/src/data/transaction/TransactionData.java index 820d54c8..0eb423e3 100644 --- a/src/data/transaction/TransactionData.java +++ b/src/data/transaction/TransactionData.java @@ -6,10 +6,27 @@ import java.util.Arrays; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import org.eclipse.persistence.oxm.annotations.XmlClassExtractor; + +import api.models.TransactionClassExtractor; import qora.transaction.Transaction.TransactionType; -// All properties to be converted to JSON via JAX-RS +/* + * If you encounter an error like: + * + * MessageBodyWriter not found for + * + * then chances are that class is missing a no-argument constructor! + */ + +@XmlClassExtractor(TransactionClassExtractor.class) +@XmlSeeAlso({ArbitraryTransactionData.class, ATTransactionData.class, BuyNameTransactionData.class, CancelOrderTransactionData.class, CancelSellNameTransactionData.class, + CreateOrderTransactionData.class, CreatePollTransactionData.class, DeployATTransactionData.class, GenesisTransactionData.class, IssueAssetTransactionData.class, + MessageTransactionData.class, MultiPaymentTransactionData.class, PaymentTransactionData.class, RegisterNameTransactionData.class, SellNameTransactionData.class, + TransferAssetTransactionData.class, UpdateNameTransactionData.class, VoteOnPollTransactionData.class}) +//All properties to be converted to JSON via JAX-RS @XmlAccessorType(XmlAccessType.FIELD) public abstract class TransactionData { diff --git a/src/data/transaction/TransferAssetTransactionData.java b/src/data/transaction/TransferAssetTransactionData.java index 15b993c7..8f1a5267 100644 --- a/src/data/transaction/TransferAssetTransactionData.java +++ b/src/data/transaction/TransferAssetTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class TransferAssetTransactionData extends TransactionData { // Properties @@ -14,6 +21,10 @@ public class TransferAssetTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected TransferAssetTransactionData() { + } + public TransferAssetTransactionData(byte[] senderPublicKey, String recipient, BigDecimal amount, long assetId, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.TRANSFER_ASSET, fee, senderPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/UpdateNameTransactionData.java b/src/data/transaction/UpdateNameTransactionData.java index 9183eb00..c7d2e3c0 100644 --- a/src/data/transaction/UpdateNameTransactionData.java +++ b/src/data/transaction/UpdateNameTransactionData.java @@ -2,8 +2,15 @@ package data.transaction; import java.math.BigDecimal; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class UpdateNameTransactionData extends TransactionData { // Properties @@ -15,6 +22,10 @@ public class UpdateNameTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected UpdateNameTransactionData() { + } + public UpdateNameTransactionData(byte[] ownerPublicKey, String newOwner, String name, String newData, byte[] nameReference, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.UPDATE_NAME, fee, ownerPublicKey, timestamp, reference, signature); diff --git a/src/data/transaction/VoteOnPollTransactionData.java b/src/data/transaction/VoteOnPollTransactionData.java index 9fdb9bf9..14368b1c 100644 --- a/src/data/transaction/VoteOnPollTransactionData.java +++ b/src/data/transaction/VoteOnPollTransactionData.java @@ -1,8 +1,16 @@ package data.transaction; import java.math.BigDecimal; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +import io.swagger.v3.oas.annotations.media.Schema; import qora.transaction.Transaction.TransactionType; +// All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) +@Schema(allOf = { TransactionData.class }) public class VoteOnPollTransactionData extends TransactionData { // Properties @@ -13,6 +21,10 @@ public class VoteOnPollTransactionData extends TransactionData { // Constructors + // For JAX-RS + protected VoteOnPollTransactionData() { + } + public VoteOnPollTransactionData(byte[] voterPublicKey, String pollName, int optionIndex, Integer previousOptionIndex, BigDecimal fee, long timestamp, byte[] reference, byte[] signature) { super(TransactionType.VOTE_ON_POLL, fee, voterPublicKey, timestamp, reference, signature); diff --git a/src/data/voting/PollOptionData.java b/src/data/voting/PollOptionData.java index 01fd26a6..773d6d2e 100644 --- a/src/data/voting/PollOptionData.java +++ b/src/data/voting/PollOptionData.java @@ -1,5 +1,10 @@ package data.voting; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; + +//All properties to be converted to JSON via JAX-RS +@XmlAccessorType(XmlAccessType.FIELD) public class PollOptionData { // Properties @@ -7,6 +12,10 @@ public class PollOptionData { // Constructors + // For JAX-RS + protected PollOptionData() { + } + public PollOptionData(String optionName) { this.optionName = optionName; }