ContractCreateFlow() API to create the file storing the bytecode and contract in a single step.
The constructor will be executed using the given amount of gas, and any unspent gas will be refunded to the paying account. Constructor inputs are passed in the constructorParameters.
If this constructor stores information, it is charged gas to store it. There is a fee in hbars to maintain that storage until the expiration time, and that fee is added as part of the transaction fee.
Solidity SupportThe latest version of Solidity is supported on all networks (v0.8.9).
Smart Contract State Size and Gas LimitsThe max contract key value pairs are 16,384,000 (~100 MB). The system gas throttle is 15 million gas per second. Contract call and contract create are throttled at 8 million gas per second.
Admin Key Support for ContractsWith HIP-904, contracts now support Admin Key settings. Set an Admin Key during the
ContractCreate transaction to manage and update token properties. For frictionless-airdrop enabled contracts, set maxAutoAssociations during the ContractCreate transaction, ensuring that balance and associations can be managed with a valid Admin Key.- The client operator account is required to sign the transaction.
- The admin key, if specified.
- The key of the autorenewal account, if specified.
- Please see the transaction and query fees table for the base transaction fee.
- Please use the Hedera fee estimator to estimate the cost of your transaction fee.
ContractCreateFlow()
The ContractCreateFlow()streamlines the creation of a contract by taking the bytecode of the contract and creating the file on Hedera to store the bytecode for you.
First, a FileCreateTransaction() will be executed to create a file on Hedera to store the specified contract bytecode. Then, the ContractCreateTransaction() will be executed to create the contract instance on Hedera. Lastly, a FileDeleteTransaction() will be executed to remove the file.
The response will return the contract create transaction information like the new contract ID. You will not get the ID of the file that was created that stored your contract bytecode. If you would like to know the file ID of your contract bytecode, you can create a file and use the ContractCreateTransaction() API directly.
Methods
Note: Please refer to ContractCreateTransaction() for a complete list of applicable methods.