FileCreate/FileUpdate automatic chunking #835
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.Solution
Refactor
FileCreateTransaction
andFileUpdateTransaction
to share the newpub trait FileTransaction
which should include anappend
method to store additional transactions when the content exceeds 1024 kB. Refer to FileAppendTransaction for an example of how to chunk the content.Implementation
pub trait FileTransaction
with append method (for new transactions).FileTransactionBase
that implementsFileTransaction
withset_contents
method to handle large files by creating multiple transactions.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: