1## Message with recursive types 2 3## VALID_HEADER includes a LENGTH Header and LENGTH Body 4VALID_HEADER method_call 5 6REQUIRED_FIELDS 7 8ALIGN 8 9END_LENGTH Header 10START_LENGTH Body 11 12# Everything is inside a dict 13TYPE DICT 14LENGTH Dict1 15START_LENGTH Dict1 16 17# first dict entry is an array of array of uint32 18STRING 'mega-uint-array' 19TYPE ARRAY 20TYPE ARRAY 21TYPE ARRAY 22TYPE UINT32 23LENGTH Array1 24START_LENGTH Array1 25 26LENGTH Array1_1 27START_LENGTH Array1_1 28UINT32_ARRAY { 1, 2, 3, 4, 5} 29UINT32_ARRAY { 2, 3, 4, 5, 1} 30UINT32_ARRAY { 3, 4, 5, 1, 2} 31END_LENGTH Array1_1 32 33LENGTH Array1_2 34START_LENGTH Array1_2 35UINT32_ARRAY { 4, 5, 6, 7, 8} 36UINT32_ARRAY { 5, 6, 7, 8, 4} 37END_LENGTH Array1_2 38 39END_LENGTH Array1 40 41# second dict entry is an array of strings 42STRING 'string-array' 43TYPE ARRAY 44TYPE STRING 45STRING_ARRAY { 'a', 'string', 'array'} 46 47# third dict entry is another dict 48STRING 'nested-dict' 49TYPE DICT 50LENGTH Dict2 51START_LENGTH Dict2 52 53STRING 'string' 54TYPE STRING 55STRING 'a deeply nested string' 56 57STRING 'super-nested-dict' 58TYPE DICT 59LENGTH Dict3 60START_LENGTH Dict3 61 62STRING 'double-array' 63TYPE ARRAY 64TYPE DOUBLE 65DOUBLE_ARRAY {1.0, 2.0, 3.0} 66 67STRING 'dict-array' 68TYPE ARRAY 69TYPE DICT 70LENGTH Array2 71START_LENGTH Array2 72 73LENGTH Dict4 74START_LENGTH Dict4 75STRING 'key4' 76TYPE BYTE 77BYTE '4' 78END_LENGTH Dict4 79 80LENGTH Dict5 81START_LENGTH Dict5 82STRING 'key5' 83TYPE BYTE 84BYTE '5' 85END_LENGTH Dict5 86 87END_LENGTH Array2 88 89STRING 'boolean' 90TYPE BOOLEAN 91BOOLEAN false 92 93END_LENGTH Dict3 94 95END_LENGTH Dict2 96 97END_LENGTH Dict1 98 99END_LENGTH Body 100