Replies: 8 comments 3 replies
-
The file service overcomes the 6KiB signed transaction size limit. Some smart contracts require 48KiB of init code. So we cannot get rid of the file service use completely. |
Beta Was this translation helpful? Give feedback.
-
Perhaps the way to resolve this would be to abstract to file deploying from the end developer, so they only have one API call rather than many. This way, you can still bypass the 6KiB transaction size and still deliver a better developer experience. |
Beta Was this translation helpful? Give feedback.
-
The file service is a necessary step, however the chain of transactions (file create, file append, contract create) can be abstracted by the SDKs. Proposed improvement raised on Java, Go and JavaScript SDKs below: hashgraph/hedera-sdk-java#839 |
Beta Was this translation helpful? Give feedback.
-
@wensheng if you agree with the above, we can create a HIP to drive the modifications to the SDK. |
Beta Was this translation helpful? Give feedback.
-
Bugs for this same issue but using HIP-410 facilities - hiero-ledger/hiero-sdk-go#455 |
Beta Was this translation helpful? Give feedback.
-
@wensheng just closing the loop here. The ContractCreateFlow was implemented and has simplified the process for users. |
Beta Was this translation helpful? Give feedback.
-
I'd like to say that in addition to the ContractCreateFlow - that still uses HFS under the hood - you can technically create a smart contract via EthereumTransactions without using HFS. As Danno already mentioned, you are limited to the maximum size of a Hedera transaction (6Kb, signatures included) but you can do it. |
Beta Was this translation helpful? Give feedback.
-
Abstract
User should be able to create smart contract on Hedera by uploading bytecode directly without first uploading it to Hedera File Service (HFS).
Motivation
At present, to create smart contract on Hedera, one need to upload smart contract bytecode to HFS, get a a FileID back. If the bytecode is large, the user additionally has to perform FileAppendTransaction. Then the user can create smart contract (with
setBytecodeFileId
) using the returned FileId. This poses usability issue and hamper the adoption of Hedera smart contract.Rationale
User stories
Beta Was this translation helpful? Give feedback.
All reactions