Skip to content

Refactor TransferTransaction to extend AbstractTokenTransferTransaction #404

@manishdait

Description

@manishdait

Problem

The current TransferTransaction supports only add_token_transfer and add_nft_transfer for token and NFT transfers. Unlike other SDKs (Java, JS), it does not support the following methods:

  • addTokenTransferWithDecimals()
  • addApprovedTokenTransfer()
  • addApprovedTokenTransferWithDecimals()
  • addApprovedNftTransfer()
  • addApprovedHbarTransfer()

Solution

  • Refactor TransferTransaction to extend AbstractTokenTransferTransaction, enabling reuse of existing logic for:

    • _addTokenTransfer()
    • _addNftTransfer()
  • Add a new method in TransferTransaction to support:

    • addTokenTransferWithDecimals()
    • addApprovedTokenTransfer()
    • addApprovedTokenTransferWithDecimals()
    • addApprovedNftTransfer()
    • addApprovedHbarTransfer()
  • Create unit and integration tests for all updated and new methods to ensure correctness and reliability.

Alternatives

  • Implement the additional methods directly in AbstractTokenTransferTransaction so they can be shared between TransferTransaction and TokenAirdrop:
    • addTokenTransferWithDecimals()
    • addApprovedTokenTransfer()
    • addApprovedTokenTransferWithDecimals()
    • addApprovedNftTransfer()

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions