Data for SSZ Serialization are represented by one or a combination of these Types:
Uint8, Uint16, Uint32, Uint64, Uint128, Uint256
Bit, 0 or 1, True or False
"Fixed Length" sequence of elements of same **Type** (homogeneous)
"Variable Length" sequence of elements of the same **Type** (homogenous)
Heterogeneous ordered collection of elements
A "Union Type" containing SSZ Types
A Uint256 that represents the
Bytes32 hash_tree_root of a nested merkle tree
All SSZ Types have a default "zeroed" value
Default values are recursive; elements in composite types such as containers are initialized with their respective default initializations
An SSZ object is called zeroed (and thus, is_zero(object) returns true) if it is equal to the default value for that type.
null
type is only legal as the first type in a union subtype (i.e. with type index zero).
var a: Type<boolean>
var b: Type<uint8>
var c: Type<uint16>
var d: Type<Vector<byte, 4>>
a.defaultValue = false
b.defaultValue = 0
c.defaultValue = 0
d.defaultValue = 0000