NamedByHash - corda

corda / net.corda.core.contracts / NamedByHash

# NamedByHash

`interface NamedByHash`

Implemented by anything that can be named by a secure hash value (e.g. transactions, attachments).

### Properties

#### id | `abstract val id: SecureHash`

### Inheritors

#### Attachment | An attachment is a ZIP (or an optionally signed JAR) that contains one or more files. Attachments are meant to contain public static data which can be referenced from transactions and utilised from contracts. Good examples of how attachments are meant to be used include: `interface Attachment : NamedByHash`
#### BaseTransaction | An abstract class defining fields shared by all transaction types in the system. `abstract class BaseTransaction : NamedByHash`
#### MaybeSerializedSignedTransaction | In the words of Matt working code is more important then pretty code. This class that contains code that may be serialized. If it were always serialized then the local disk fetch would need to serialize then de-serialize which wastes time. However over the wire we get batch fetch items serialized. This is because we need to get the exact length of the objects to pack them into the 10MB max message size buffer. We do not want to serialize them multiple times so it's a lot more efficient to send the byte stream. `class MaybeSerializedSignedTransaction : NamedByHash`
#### TransactionWithSignatures | An interface for transactions containing signatures, with logic for signature verification. `interface TransactionWithSignatures : NamedByHash`