RawTransaction.java
- /*
- * @copyright defined in LICENSE.txt
- */
- package hera.api.model;
- import hera.annotation.ApiAudience;
- import hera.annotation.ApiStability;
- import hera.api.model.Transaction.TxType;
- import hera.spec.transaction.CreateNameTransactionBuilder;
- import hera.spec.transaction.DeployContractTransactionBuilder;
- import hera.spec.transaction.InvokeContractTransactionBuilder;
- import hera.spec.transaction.PlainTransactionBuilder;
- import hera.spec.transaction.ReDeployContractTransactionBuilder;
- import hera.spec.transaction.StakeTransactionBuilder;
- import hera.spec.transaction.UnstakeTransactionBuilder;
- import hera.spec.transaction.UpdateNameTransactionBuilder;
- import hera.spec.transaction.VoteTransactionBuilder;
- import hera.spec.transaction.dsl.CreateNameTransaction;
- import hera.spec.transaction.dsl.DeployContractTransaction;
- import hera.spec.transaction.dsl.InvokeContractTransaction;
- import hera.spec.transaction.dsl.PlainTransaction;
- import hera.spec.transaction.dsl.ReDeployContractTransaction;
- import hera.spec.transaction.dsl.StakeTransaction;
- import hera.spec.transaction.dsl.UnstakeTransaction;
- import hera.spec.transaction.dsl.UpdateNameTransaction;
- import hera.spec.transaction.dsl.VoteTransaction;
- import lombok.NonNull;
- import lombok.Value;
- @ApiAudience.Public
- @ApiStability.Unstable
- @Value
- public class RawTransaction {
- @ApiAudience.Public
- public static PlainTransaction.WithNothing newBuilder() {
- return new PlainTransactionBuilder();
- }
- @ApiAudience.Public
- public static PlainTransaction.WithChainIdHash newBuilder(final ChainIdHash chainIdHash) {
- return new PlainTransactionBuilder().chainIdHash(chainIdHash);
- }
- @ApiAudience.Public
- public static DeployContractTransaction.WithNothing newDeployContractBuilder() {
- return new DeployContractTransactionBuilder();
- }
- @ApiAudience.Public
- public static ReDeployContractTransaction.WithNothing newReDeployContractBuilder() {
- return new ReDeployContractTransactionBuilder();
- }
- @ApiAudience.Public
- public static InvokeContractTransaction.WithNothing newInvokeContractBuilder() {
- return new InvokeContractTransactionBuilder();
- }
- @ApiAudience.Public
- public static CreateNameTransaction.WithNothing newCreateNameTxBuilder() {
- return new CreateNameTransactionBuilder();
- }
- @ApiAudience.Public
- public static UpdateNameTransaction.WithNothing newUpdateNameTxBuilder() {
- return new UpdateNameTransactionBuilder();
- }
- @ApiAudience.Public
- public static StakeTransaction.WithNothing newStakeTxBuilder() {
- return new StakeTransactionBuilder();
- }
- @ApiAudience.Public
- public static UnstakeTransaction.WithNothing newUnstakeTxBuilder() {
- return new UnstakeTransactionBuilder();
- }
- @ApiAudience.Public
- public static VoteTransaction.WithNothing newVoteTxBuilder() {
- return new VoteTransactionBuilder();
- }
- @NonNull
- ChainIdHash chainIdHash;
- @NonNull
- AccountAddress sender;
- @NonNull
- AccountAddress recipient;
- @NonNull
- Aer amount;
- long nonce;
- @NonNull
- Fee fee;
- @NonNull
- BytesValue payload;
- @NonNull
- TxType txType;
- // remove those withers when Wither of lombok is stable.
- /**
- * Return a {@code RawTransaction} with new chain id hash.
- *
- * @param chainIdHash a chain id hash
- * @return a {@code RawTransaction} instance
- */
- public RawTransaction withChainIdHash(final ChainIdHash chainIdHash) {
- return new RawTransaction(chainIdHash, sender, recipient, amount, nonce, fee, payload, txType);
- }
- /**
- * Return a {@code RawTransaction} with new nonce.
- *
- * @param nonce an new nonce
- * @return a {@code RawTransaction} instance
- */
- public RawTransaction withNonce(final long nonce) {
- return new RawTransaction(chainIdHash, sender, recipient, amount, nonce, fee, payload, txType);
- }
- }