Class ApplicationBaseTransactionBuilder<T extends ApplicationBaseTransactionBuilder<T>>

    • Constructor Detail

      • ApplicationBaseTransactionBuilder

        protected ApplicationBaseTransactionBuilder()
        All application calls use this type, so no need to make this private. This constructor should always be called.
    • Method Detail

      • onCompletion

        protected T onCompletion​(Transaction.OnCompletion onCompletion)
        This is the faux application type used to distinguish different application actions. Specifically, OnCompletion specifies what side effects this transaction will have if it successfully makes it into a block.
      • args

        public T args​(List<byte[]> args)
        ApplicationArgs lists some transaction-specific arguments accessible from application logic.
      • argsBase64Encoded

        public T argsBase64Encoded​(List<String> args)
        ApplicationArgs lists some transaction-specific arguments accessible from application logic.
        Parameters:
        args - List of Base64 encoded strings.
      • holdings

        public T holdings​(List<ApplicationBaseTransactionBuilder.HoldingReference> holdings)
        Set asset holding references that need to be accessible in this transaction. Holdings references allow the transaction to access asset balances of specific accounts. Note: Holdings references are only available when useAccess=true as they cannot be represented in legacy transaction format.
      • locals

        public T locals​(List<ApplicationBaseTransactionBuilder.LocalsReference> locals)
        Set local state references that need to be accessible in this transaction. Locals references allow the transaction to access local state of specific accounts in specific apps. Note: Locals references are only available when useAccess=true as they cannot be represented in legacy transaction format.
      • useAccess

        public T useAccess​(boolean useAccess)
        Enable or disable translation of foreign references into the access field. When useAccess=true: - All foreign references (accounts, foreignApps, foreignAssets, boxReferences) are translated into a unified access field instead of using separate legacy fields - You can still use the same methods (accounts(), foreignApps(), etc.) - they will be translated - Advanced features (holdings(), locals()) are also available - Compatible with networks that support the access field consensus upgrade When useAccess=false (default): - Uses legacy separate fields (accounts, foreignApps, foreignAssets, boxReferences) - No translation occurs - references are placed directly in their respective fields - Maintains backward compatibility with pre-consensus upgrade networks - Advanced features (holdings(), locals()) are not allowed This design allows easy migration - just add .useAccess(true) to enable access field mode while keeping your existing foreign reference method calls.
        Parameters:
        useAccess - true to translate references to access field, false to use legacy fields
        Returns:
        this builder instance
      • rejectVersion

        public T rejectVersion​(Long rejectVersion)
        Set the reject version for the application call. The lowest application version for which this transaction should immediately fail. 0 indicates that no version check should be performed.
        Parameters:
        rejectVersion - the minimum application version to reject
        Returns:
        this builder instance