code: func wrapArray(stringKind string, innerLen int, innerMapping string) (string, []string) {
  	remainder := stringKind[innerLen:]
  	//find all the sizes
  	matches := regexp.MustCompile(`\[(\d*)\]`).FindAllStringSubmatch(remainder, -1)
  	parts := make([]string, 0, len(matches))
  	for _, match := range matches {
  		//get group 1 from the regex match
  		parts = append(parts, match[1])
  	}
  	return innerMapping, parts
  }
docs: // Helper function for the binding generators.
  // It reads the unmatched characters after the inner type-match,
  //  (since the inner type is a prefix of the total type declaration),
  //  looks for valid arrays (possibly a dynamic one) wrapping the inner type,
  //  and returns the sizes of these arrays.
  //
  // Returned array sizes are in the same order as solidity signatures; inner array size first.
  // Array sizes may also be "", indicating a dynamic array.