FileCreate/FileUpdate automatic chunking #381
Labels
enhancement
New feature or request
good first issue
Issues which are ideal for a first time or new project contributor.
hacktoberfest
Issues shown by lists for the Hacktoberfest and made for newcomers to do the first contribution.
🆕🐥 First Timers Only
This issue is reserved for people who have never contributed to Hedera or any open source project in general.
We know that creating a pull request (PR) is a major barrier for new contributors.
The goal of this issue and all other issues labeled by 'good first issue' is to help you make your first contribution to Hedera.
👾 Description of the issue
When creating or updating a file using the
FileCreateTransaction
orFileUpdateTransaction
, if the contents are too large for a single transaction, aFileAppendTransaction
is required to be created in addition to theFileCreate
/FileUpdate
.FileAppendTransaction
, on the other hand, can handle a large content because it does chunking of that content internally. It would be good to have FileCreate and FileUpdate to have this same functionality. This would allow for a single transaction to create or update a file with a large content.Proposed Solution:
Refactor
FileCreateTransaction
andFileUpdateTransaction
to share the newprotocol FileTransaction
which should include anappend(_ transaction: Transaction)
method to store additional transactions when the content exceeds 1024 kB. Refer to FileAppendTransaction for an example of how to chunk the content.Implementation:
protocol FileTransaction
FileTransactionBase
that implementsFileTransaction
FileCreateTransaction
andFileUpdateTransaction
to implementFileTransaction
📋 Step by step guide to do a contribution
If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow. More information and concrete samples for shell commands for each step can be found in our CONTRIBUTING.md file.
A more detailed general documentation of the GitHub PR workflow can be found here.
sign-off
information to the commit to accept the "Developer Certificate of Origin" (https://developercertificate.org). More details can be found in our CONTRIBUTING.md🎉 Contribute to Hacktoberfest
Solve this issue as part of the Hacktoberfest event and get a chance to receive cool goodies like a T-Shirt. 🎽
🤔 Additional Information
If you have any questions, just ask us directly in this issue by adding a comment. You can join our community chat at Discord. A general manual about open-source contributions can be found here.
The text was updated successfully, but these errors were encountered: