Interim commit - refactored transaction transformers and fixed unit test compiler errors

This commit is contained in:
catbref 2019-06-01 17:05:45 +01:00
parent 06ba004238
commit 4b3f877dc0
43 changed files with 234 additions and 129 deletions

View File

@ -14,12 +14,14 @@ import org.ciyam.at.MachineState;
import org.ciyam.at.OpCode;
import org.ciyam.at.Timestamp;
import org.qora.account.Account;
import org.qora.account.GenesisAccount;
import org.qora.account.PublicKeyAccount;
import org.qora.asset.Asset;
import org.qora.crypto.Crypto;
import org.qora.data.at.ATData;
import org.qora.data.block.BlockData;
import org.qora.data.transaction.ATTransactionData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.MessageTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.group.Group;
@ -268,8 +270,9 @@ public class QoraATAPI extends API {
byte[] reference = this.getLastReference();
BigDecimal amount = BigDecimal.valueOf(unscaledAmount, 8);
ATTransactionData atTransactionData = new ATTransactionData(timestamp, Group.NO_GROUP, reference, this.atData.getATAddress(),
recipient.getAddress(), amount, this.atData.getAssetId(), new byte[0], BigDecimal.ZERO.setScale(8));
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, GenesisAccount.PUBLIC_KEY, BigDecimal.ZERO, null);
ATTransactionData atTransactionData = new ATTransactionData(baseTransactionData, this.atData.getATAddress(),
recipient.getAddress(), amount, this.atData.getAssetId(), new byte[0]);
AtTransaction atTransaction = new AtTransaction(this.repository, atTransactionData);
// Add to our transactions
@ -286,8 +289,9 @@ public class QoraATAPI extends API {
long timestamp = this.getNextTransactionTimestamp();
byte[] reference = this.getLastReference();
ATTransactionData atTransactionData = new ATTransactionData(timestamp, Group.NO_GROUP, reference,
this.atData.getATAddress(), recipient.getAddress(), BigDecimal.ZERO, this.atData.getAssetId(), message, BigDecimal.ZERO.setScale(8));
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, GenesisAccount.PUBLIC_KEY, BigDecimal.ZERO, null);
ATTransactionData atTransactionData = new ATTransactionData(baseTransactionData, this.atData.getATAddress(),
recipient.getAddress(), BigDecimal.ZERO, this.atData.getAssetId(), message);
AtTransaction atTransaction = new AtTransaction(this.repository, atTransactionData);
// Add to our transactions
@ -312,8 +316,9 @@ public class QoraATAPI extends API {
byte[] reference = this.getLastReference();
BigDecimal amount = BigDecimal.valueOf(finalBalance, 8);
ATTransactionData atTransactionData = new ATTransactionData(timestamp, Group.NO_GROUP, reference, this.atData.getATAddress(),
creator.getAddress(), amount, this.atData.getAssetId(), new byte[0], BigDecimal.ZERO.setScale(8));
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, GenesisAccount.PUBLIC_KEY, BigDecimal.ZERO, null);
ATTransactionData atTransactionData = new ATTransactionData(baseTransactionData, this.atData.getATAddress(),
creator.getAddress(), amount, this.atData.getAssetId(), new byte[0]);
AtTransaction atTransaction = new AtTransaction(this.repository, atTransactionData);
// Add to our transactions

View File

