// Path: src/main/java/dk/clanie/bitcoin/client/Transaction.java
// @SuppressWarnings("serial")
// @RooJavaBean(settersByDefault = false)
// @JsonPropertyOrder({
// 	"data",
// 	"hash",
// 	"required",
// 	"depends",
// 	"fee",
// 	"sigops"
// })
// public class Transaction extends JsonExtra {
// 	
// 	/**
// 	 * Transaction data encoded in hexadecimal (byte-for-byte).
// 	 */
// 	private String data;
// 
// 	/**
// 	 * If provided and true, this transaction must be in the final block.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Boolean required;
// 
// 	/**
// 	 * Hash/id encoded in little-endian hexadecimal.
// 	 */
// 	private String hash;
// 
// 	/**
// 	 * Other transactions before this one (by 1-based index in "transactions"
// 	 * list) that must be present in the final block if this one is; if key is
// 	 * not present, dependencies are unknown and clients MUST NOT assume there
// 	 * aren't any.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Integer[] depends;
// 
// 	/**
// 	 * Fee in Satoshis.
// 	 * <p>
// 	 * Difference in value between transaction inputs and outputs (in Satoshis);
// 	 * for coinbase transactions, this is a negative Number of the total
// 	 * collected block fees (ie, not including the block subsidy); if key is not
// 	 * present, fee is unknown and clients MUST NOT assume there isn't one.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Long fee;
// 	
// 	/**
// 	 * Total number of SigOps, as counted for purposes of block limits; if key
// 	 * is not present, sigop count is unknown and clients MUST NOT assume there
// 	 * aren't any.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Integer sigops;
// 
// }
// 
// Path: src/main/java/dk/clanie/bitcoin/json/JsonExtra.java
// @SuppressWarnings("serial")
// @RooJavaBean(settersByDefault = false)
// public abstract class JsonExtra extends BaseClass {
// 
// 	private Map<String, Object> otherFields = newHashMap();
// 
// 	/**
// 	 * Sets name and value of other (unknown) JSON fields.
// 	 * 
// 	 * @param field
// 	 * @param value
// 	 */
// 	@JsonAnySetter
// 	@SuppressWarnings("unused") // Is used by Jackson
// 	private void set(String field, Object value)  {
// 		otherFields.put(field, value);
// 	}
// 
// 
// 	/**
// 	 * Gets names and values of all other (unknown) JSON fields.
// 	 * 
// 	 * @return Names and values of other fields available. 
// 	 */
// 	@JsonAnyGetter
// 	public Map<String, Object> getOtherFields() {
// 		return Collections.unmodifiableMap(otherFields);
// 	}
// 
// 
// }


import java.util.Date;
import org.springframework.roo.addon.javabean.RooJavaBean;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import dk.clanie.bitcoin.client.Transaction;
import dk.clanie.bitcoin.json.JsonExtra;
	 * This OR coinBaseValue is required.
	 */
	@JsonProperty("coinbasetxn")
	@JsonInclude(Include.NON_EMPTY)
	private Transaction coinBaseTransaction;
	
	/**
	 * Maximum allowable input to coinbase transaction in Satoshis, including the generation
	 * award and transaction fees.
	 * <p>
	 * This OR coinBaseTransaction is required.
	 */
	@JsonProperty("coinbasevalue")
	@JsonInclude(Include.NON_EMPTY)
	private Long coinBaseValue;

	/**
	 * Hash target.
	 */
	private String target;

	/**
	 * Minimum timestamp appropriate for next block.
	 */
	@JsonProperty("mintime")
	private Date minTime;

	/**
	 * List of ways the block template may be changed.
	 */
// Path: src/main/java/dk/clanie/bitcoin/client/Transaction.java
// @SuppressWarnings("serial")
// @RooJavaBean(settersByDefault = false)
// @JsonPropertyOrder({
// 	"data",
// 	"hash",
// 	"required",
// 	"depends",
// 	"fee",
// 	"sigops"
// })
// public class Transaction extends JsonExtra {
// 	
// 	/**
// 	 * Transaction data encoded in hexadecimal (byte-for-byte).
// 	 */
// 	private String data;
// 
// 	/**
// 	 * If provided and true, this transaction must be in the final block.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Boolean required;
// 
// 	/**
// 	 * Hash/id encoded in little-endian hexadecimal.
// 	 */
// 	private String hash;
// 
// 	/**
// 	 * Other transactions before this one (by 1-based index in "transactions"
// 	 * list) that must be present in the final block if this one is; if key is
// 	 * not present, dependencies are unknown and clients MUST NOT assume there
// 	 * aren't any.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Integer[] depends;
// 
// 	/**
// 	 * Fee in Satoshis.
// 	 * <p>
// 	 * Difference in value between transaction inputs and outputs (in Satoshis);
// 	 * for coinbase transactions, this is a negative Number of the total
// 	 * collected block fees (ie, not including the block subsidy); if key is not
// 	 * present, fee is unknown and clients MUST NOT assume there isn't one.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Long fee;
// 	
// 	/**
// 	 * Total number of SigOps, as counted for purposes of block limits; if key
// 	 * is not present, sigop count is unknown and clients MUST NOT assume there
// 	 * aren't any.
// 	 */
// 	@JsonInclude(Include.NON_NULL)
// 	private Integer sigops;
// 
// }
// 
// Path: src/main/java/dk/clanie/bitcoin/json/JsonExtra.java
// @SuppressWarnings("serial")
// @RooJavaBean(settersByDefault = false)
// public abstract class JsonExtra extends BaseClass {
// 
// 	private Map<String, Object> otherFields = newHashMap();
// 
// 	/**
// 	 * Sets name and value of other (unknown) JSON fields.
// 	 * 
// 	 * @param field
// 	 * @param value
// 	 */
// 	@JsonAnySetter
// 	@SuppressWarnings("unused") // Is used by Jackson
// 	private void set(String field, Object value)  {
// 		otherFields.put(field, value);
// 	}
// 
// 
// 	/**
// 	 * Gets names and values of all other (unknown) JSON fields.
// 	 * 
// 	 * @return Names and values of other fields available. 
// 	 */
// 	@JsonAnyGetter
// 	public Map<String, Object> getOtherFields() {
// 		return Collections.unmodifiableMap(otherFields);
// 	}
// 
// 
// }


// Path: src/main/java/dk/clanie/bitcoin/client/response/GetBlockTemplateResult.java
import java.util.Date;
import org.springframework.roo.addon.javabean.RooJavaBean;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import dk.clanie.bitcoin.client.Transaction;
import dk.clanie.bitcoin.json.JsonExtra;

	 * This OR coinBaseValue is required.
	 */
	@JsonProperty("coinbasetxn")
	@JsonInclude(Include.NON_EMPTY)
	private Transaction coinBaseTransaction;
	
	/**
	 * Maximum allowable input to coinbase transaction in Satoshis, including the generation
	 * award and transaction fees.
	 * <p>
	 * This OR coinBaseTransaction is required.
	 */
	@JsonProperty("coinbasevalue")
	@JsonInclude(Include.NON_EMPTY)
	private Long coinBaseValue;

	/**
	 * Hash target.
	 */
	private String target;

	/**
	 * Minimum timestamp appropriate for next block.
	 */
	@JsonProperty("mintime")
	private Date minTime;

	/**
	 * List of ways the block template may be changed.
	 */
	private String[] mutable;