forked from Qortal/qortal
Added initial support of different unit fees per transaction type.
Included a timestamp property, as this will be needed for each update (hard fork).
This commit is contained in:
parent
b1342d84fb
commit
72a291a54a
@ -334,7 +334,7 @@ public abstract class Transaction {
|
|||||||
|
|
||||||
/** Returns whether transaction's fee is at least minimum unit fee as specified in blockchain config. */
|
/** Returns whether transaction's fee is at least minimum unit fee as specified in blockchain config. */
|
||||||
public boolean hasMinimumFee() {
|
public boolean hasMinimumFee() {
|
||||||
return this.transactionData.getFee() >= BlockChain.getInstance().getUnitFee();
|
return this.transactionData.getFee() >= this.getUnitFee(this.transactionData.getTimestamp());
|
||||||
}
|
}
|
||||||
|
|
||||||
public long feePerByte() {
|
public long feePerByte() {
|
||||||
@ -347,7 +347,7 @@ public abstract class Transaction {
|
|||||||
|
|
||||||
/** Returns whether transaction's fee is at least amount needed to cover byte-length of transaction. */
|
/** Returns whether transaction's fee is at least amount needed to cover byte-length of transaction. */
|
||||||
public boolean hasMinimumFeePerByte() {
|
public boolean hasMinimumFeePerByte() {
|
||||||
long unitFee = BlockChain.getInstance().getUnitFee();
|
long unitFee = this.getUnitFee(this.transactionData.getTimestamp());
|
||||||
int maxBytePerUnitFee = BlockChain.getInstance().getMaxBytesPerUnitFee();
|
int maxBytePerUnitFee = BlockChain.getInstance().getMaxBytesPerUnitFee();
|
||||||
|
|
||||||
// If the unit fee is zero, any fee is enough to cover the byte-length of the transaction
|
// If the unit fee is zero, any fee is enough to cover the byte-length of the transaction
|
||||||
@ -369,7 +369,18 @@ public abstract class Transaction {
|
|||||||
|
|
||||||
int unitFeeCount = ((dataLength - 1) / maxBytePerUnitFee) + 1;
|
int unitFeeCount = ((dataLength - 1) / maxBytePerUnitFee) + 1;
|
||||||
|
|
||||||
return BlockChain.getInstance().getUnitFee() * unitFeeCount;
|
return this.getUnitFee(this.transactionData.getTimestamp()) * unitFeeCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Caclulate unit fee for a given transaction type
|
||||||
|
*
|
||||||
|
* FUTURE: add "accountLevel" parameter if needed - the level of the transaction creator
|
||||||
|
* @param timestamp - the transaction's timestamp (currently not used)
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public long getUnitFee(Long timestamp) {
|
||||||
|
return BlockChain.getInstance().getUnitFee();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user