forked from Qortal-Forker/qortal
Added more global parameters to /admin/unused API endpoint (formally /admin/dud) and also managed to remove /admin/unused from API documentation UI. Added results slicing to /assets/all Added /assets/orderbook API call that returns open asset orders Added /assets/trades that returns successful asset trades Added POST /assets/issue stub Unified HSQLDB connectionUrl to public variable inside Controller class. Can't deploy v1 ATs with isFinished=true flag as that prevents later transactions sending messages (during import of v1 chain). Some future hard-fork code will need to set all v1 ATs to "finished". Changed DB's "TransactionRecipients" to "TransactionParticipants" to properly support API call to find all transactions 'involving' a specific address. Support code needed in Block and Transaction with some transaction-specific overrides for Genesis and AT transactions. Removed old, deprecated calls from Transaction/TransactionRepository Moved HSQLDB database properties from connection URL to explicit SQL statements in HSQLDBDatabaseUpdates. They didn't work in connection URL during DB creation anyway. Retrofitted HSQLDB Accounts table with public_key column instead of rebuilding it later. Fixed incorrect comments in IssueAssetTransactionTransformer regarding v1 serialization for signing. Re-imported v1 chain to test latest changes.
126 lines
3.0 KiB
Java
126 lines
3.0 KiB
Java
package data.assets;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import javax.xml.bind.annotation.XmlAccessType;
|
|
import javax.xml.bind.annotation.XmlAccessorType;
|
|
|
|
import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
|
// All properties to be converted to JSON via JAX-RS
|
|
@XmlAccessorType(XmlAccessType.FIELD)
|
|
public class OrderData implements Comparable<OrderData> {
|
|
|
|
// Properties
|
|
private byte[] orderId;
|
|
private byte[] creatorPublicKey;
|
|
|
|
@Schema(description = "asset on offer to give by order creator")
|
|
private long haveAssetId;
|
|
|
|
@Schema(description = "asset wanted to receive by order creator")
|
|
private long wantAssetId;
|
|
|
|
@Schema(description = "amount of \"have\" asset to trade")
|
|
private BigDecimal amount;
|
|
|
|
@Schema(description = "amount of \"want\" asset to receive per unit of \"have\" asset traded")
|
|
private BigDecimal price;
|
|
|
|
@Schema(description = "how much \"have\" asset has traded")
|
|
private BigDecimal fulfilled;
|
|
|
|
private long timestamp;
|
|
|
|
@Schema(description = "has this order been cancelled for further trades?")
|
|
private boolean isClosed;
|
|
|
|
@Schema(description = "has this order been fully traded?")
|
|
private boolean isFulfilled;
|
|
|
|
// Constructors
|
|
|
|
// necessary for JAX-RS serialization
|
|
protected OrderData() {
|
|
}
|
|
|
|
public OrderData(byte[] orderId, byte[] creatorPublicKey, long haveAssetId, long wantAssetId, BigDecimal amount, BigDecimal fulfilled, BigDecimal price,
|
|
long timestamp, boolean isClosed, boolean isFulfilled) {
|
|
this.orderId = orderId;
|
|
this.creatorPublicKey = creatorPublicKey;
|
|
this.haveAssetId = haveAssetId;
|
|
this.wantAssetId = wantAssetId;
|
|
this.amount = amount;
|
|
this.fulfilled = fulfilled;
|
|
this.price = price;
|
|
this.timestamp = timestamp;
|
|
this.isClosed = isClosed;
|
|
this.isFulfilled = isFulfilled;
|
|
}
|
|
|
|
public OrderData(byte[] orderId, byte[] creatorPublicKey, long haveAssetId, long wantAssetId, BigDecimal amount, BigDecimal price, long timestamp) {
|
|
this(orderId, creatorPublicKey, haveAssetId, wantAssetId, amount, BigDecimal.ZERO.setScale(8), price, timestamp, false, false);
|
|
}
|
|
|
|
// Getters/setters
|
|
|
|
public byte[] getOrderId() {
|
|
return this.orderId;
|
|
}
|
|
|
|
public byte[] getCreatorPublicKey() {
|
|
return this.creatorPublicKey;
|
|
}
|
|
|
|
public long getHaveAssetId() {
|
|
return this.haveAssetId;
|
|
}
|
|
|
|
public long getWantAssetId() {
|
|
return this.wantAssetId;
|
|
}
|
|
|
|
public BigDecimal getAmount() {
|
|
return this.amount;
|
|
}
|
|
|
|
public BigDecimal getFulfilled() {
|
|
return this.fulfilled;
|
|
}
|
|
|
|
public void setFulfilled(BigDecimal fulfilled) {
|
|
this.fulfilled = fulfilled;
|
|
}
|
|
|
|
public BigDecimal getPrice() {
|
|
return this.price;
|
|
}
|
|
|
|
public long getTimestamp() {
|
|
return this.timestamp;
|
|
}
|
|
|
|
public boolean getIsClosed() {
|
|
return this.isClosed;
|
|
}
|
|
|
|
public void setIsClosed(boolean isClosed) {
|
|
this.isClosed = isClosed;
|
|
}
|
|
|
|
public boolean getIsFulfilled() {
|
|
return this.isFulfilled;
|
|
}
|
|
|
|
public void setIsFulfilled(boolean isFulfilled) {
|
|
this.isFulfilled = isFulfilled;
|
|
}
|
|
|
|
@Override
|
|
public int compareTo(OrderData orderData) {
|
|
// Compare using prices
|
|
return this.price.compareTo(orderData.getPrice());
|
|
}
|
|
|
|
}
|