Class AbstractTransaction

    • Constructor Detail

      • AbstractTransaction

        public AbstractTransaction​(AbstractTransaction.Builder builder)
        Create AbstractTransaction instance
        Parameters:
        builder - AbstractTransaction.builder
      • AbstractTransaction

        public AbstractTransaction​(Klay klaytnCall,
                                   java.lang.String type,
                                   java.lang.String from,
                                   java.lang.String nonce,
                                   java.lang.String gas,
                                   java.lang.String chainId,
                                   java.util.List<SignatureData> signatures)
        Create AbstractTransaction instance
        Parameters:
        klaytnCall - Klay RPC instance
        type - Transaction's type string
        from - The address of the sender.
        nonce - A value used to uniquely identify a sender’s transaction.
        gas - The maximum amount of gas the transaction is allowed to use.
        chainId - Network ID
        signatures - A Signature list
    • Method Detail

      • getRLPEncoding

        public abstract java.lang.String getRLPEncoding()
        Returns the RLP-encoded string of this transaction (i.e., rawTransaction).
        Returns:
        String
      • getCommonRLPEncodingForSignature

        public abstract java.lang.String getCommonRLPEncodingForSignature()
        Returns the RLP-encoded string to make the signature of this transaction.
        Returns:
        String
      • sign

        public AbstractTransaction sign​(java.lang.String keyString)
                                 throws java.io.IOException
        Signs to the transaction with a single private key. It sets Hasher default value. - signer : TransactionHasher.getHashForSignature()
        Parameters:
        keyString - The private key string.
        Returns:
        AbstractTransaction
        Throws:
        java.io.IOException
      • sign

        public AbstractTransaction sign​(java.lang.String keyString,
                                        java.util.function.Function<AbstractTransaction,​java.lang.String> signer)
                                 throws java.io.IOException
        Signs to the transaction with a single private key.
        Parameters:
        keyString - The private key string
        signer - The function to get hash of transaction.
        Returns:
        AbstractTransaction
        Throws:
        java.io.IOException
      • sign

        public AbstractTransaction sign​(AbstractKeyring keyring)
                                 throws java.io.IOException
        Signs using all private keys used in the role defined in the Keyring instance. It sets index and Hasher default value. - signer : TransactionHasher.getHashForSignature()
        Parameters:
        keyring - The Keyring instance.
        Returns:
        AbstractTransaction
        Throws:
        java.io.IOException
      • sign

        public AbstractTransaction sign​(AbstractKeyring keyring,
                                        java.util.function.Function<AbstractTransaction,​java.lang.String> signer)
                                 throws java.io.IOException
        Signs using all private keys used in the role defined in the Keyring instance.
        Parameters:
        keyring - The Keyring instance.
        signer - The function to get hash of transaction.
        Returns:
        AbstractTransaction
        Throws:
        java.io.IOException
      • sign

        public AbstractTransaction sign​(AbstractKeyring keyring,
                                        int index)
                                 throws java.io.IOException
        Signs to the transaction with a private key in the Keyring instance. It sets signer to TransactionHasher.getHashForSignature()
        Parameters:
        keyring - The Keyring instance.
        index - The index of private key to use in Keyring instance.
        Returns:
        AbstractTransaction
        Throws:
        java.io.IOException
      • sign

        public AbstractTransaction sign​(AbstractKeyring keyring,
                                        int index,
                                        java.util.function.Function<AbstractTransaction,​java.lang.String> signer)
                                 throws java.io.IOException
        Signs to the transaction with a private key in the Keyring instance.
        Parameters:
        keyring - The Keyring instance.
        index - The index of private key to use in Keyring instance.
        signer - The function to get hash of transaction.
        Returns:
        AbstractTransaction
        Throws:
        java.io.IOException
      • appendSignatures

        public void appendSignatures​(SignatureData signatureData)
        Appends signatures to the transaction.
        Parameters:
        signatureData - SignatureData instance contains ECDSA signature data
      • appendSignatures

        public void appendSignatures​(java.util.List<SignatureData> signatureData)
        Appends signatures to the transaction.
        Parameters:
        signatureData - List of SignatureData contains ECDSA signature data
      • combineSignedRawTransactions

        public abstract java.lang.String combineSignedRawTransactions​(java.util.List<java.lang.String> rlpEncoded)
        Combines signatures to the transaction from RLP-encoded transaction strings and returns a single transaction with all signatures combined. When combining the signatures into a transaction instance, an error is thrown if the decoded transaction contains different value except signatures.
        Parameters:
        rlpEncoded - A List of RLP-encoded transaction strings.
        Returns:
        String
      • getRawTransaction

        public java.lang.String getRawTransaction()
        Returns a RawTransaction(RLP-encoded transaction string)
        Returns:
        String
      • getTransactionHash

        public java.lang.String getTransactionHash()
        Returns a hash string of transaction
        Returns:
        String
      • getSenderTxHash

        public java.lang.String getSenderTxHash()
        Returns a senderTxHash of transaction
        Returns:
        String
      • getRLPEncodingForSignature

        public java.lang.String getRLPEncodingForSignature()
        Returns an RLP-encoded transaction string for making signature.
        Returns:
        String
      • fillTransaction

        public void fillTransaction()
                             throws java.io.IOException
        Fills empty optional transaction field.(nonce, gasPrice, chainId)
        Throws:
        java.io.IOException
      • compareTxField

        public boolean compareTxField​(AbstractTransaction txObj,
                                      boolean checkSig)
        Check equals txObj passed parameter and Current instance.
        Parameters:
        txObj - The AbstractTransaction Object to compare
        checkSig - Check whether signatures field is equal.
        Returns:
        boolean
      • validateOptionalValues

        public void validateOptionalValues​(boolean checkChainID)
        Checks that member variables that can be defined by the user are defined. If there is an undefined variable, an error occurs.
      • refineSignature

        public java.util.List<SignatureData> refineSignature​(java.util.List<SignatureData> signatureDataList)
        Refines the array containing signatures - Removes duplicate signatures - Removes the default empty signature("0x01", "0x", "0x") - For an empty signature array, return an array containing the default empty signature("0x01", "0x", "0x")
        Parameters:
        signatureDataList - The list of SignatureData
        Returns:
        List<String>
      • recoverPublicKeys

        public java.util.List<java.lang.String> recoverPublicKeys()
        Recovers the public key strings from "signatures" field in transaction object.

        If you want to derive an address from public key, please use Utils.publicKeyToAddress(String).

        Example :
         
         List<String> publicKeys = tx.recoverPublicKeys();
         
         
        Returns:
        List<String>
      • getKlaytnCall

        public Klay getKlaytnCall()
        Getter function for klaytnRPC
        Returns:
        Klay
      • setKlaytnCall

        public void setKlaytnCall​(Klay klaytnCall)
        Setter function for klaytnRPC
        Parameters:
        klaytnCall - Klay RPC Instance.
      • getType

        public java.lang.String getType()
        Getter function for type.
        Returns:
        String
      • getFrom

        public java.lang.String getFrom()
        Getter function for from
        Returns:
        String
      • getNonce

        public java.lang.String getNonce()
        Getter function for nonce
        Returns:
        String
      • getGas

        public java.lang.String getGas()
        Getter function for gas
        Returns:
        String
      • getChainId

        public java.lang.String getChainId()
        Getter function for chain id
        Returns:
        String
      • getSignatures

        public java.util.List<SignatureData> getSignatures()
        Getter function for signatures
        Returns:
        String
      • setType

        public void setType​(java.lang.String type)
        Setter function for type.
        Parameters:
        type - The Transaction type.
      • setFrom

        public void setFrom​(java.lang.String from)
      • setGas

        public void setGas​(java.lang.String gas)
        Setter function for gas
        Parameters:
        gas - The maximum amount of gas the transaction is allowed to use.
      • setGas

        public void setGas​(java.math.BigInteger gas)
        Setter function for gas
        Parameters:
        gas - The maximum amount of gas the transaction is allowed to use.
      • setNonce

        public void setNonce​(java.lang.String nonce)
        Setter function for nonce.
        Parameters:
        nonce - A value used to uniquely identify a sender’s transaction.
      • setNonce

        public void setNonce​(java.math.BigInteger nonce)
        Setter function for nonce.
        Parameters:
        nonce - A value used to uniquely identify a sender’s transaction.
      • setChainId

        public void setChainId​(java.lang.String chainId)
        Setter function for chain id.
        Parameters:
        chainId - A network id.
      • setChainId

        public void setChainId​(java.math.BigInteger chainId)
        Setter function for chain id.
        Parameters:
        chainId - A network id.
      • setSignatures

        public void setSignatures​(java.util.List<SignatureData> signatures)
      • getKeyType

        public int getKeyType()