mirror of https://github.com/qortal/qortal
Browse Source
Added slow query check to HSQLDB repository to help isolate cases where transaction searching takes too long. Added BigDecimalTypeAdapter for normalizing API inputs but doesn't seem to get reliably called so also added .setScale(8) to BigDecimal serialization method. API-built transactions are now validated before emitting base58 raw transaction to help callers. API's transaction decoder accepts signed/unsigned raw transactions.pull/67/head
catbref
6 years ago
14 changed files with 210 additions and 57 deletions
@ -0,0 +1,25 @@
|
||||
package api; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
import javax.xml.bind.annotation.adapters.XmlAdapter; |
||||
|
||||
public class BigDecimalTypeAdapter extends XmlAdapter<String, BigDecimal> { |
||||
|
||||
@Override |
||||
public BigDecimal unmarshal(String input) throws Exception { |
||||
if (input == null) |
||||
return null; |
||||
|
||||
return new BigDecimal(input).setScale(8); |
||||
} |
||||
|
||||
@Override |
||||
public String marshal(BigDecimal output) throws Exception { |
||||
if (output == null) |
||||
return null; |
||||
|
||||
return output.toPlainString(); |
||||
} |
||||
|
||||
} |
@ -1,26 +0,0 @@
|
||||
package api.models; |
||||
|
||||
import java.math.BigDecimal; |
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema; |
||||
|
||||
public class IssueAssetRequest { |
||||
|
||||
@Schema(description = "asset issuer's public key") |
||||
public byte[] issuer; |
||||
|
||||
@Schema(description = "asset name - must be lowercase", example = "my-asset123") |
||||
public String name; |
||||
|
||||
@Schema(description = "asset description") |
||||
public String description; |
||||
|
||||
public BigDecimal quantity; |
||||
|
||||
public boolean isDivisible; |
||||
|
||||
public BigDecimal fee; |
||||
|
||||
public byte[] reference; |
||||
|
||||
} |
@ -1,6 +1,15 @@
|
||||
// This file (data/package-info.java) is used as a template!
|
||||
|
||||
@XmlJavaTypeAdapter(type = byte[].class, value = api.Base58TypeAdapter.class) |
||||
@XmlJavaTypeAdapters({ |
||||
@XmlJavaTypeAdapter( |
||||
type = byte[].class, |
||||
value = api.Base58TypeAdapter.class |
||||
), @XmlJavaTypeAdapter( |
||||
type = java.math.BigDecimal.class, |
||||
value = api.BigDecimalTypeAdapter.class |
||||
) |
||||
}) |
||||
package data; |
||||
|
||||
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; |
||||
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters; |
||||
|
Loading…
Reference in new issue