KCC-01 Discussion Thread

I opened this discussion thread because I have a few comments and questions about KCC-01:

  1. The spec says that “An int invocation argument uses PushMinimal over its minimal ScriptNum representation”. This is incompatible with script builder’s builder.add_i64method. What’s the rationale for that?

  2. The spec says “bool - Exactly 00 for false or 01 for true”" - This is also incompatible with the script builder that by default represents false with [] (the empty vector).

  3. "An array of records is permitted only when every recursively lowered leaf field has a positive fixed payload width.

    When decoding an array of records, every grouped field payload MUST decode to the same element count. For a fixed-length record array, that count MUST equal its declared length.

    This restriction applies only to arrays of records. A record outside an array MAY contain otherwise supported variable-width fields; recursive lowering gives each leaf field its own push." - I think it’s unclear what “This restriction” refers to. If I understand correctly it refers to the first paragraph, but we might want to clarify it.

Also, a general comment about PushMinimal: I don’t think PushMinimal should be part of the standard. Instead, we should focus on the places where PushMinimal is forbidden (invocations, states, etc).

1 Like