@ -31,6 +31,7 @@ public class DeployAtTransactionData extends TransactionData {
super(TransactionType.DEPLOY_AT);
}
/** From repository */
public DeployAtTransactionData(BaseTransactionData baseTransactionData,
String aTAddress, String name, String description, String aTType, String tags, byte[] creationBytes, BigDecimal amount, long assetId) {
super(TransactionType.DEPLOY_AT, baseTransactionData);
@ -45,6 +46,12 @@ public class DeployAtTransactionData extends TransactionData {
this.assetId = assetId;
}
/** From network/API */
public DeployAtTransactionData(BaseTransactionData baseTransactionData,
String name, String description, String aTType, String tags, byte[] creationBytes, BigDecimal amount, long assetId) {
this(baseTransactionData, null, name, description, aTType, tags, creationBytes, amount, assetId);
}
// Getters/Setters
public String getName() {

View File

@ -7,6 +7,7 @@ import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.AccountFlagsTransactionData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
import org.qora.transform.TransformationException;
@ -64,7 +65,9 @@ public class AccountFlagsTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new AccountFlagsTransactionData(timestamp, txGroupId, reference, creatorPublicKey, target, andMask, orMask, xorMask, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new AccountFlagsTransactionData(baseTransactionData, target, andMask, orMask, xorMask);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -7,6 +7,7 @@ import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.AddGroupAdminTransactionData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
import org.qora.transform.TransformationException;
@ -58,7 +59,9 @@ public class AddGroupAdminTransactionTransformer extends TransactionTransformer
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new AddGroupAdminTransactionData(timestamp, txGroupId, reference, ownerPublicKey, groupId, member, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, ownerPublicKey, fee, signature);
return new AddGroupAdminTransactionData(baseTransactionData, groupId, member);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -12,6 +12,7 @@ import org.qora.block.BlockChain;
import org.qora.crypto.Crypto;
import org.qora.data.PaymentData;
import org.qora.data.transaction.ArbitraryTransactionData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.data.transaction.ArbitraryTransactionData.DataType;
import org.qora.transaction.ArbitraryTransaction;
@ -90,8 +91,9 @@ public class ArbitraryTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new ArbitraryTransactionData(timestamp, txGroupId, reference, senderPublicKey, version, service, data, DataType.RAW_DATA, payments, fee,
signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, senderPublicKey, fee, signature);
return new ArbitraryTransactionData(baseTransactionData, version, service, data, DataType.RAW_DATA, payments);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.BuyNameTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.naming.Name;
@ -64,7 +65,9 @@ public class BuyNameTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new BuyNameTransactionData(timestamp, txGroupId, reference, buyerPublicKey, name, amount, seller, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, buyerPublicKey, fee, signature);
return new BuyNameTransactionData(baseTransactionData, name, amount, seller);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CancelAssetOrderTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -53,7 +54,9 @@ public class CancelAssetOrderTransactionTransformer extends TransactionTransform
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new CancelAssetOrderTransactionData(timestamp, txGroupId, reference, creatorPublicKey, orderId, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new CancelAssetOrderTransactionData(baseTransactionData, orderId);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CancelGroupBanTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -58,7 +59,9 @@ public class CancelGroupBanTransactionTransformer extends TransactionTransformer
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new CancelGroupBanTransactionData(timestamp, txGroupId, reference, adminPublicKey, groupId, member, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, adminPublicKey, fee, signature);
return new CancelGroupBanTransactionData(baseTransactionData, groupId, member);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CancelGroupInviteTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -58,7 +59,9 @@ public class CancelGroupInviteTransactionTransformer extends TransactionTransfor
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new CancelGroupInviteTransactionData(timestamp, txGroupId, reference, adminPublicKey, groupId, invitee, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, adminPublicKey, fee, signature);
return new CancelGroupInviteTransactionData(baseTransactionData, groupId, invitee);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CancelSellNameTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.naming.Name;
@ -56,7 +57,9 @@ public class CancelSellNameTransactionTransformer extends TransactionTransformer
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new CancelSellNameTransactionData(timestamp, txGroupId, reference, ownerPublicKey, name, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, ownerPublicKey, fee, signature);
return new CancelSellNameTransactionData(baseTransactionData, name);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CreateAssetOrderTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -65,7 +66,9 @@ public class CreateAssetOrderTransactionTransformer extends TransactionTransform
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new CreateAssetOrderTransactionData(timestamp, txGroupId, reference, creatorPublicKey, haveAssetId, wantAssetId, amount, price, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new CreateAssetOrderTransactionData(baseTransactionData, haveAssetId, wantAssetId, amount, price);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CreateGroupTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.group.Group;
@ -80,8 +81,9 @@ public class CreateGroupTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new CreateGroupTransactionData(timestamp, txGroupId, reference, creatorPublicKey, owner, groupName, description, isOpen, approvalThreshold,
minBlockDelay, maxBlockDelay, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new CreateGroupTransactionData(baseTransactionData, owner, groupName, description, isOpen, approvalThreshold, minBlockDelay, maxBlockDelay);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -8,6 +8,7 @@ import java.util.ArrayList;
import java.util.List;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CreatePollTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.data.voting.PollOptionData;
@ -90,7 +91,9 @@ public class CreatePollTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new CreatePollTransactionData(timestamp, txGroupId, reference, creatorPublicKey, owner, pollName, description, pollOptions, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new CreatePollTransactionData(baseTransactionData, owner, pollName, description, pollOptions);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -7,6 +7,7 @@ import java.nio.ByteBuffer;
import org.qora.asset.Asset;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.DeployAtTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.DeployAtTransaction;
@ -95,8 +96,9 @@ public class DeployAtTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new DeployAtTransactionData(timestamp, txGroupId, reference, creatorPublicKey, name, description, ATType, tags, creationBytes, amount, assetId,
fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new DeployAtTransactionData(baseTransactionData, name, description, ATType, tags, creationBytes, amount, assetId);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.EnableForgingTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -52,7 +53,9 @@ public class EnableForgingTransactionTransformer extends TransactionTransformer
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new EnableForgingTransactionData(timestamp, txGroupId, reference, creatorPublicKey, target, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new EnableForgingTransactionData(baseTransactionData, target);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -5,10 +5,13 @@ import java.io.IOException;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.account.GenesisAccount;
import org.qora.asset.Asset;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.GenesisTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.group.Group;
import org.qora.transaction.Transaction.TransactionType;
import org.qora.transform.TransformationException;
import org.qora.utils.Serialization;
@ -48,7 +51,9 @@ public class GenesisTransactionTransformer extends TransactionTransformer {
if (timestamp >= BlockChain.getInstance().getQoraV2Timestamp())
assetId = byteBuffer.getLong();
return new GenesisTransactionData(timestamp, recipient, amount, assetId);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, null, GenesisAccount.PUBLIC_KEY, BigDecimal.ZERO, null);
return new GenesisTransactionData(baseTransactionData, recipient, amount, assetId);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.GroupApprovalTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -57,7 +58,9 @@ public class GroupApprovalTransactionTransformer extends TransactionTransformer
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new GroupApprovalTransactionData(timestamp, txGroupId, reference, adminPublicKey, pendingSignature, approval, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, adminPublicKey, fee, signature);
return new GroupApprovalTransactionData(baseTransactionData, pendingSignature, approval);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.GroupBanTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.group.Group;
@ -69,7 +70,9 @@ public class GroupBanTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new GroupBanTransactionData(timestamp, txGroupId, reference, adminPublicKey, groupId, offender, reason, timeToLive, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, adminPublicKey, fee, signature);
return new GroupBanTransactionData(baseTransactionData, groupId, offender, reason, timeToLive);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.GroupInviteTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -62,7 +63,9 @@ public class GroupInviteTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new GroupInviteTransactionData(timestamp, txGroupId, reference, adminPublicKey, groupId, invitee, timeToLive, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, adminPublicKey, fee, signature);
return new GroupInviteTransactionData(baseTransactionData, groupId, invitee, timeToLive);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.GroupKickTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.group.Group;
@ -65,7 +66,9 @@ public class GroupKickTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new GroupKickTransactionData(timestamp, txGroupId, reference, adminPublicKey, groupId, member, reason, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, adminPublicKey, fee, signature);
return new GroupKickTransactionData(baseTransactionData, groupId, member, reason);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -8,6 +8,7 @@ import java.util.Arrays;
import org.qora.asset.Asset;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.IssueAssetTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -91,8 +92,9 @@ public class IssueAssetTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new IssueAssetTransactionData(timestamp, txGroupId, reference, issuerPublicKey, owner, assetName,
description, quantity, isDivisible, data, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, issuerPublicKey, fee, signature);
return new IssueAssetTransactionData(baseTransactionData, owner, assetName, description, quantity, isDivisible, data);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.JoinGroupTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -54,7 +55,9 @@ public class JoinGroupTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new JoinGroupTransactionData(timestamp, txGroupId, reference, joinerPublicKey, groupId, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, joinerPublicKey, fee, signature);
return new JoinGroupTransactionData(baseTransactionData, groupId);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.LeaveGroupTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -54,7 +55,9 @@ public class LeaveGroupTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new LeaveGroupTransactionData(timestamp, txGroupId, reference, leaverPublicKey, groupId, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, leaverPublicKey, fee, signature);
return new LeaveGroupTransactionData(baseTransactionData, groupId);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -7,6 +7,7 @@ import java.nio.ByteBuffer;
import org.qora.asset.Asset;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.MessageTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.MessageTransaction;
@ -90,8 +91,9 @@ public class MessageTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new MessageTransactionData(timestamp, txGroupId, reference, senderPublicKey, version, recipient, assetId, amount, data, isText, isEncrypted, fee,
signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, senderPublicKey, fee, signature);
return new MessageTransactionData(baseTransactionData, version, recipient, assetId, amount, data, isText, isEncrypted);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -10,6 +10,7 @@ import java.util.List;
import org.qora.block.BlockChain;
import org.qora.data.PaymentData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.MultiPaymentTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -66,7 +67,9 @@ public class MultiPaymentTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new MultiPaymentTransactionData(timestamp, txGroupId, reference, senderPublicKey, payments, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, senderPublicKey, fee, signature);
return new MultiPaymentTransactionData(baseTransactionData, payments);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.PaymentTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -56,7 +57,9 @@ public class PaymentTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new PaymentTransactionData(timestamp, txGroupId, reference, senderPublicKey, recipient, amount, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, senderPublicKey, fee, signature);
return new PaymentTransactionData(baseTransactionData, recipient, amount);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.RegisterNameTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.naming.Name;
@ -65,7 +66,9 @@ public class RegisterNameTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new RegisterNameTransactionData(timestamp, txGroupId, reference, registrantPublicKey, owner, name, data, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, registrantPublicKey, fee, signature);
return new RegisterNameTransactionData(baseTransactionData, owner, name, data);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.RemoveGroupAdminTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -58,7 +59,9 @@ public class RemoveGroupAdminTransactionTransformer extends TransactionTransform
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new RemoveGroupAdminTransactionData(timestamp, txGroupId, reference, ownerPublicKey, groupId, admin, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, ownerPublicKey, fee, signature);
return new RemoveGroupAdminTransactionData(baseTransactionData, groupId, admin);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.SellNameTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.naming.Name;
@ -60,7 +61,9 @@ public class SellNameTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new SellNameTransactionData(timestamp, txGroupId, reference, ownerPublicKey, name, amount, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, ownerPublicKey, fee, signature);
return new SellNameTransactionData(baseTransactionData, name, amount);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.SetGroupTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -54,7 +55,9 @@ public class SetGroupTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new SetGroupTransactionData(timestamp, txGroupId, reference, creatorPublicKey, defaultGroupId, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, signature);
return new SetGroupTransactionData(baseTransactionData, defaultGroupId);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.data.transaction.TransferAssetTransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -61,7 +62,9 @@ public class TransferAssetTransactionTransformer extends TransactionTransformer
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new TransferAssetTransactionData(timestamp, txGroupId, reference, senderPublicKey, recipient, amount, assetId, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, senderPublicKey, fee, signature);
return new TransferAssetTransactionData(baseTransactionData, recipient, amount, assetId);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -8,6 +8,7 @@ import java.nio.ByteBuffer;
import org.qora.asset.Asset;
import org.qora.block.BlockChain;
import org.qora.data.transaction.UpdateAssetTransactionData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.transaction.Transaction.TransactionType;
import org.qora.transform.TransformationException;
@ -71,8 +72,9 @@ public class UpdateAssetTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new UpdateAssetTransactionData(timestamp, txGroupId, reference, ownerPublicKey, assetId, newOwner,
newDescription, newData, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, ownerPublicKey, fee, signature);
return new UpdateAssetTransactionData(baseTransactionData, assetId, newOwner, newDescription, newData);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -7,6 +7,7 @@ import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.UpdateGroupTransactionData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.group.Group;
import org.qora.group.Group.ApprovalThreshold;
@ -83,8 +84,10 @@ public class UpdateGroupTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new UpdateGroupTransactionData(timestamp, txGroupId, reference, ownerPublicKey, groupId, newOwner, newDescription, newIsOpen,
newApprovalThreshold, newMinBlockDelay, newMaxBlockDelay, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, ownerPublicKey, fee, signature);
return new UpdateGroupTransactionData(baseTransactionData, groupId, newOwner, newDescription, newIsOpen,
newApprovalThreshold, newMinBlockDelay, newMaxBlockDelay);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.data.transaction.UpdateNameTransactionData;
import org.qora.naming.Name;
@ -65,7 +66,9 @@ public class UpdateNameTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new UpdateNameTransactionData(timestamp, txGroupId, reference, ownerPublicKey, newOwner, name, newData, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, ownerPublicKey, fee, signature);
return new UpdateNameTransactionData(baseTransactionData, newOwner, name, newData);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -6,6 +6,7 @@ import java.math.BigDecimal;
import java.nio.ByteBuffer;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.data.transaction.VoteOnPollTransactionData;
import org.qora.transaction.Transaction.TransactionType;
@ -63,7 +64,9 @@ public class VoteOnPollTransactionTransformer extends TransactionTransformer {
byte[] signature = new byte[SIGNATURE_LENGTH];
byteBuffer.get(signature);
return new VoteOnPollTransactionData(timestamp, txGroupId, reference, voterPublicKey, pollName, optionIndex, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, voterPublicKey, fee, signature);
return new VoteOnPollTransactionData(baseTransactionData, pollName, optionIndex);
}
public static int getDataLength(TransactionData transactionData) throws TransformationException {

View File

@ -5,6 +5,7 @@ import org.qora.asset.Asset;
import org.qora.data.at.ATStateData;
import org.qora.data.block.BlockData;
import org.qora.data.block.BlockTransactionData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.DeployAtTransactionData;
import org.qora.group.Group;
import org.qora.repository.DataException;
@ -48,8 +49,8 @@ public class ATTests extends Common {
byte[] reference = Base58.decode("2D3jX1pEgu6irsQ7QzJb85QP1D9M45dNyP5M9a3WFHndU5ZywF4F5pnUurcbzMnGMcTwpAY6H7DuLw8cUBU66ao1");
byte[] signature = Base58.decode("2dZ4megUyNoYYY7qWmuSd4xw1yUKgPPF97yBbeddh8aKuC8PLpz7Xvf3r6Zjv1zwGrR8fEAHuaztCPD4KQp76KdL");
DeployAtTransactionData transactionData = new DeployAtTransactionData(timestamp, Group.NO_GROUP, reference, creatorPublicKey, name, description, ATType,
tags, creationBytes, amount, Asset.QORA, fee, signature);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, creatorPublicKey, fee, signature);
DeployAtTransactionData transactionData = new DeployAtTransactionData(baseTransactionData, name, description, ATType, tags, creationBytes, amount, Asset.QORA);
try (final Repository repository = RepositoryManager.getRepository()) {
repository.getTransactionRepository().save(transactionData);

View File

@ -4,6 +4,7 @@ import org.junit.Test;
import org.qora.account.PrivateKeyAccount;
import org.qora.block.BlockChain;
import org.qora.block.BlockGenerator;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CreateGroupTransactionData;
import org.qora.data.transaction.PaymentTransactionData;
import org.qora.data.transaction.TransactionData;
@ -50,7 +51,8 @@ public class GroupApprovalTests extends Common {
BigDecimal amount = BigDecimal.ONE.setScale(8);
BigDecimal fee = BigDecimal.ONE.setScale(8);
return new PaymentTransactionData(timestamp, txGroupId, reference, senderPublicKey, recipient, amount, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, senderPublicKey, fee, null);
return new PaymentTransactionData(baseTransactionData, recipient, amount);
}
private int createGroup(Repository repository) throws DataException {
@ -67,8 +69,9 @@ public class GroupApprovalTests extends Common {
int maximumBlockDelay = 1440;
BigDecimal fee = BigDecimal.ONE.setScale(8);
TransactionData transactionData = new CreateGroupTransactionData(timestamp, txGroupId, reference, creatorPublicKey, owner, groupName, description,
isOpen, approvalThreshold, minimumBlockDelay, maximumBlockDelay, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, creatorPublicKey, fee, null);
TransactionData transactionData = new CreateGroupTransactionData(baseTransactionData, owner, groupName, description,
isOpen, approvalThreshold, minimumBlockDelay, maximumBlockDelay);
Transaction transaction = new CreateGroupTransaction(repository, transactionData);
// Sign transaction

View File

@ -1,36 +0,0 @@
package org.qora.test;
import java.math.BigDecimal;
import java.time.Instant;
import org.junit.Test;
import org.qora.account.PublicKeyAccount;
import org.qora.data.transaction.PaymentTransactionData;
import org.qora.group.Group;
import org.qora.repository.DataException;
import org.qora.repository.Repository;
import org.qora.repository.RepositoryManager;
import org.qora.test.common.Common;
import org.qora.utils.Base58;
public class SaveTests extends Common {
@Test
public void testSavePaymentTransaction() throws DataException {
try (final Repository repository = RepositoryManager.getRepository()) {
String reference58 = "rrrr";
byte[] reference = Base58.decode(reference58);
String signature58 = "ssss";
byte[] signature = Base58.decode(signature58);
PublicKeyAccount sender = new PublicKeyAccount(repository, "Qsender".getBytes());
PaymentTransactionData paymentTransactionData = new PaymentTransactionData(Instant.now().getEpochSecond(), Group.NO_GROUP, reference,
sender.getPublicKey(), "Qrecipient", BigDecimal.valueOf(12345L), BigDecimal.ONE, signature);
repository.getTransactionRepository().save(paymentTransactionData);
repository.discardChanges();
}
}
}

View File

@ -16,6 +16,7 @@ import org.qora.data.asset.OrderData;
import org.qora.data.asset.TradeData;
import org.qora.data.block.BlockData;
import org.qora.data.naming.NameData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.BuyNameTransactionData;
import org.qora.data.transaction.CancelAssetOrderTransactionData;
import org.qora.data.transaction.CancelSellNameTransactionData;
@ -130,8 +131,9 @@ public class TransactionTests extends Common {
BigDecimal amount = genericPaymentAmount;
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
PaymentTransactionData paymentTransactionData = new PaymentTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), recipient,
amount, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
PaymentTransactionData paymentTransactionData = new PaymentTransactionData(baseTransactionData, recipient, amount);
Transaction paymentTransaction = new PaymentTransaction(repository, paymentTransactionData);
paymentTransaction.sign(sender);
@ -148,8 +150,9 @@ public class TransactionTests extends Common {
BigDecimal amount = BigDecimal.valueOf(1_000L);
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
PaymentTransactionData paymentTransactionData = new PaymentTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(),
recipient.getAddress(), amount, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
PaymentTransactionData paymentTransactionData = new PaymentTransactionData(baseTransactionData, recipient.getAddress(), amount);
Transaction paymentTransaction = new PaymentTransaction(repository, paymentTransactionData);
paymentTransaction.sign(sender);
@ -207,8 +210,9 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
RegisterNameTransactionData registerNameTransactionData = new RegisterNameTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(),
sender.getAddress(), name, data, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
RegisterNameTransactionData registerNameTransactionData = new RegisterNameTransactionData(baseTransactionData, sender.getAddress(), name, data);
Transaction registerNameTransaction = new RegisterNameTransaction(repository, registerNameTransactionData);
registerNameTransaction.sign(sender);
@ -260,8 +264,9 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
UpdateNameTransactionData updateNameTransactionData = new UpdateNameTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(),
newOwner.getAddress(), name, newData, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
UpdateNameTransactionData updateNameTransactionData = new UpdateNameTransactionData(baseTransactionData, newOwner.getAddress(), name, newData);
Transaction updateNameTransaction = new UpdateNameTransaction(repository, updateNameTransactionData);
updateNameTransaction.sign(sender);
@ -304,8 +309,9 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
SellNameTransactionData sellNameTransactionData = new SellNameTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), name, amount,
fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
SellNameTransactionData sellNameTransactionData = new SellNameTransactionData(baseTransactionData, name, amount);
Transaction sellNameTransaction = new SellNameTransaction(repository, sellNameTransactionData);
sellNameTransaction.sign(sender);
@ -354,8 +360,9 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
CancelSellNameTransactionData cancelSellNameTransactionData = new CancelSellNameTransactionData(timestamp, Group.NO_GROUP, reference,
sender.getPublicKey(), name, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
CancelSellNameTransactionData cancelSellNameTransactionData = new CancelSellNameTransactionData(baseTransactionData, name);
Transaction cancelSellNameTransaction = new CancelSellNameTransaction(repository, cancelSellNameTransactionData);
cancelSellNameTransaction.sign(sender);
@ -415,8 +422,9 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
BuyNameTransactionData buyNameTransactionData = new BuyNameTransactionData(timestamp, Group.NO_GROUP, buyersReference, buyer.getPublicKey(), name,
originalNameData.getSalePrice(), seller, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, buyersReference, buyer.getPublicKey(), fee, null);
BuyNameTransactionData buyNameTransactionData = new BuyNameTransactionData(baseTransactionData, name, originalNameData.getSalePrice(), seller);
Transaction buyNameTransaction = new BuyNameTransaction(repository, buyNameTransactionData);
buyNameTransaction.sign(buyer);
@ -466,8 +474,9 @@ public class TransactionTests extends Common {
Account recipient = new PublicKeyAccount(repository, recipientSeed);
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
CreatePollTransactionData createPollTransactionData = new CreatePollTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(),
recipient.getAddress(), pollName, description, pollOptions, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
CreatePollTransactionData createPollTransactionData = new CreatePollTransactionData(baseTransactionData, recipient.getAddress(), pollName, description, pollOptions);
Transaction createPollTransaction = new CreatePollTransaction(repository, createPollTransactionData);
createPollTransaction.sign(sender);
@ -518,8 +527,9 @@ public class TransactionTests extends Common {
for (int optionIndex = 0; optionIndex <= pollOptionsSize; ++optionIndex) {
// Make a vote-on-poll transaction
VoteOnPollTransactionData voteOnPollTransactionData = new VoteOnPollTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(),
pollName, optionIndex, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
VoteOnPollTransactionData voteOnPollTransactionData = new VoteOnPollTransactionData(baseTransactionData, pollName, optionIndex);
Transaction voteOnPollTransaction = new VoteOnPollTransaction(repository, voteOnPollTransactionData);
voteOnPollTransaction.sign(sender);
@ -589,8 +599,8 @@ public class TransactionTests extends Common {
long timestamp = parentBlockData.getTimestamp() + 1_000;
String data = (timestamp >= BlockChain.getInstance().getQoraV2Timestamp()) ? "{}" : null;
IssueAssetTransactionData issueAssetTransactionData = new IssueAssetTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(),
sender.getAddress(), assetName, description, quantity, isDivisible, data, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
IssueAssetTransactionData issueAssetTransactionData = new IssueAssetTransactionData(baseTransactionData, sender.getAddress(), assetName, description, quantity, isDivisible, data);
Transaction issueAssetTransaction = new IssueAssetTransaction(repository, issueAssetTransactionData);
issueAssetTransaction.sign(sender);
@ -677,8 +687,8 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
TransferAssetTransactionData transferAssetTransactionData = new TransferAssetTransactionData(timestamp, Group.NO_GROUP, reference,
sender.getPublicKey(), recipient.getAddress(), amount, assetId, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
TransferAssetTransactionData transferAssetTransactionData = new TransferAssetTransactionData(baseTransactionData, recipient.getAddress(), amount, assetId);
Transaction transferAssetTransaction = new TransferAssetTransaction(repository, transferAssetTransactionData);
transferAssetTransaction.sign(sender);
@ -778,8 +788,9 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
CreateAssetOrderTransactionData createOrderTransactionData = new CreateAssetOrderTransactionData(timestamp, Group.NO_GROUP, buyersReference,
buyer.getPublicKey(), haveAssetId, wantAssetId, amount, price, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, buyersReference, sender.getPublicKey(), fee, null);
CreateAssetOrderTransactionData createOrderTransactionData = new CreateAssetOrderTransactionData(baseTransactionData, haveAssetId, wantAssetId, amount, price);
Transaction createOrderTransaction = new CreateAssetOrderTransaction(this.repository, createOrderTransactionData);
createOrderTransaction.sign(buyer);
assertTrue(createOrderTransaction.isSignatureValid());
@ -857,8 +868,9 @@ public class TransactionTests extends Common {
BigDecimal fee = BigDecimal.ONE;
long timestamp = parentBlockData.getTimestamp() + 1_000;
byte[] buyersReference = buyer.getLastReference();
CancelAssetOrderTransactionData cancelOrderTransactionData = new CancelAssetOrderTransactionData(timestamp, Group.NO_GROUP, buyersReference,
buyer.getPublicKey(), orderId, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, buyersReference, sender.getPublicKey(), fee, null);
CancelAssetOrderTransactionData cancelOrderTransactionData = new CancelAssetOrderTransactionData(baseTransactionData, orderId);
Transaction cancelOrderTransaction = new CancelAssetOrderTransaction(this.repository, cancelOrderTransactionData);
cancelOrderTransaction.sign(buyer);
@ -931,8 +943,9 @@ public class TransactionTests extends Common {
long timestamp = parentBlockData.getTimestamp() + 1_000;
BigDecimal senderPreTradeWantBalance = sender.getConfirmedBalance(wantAssetId);
CreateAssetOrderTransactionData createOrderTransactionData = new CreateAssetOrderTransactionData(timestamp, Group.NO_GROUP, reference,
sender.getPublicKey(), haveAssetId, wantAssetId, amount, price, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
CreateAssetOrderTransactionData createOrderTransactionData = new CreateAssetOrderTransactionData(baseTransactionData, haveAssetId, wantAssetId, amount, price);
Transaction createOrderTransaction = new CreateAssetOrderTransaction(this.repository, createOrderTransactionData);
createOrderTransaction.sign(sender);
assertTrue(createOrderTransaction.isSignatureValid());
@ -1038,8 +1051,8 @@ public class TransactionTests extends Common {
payments.add(paymentData);
}
MultiPaymentTransactionData multiPaymentTransactionData = new MultiPaymentTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(),
payments, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
MultiPaymentTransactionData multiPaymentTransactionData = new MultiPaymentTransactionData(baseTransactionData, payments);
Transaction multiPaymentTransaction = new MultiPaymentTransaction(repository, multiPaymentTransactionData);
multiPaymentTransaction.sign(sender);
@ -1106,8 +1119,9 @@ public class TransactionTests extends Common {
boolean isText = true;
boolean isEncrypted = false;
MessageTransactionData messageTransactionData = new MessageTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), version,
recipient.getAddress(), Asset.QORA, amount, data, isText, isEncrypted, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, Group.NO_GROUP, reference, sender.getPublicKey(), fee, null);
MessageTransactionData messageTransactionData = new MessageTransactionData(baseTransactionData, version,
recipient.getAddress(), Asset.QORA, amount, data, isText, isEncrypted);
Transaction messageTransaction = new MessageTransaction(repository, messageTransactionData);
messageTransaction.sign(sender);

View File

@ -27,7 +27,8 @@ public class AccountUtils {
byte[] reference = sendingAccount.getLastReference();
long timestamp = repository.getTransactionRepository().fromSignature(reference).getTimestamp() + 1;
TransactionData transactionData = new PaymentTransactionData(timestamp, txGroupId, reference, sendingAccount.getPublicKey(), recipientAccount.getAddress(), amount, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, sendingAccount.getPublicKey(), fee, null);
TransactionData transactionData = new PaymentTransactionData(baseTransactionData, recipientAccount.getAddress(), amount);
TransactionUtils.signAndForge(repository, transactionData, sendingAccount);
}
@ -56,7 +57,8 @@ public class AccountUtils {
byte[] reference = forgingAccount.getLastReference();
long timestamp = repository.getTransactionRepository().fromSignature(reference).getTimestamp() + 1;
return new EnableForgingTransactionData(timestamp, txGroupId, reference, forgingAccount.getPublicKey(), Crypto.toAddress(recipientPublicKey), fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, txGroupId, reference, forgingAccount.getPublicKey(), fee, null);
return new EnableForgingTransactionData(baseTransactionData, Crypto.toAddress(recipientPublicKey));
}
public static TransactionData createEnableForging(Repository repository, String forger, String recipient) throws DataException {

View File

@ -8,6 +8,7 @@ import java.util.Map;
import org.qora.account.PrivateKeyAccount;
import org.qora.block.BlockChain;
import org.qora.data.asset.OrderData;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.data.transaction.CancelAssetOrderTransactionData;
import org.qora.data.transaction.CreateAssetOrderTransactionData;
import org.qora.data.transaction.IssueAssetTransactionData;
@ -33,7 +34,8 @@ public class AssetUtils {
byte[] reference = account.getLastReference();
long timestamp = repository.getTransactionRepository().fromSignature(reference).getTimestamp() + 1;
TransactionData transactionData = new IssueAssetTransactionData(timestamp, AssetUtils.txGroupId, reference, account.getPublicKey(), account.getAddress(), assetName, "desc", quantity, isDivisible, "{}", AssetUtils.fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, AssetUtils.txGroupId, reference, account.getPublicKey(), AssetUtils.fee, null);
TransactionData transactionData = new IssueAssetTransactionData(baseTransactionData, account.getAddress(), assetName, "desc", quantity, isDivisible, "{}");
TransactionUtils.signAndForge(repository, transactionData, account);
@ -47,7 +49,8 @@ public class AssetUtils {
byte[] reference = fromAccount.getLastReference();
long timestamp = repository.getTransactionRepository().fromSignature(reference).getTimestamp() + 1;
TransactionData transactionData = new TransferAssetTransactionData(timestamp, AssetUtils.txGroupId, reference, fromAccount.getPublicKey(), toAccount.getAddress(), amount, assetId, AssetUtils.fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, AssetUtils.txGroupId, reference, fromAccount.getPublicKey(), AssetUtils.fee, null);
TransactionData transactionData = new TransferAssetTransactionData(baseTransactionData, toAccount.getAddress(), amount, assetId);
TransactionUtils.signAndForge(repository, transactionData, fromAccount);
}
@ -58,7 +61,8 @@ public class AssetUtils {
byte[] reference = account.getLastReference();
long timestamp = repository.getTransactionRepository().fromSignature(reference).getTimestamp() + 1;
TransactionData transactionData = new CreateAssetOrderTransactionData(timestamp, txGroupId, reference, account.getPublicKey(), haveAssetId, wantAssetId, amount, price, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, AssetUtils.txGroupId, reference, account.getPublicKey(), AssetUtils.fee, null);
TransactionData transactionData = new CreateAssetOrderTransactionData(baseTransactionData, haveAssetId, wantAssetId, amount, price);
TransactionUtils.signAndForge(repository, transactionData, account);
@ -71,7 +75,8 @@ public class AssetUtils {
byte[] reference = account.getLastReference();
long timestamp = repository.getTransactionRepository().fromSignature(reference).getTimestamp() + 1;
TransactionData transactionData = new CancelAssetOrderTransactionData(timestamp, txGroupId, reference, account.getPublicKey(), orderId, fee);
BaseTransactionData baseTransactionData = new BaseTransactionData(timestamp, AssetUtils.txGroupId, reference, account.getPublicKey(), AssetUtils.fee, null);
TransactionData transactionData = new CancelAssetOrderTransactionData(baseTransactionData, orderId);
TransactionUtils.signAndForge(repository, transactionData, account);
}

View File

@ -5,14 +5,12 @@ import java.math.BigDecimal;
import org.qora.account.PrivateKeyAccount;
import org.qora.data.transaction.PaymentTransactionData;
import org.qora.data.transaction.TransactionData;
import org.qora.group.Group;
import org.qora.repository.Repository;
import org.qora.utils.NTP;
public class PaymentTransaction {
public class PaymentTransaction extends org.qora.test.common.transaction.Transaction {
public static TransactionData randomTransaction(Repository repository, PrivateKeyAccount account, boolean wantValid) {
return new PaymentTransactionData(NTP.getTime(), Group.NO_GROUP, new byte[32], account.getPublicKey(), account.getAddress(), BigDecimal.valueOf(123L), BigDecimal.ONE);
return new PaymentTransactionData(generateBase(account), account.getAddress(), BigDecimal.valueOf(123L));
}
}

View File

@ -1,4 +1,15 @@
package org.qora.test.common.transaction;
import org.qora.account.PrivateKeyAccount;
import org.qora.block.BlockChain;
import org.qora.data.transaction.BaseTransactionData;
import org.qora.group.Group;
import org.qora.utils.NTP;
public abstract class Transaction {
protected static BaseTransactionData generateBase(PrivateKeyAccount account) {
return new BaseTransactionData(NTP.getTime(), Group.NO_GROUP, new byte[32], account.getPublicKey(), BlockChain.getInstance().getUnitFee(), null);
}
}