For a transaction of type TransactionType.Create, tx, the contract ID is
sha256(0x4655454C ++ tx.data.salt ++ root(tx.data.witnesses[bytecodeWitnessIndex].data) ++ root_smt(tx.storageSlots)),
where root is the Merkle root of the binary Merkle tree with
each leaf being 16KiB of instructions, and root_smt is the
Sparse Merkle tree root of the provided key-value pairs.
If the bytecode is not a multiple of 16 KiB, the final leaf should be zero-padded rounding up to the nearest multiple
of 8 bytes.