@@ -720,112 +720,30 @@ func isPrimitiveTypeValid(primitiveType string) bool {
720
720
primitiveType == "bool" ||
721
721
primitiveType == "bool[]" ||
722
722
primitiveType == "string" ||
723
- primitiveType == "string[]" {
724
- return true
725
- }
726
- if primitiveType == "bytes" ||
723
+ primitiveType == "string[]" ||
724
+ primitiveType == "bytes" ||
727
725
primitiveType == "bytes[]" ||
728
- primitiveType == "bytes1" ||
729
- primitiveType == "bytes1[]" ||
730
- primitiveType == "bytes2" ||
731
- primitiveType == "bytes2[]" ||
732
- primitiveType == "bytes3" ||
733
- primitiveType == "bytes3[]" ||
734
- primitiveType == "bytes4" ||
735
- primitiveType == "bytes4[]" ||
736
- primitiveType == "bytes5" ||
737
- primitiveType == "bytes5[]" ||
738
- primitiveType == "bytes6" ||
739
- primitiveType == "bytes6[]" ||
740
- primitiveType == "bytes7" ||
741
- primitiveType == "bytes7[]" ||
742
- primitiveType == "bytes8" ||
743
- primitiveType == "bytes8[]" ||
744
- primitiveType == "bytes9" ||
745
- primitiveType == "bytes9[]" ||
746
- primitiveType == "bytes10" ||
747
- primitiveType == "bytes10[]" ||
748
- primitiveType == "bytes11" ||
749
- primitiveType == "bytes11[]" ||
750
- primitiveType == "bytes12" ||
751
- primitiveType == "bytes12[]" ||
752
- primitiveType == "bytes13" ||
753
- primitiveType == "bytes13[]" ||
754
- primitiveType == "bytes14" ||
755
- primitiveType == "bytes14[]" ||
756
- primitiveType == "bytes15" ||
757
- primitiveType == "bytes15[]" ||
758
- primitiveType == "bytes16" ||
759
- primitiveType == "bytes16[]" ||
760
- primitiveType == "bytes17" ||
761
- primitiveType == "bytes17[]" ||
762
- primitiveType == "bytes18" ||
763
- primitiveType == "bytes18[]" ||
764
- primitiveType == "bytes19" ||
765
- primitiveType == "bytes19[]" ||
766
- primitiveType == "bytes20" ||
767
- primitiveType == "bytes20[]" ||
768
- primitiveType == "bytes21" ||
769
- primitiveType == "bytes21[]" ||
770
- primitiveType == "bytes22" ||
771
- primitiveType == "bytes22[]" ||
772
- primitiveType == "bytes23" ||
773
- primitiveType == "bytes23[]" ||
774
- primitiveType == "bytes24" ||
775
- primitiveType == "bytes24[]" ||
776
- primitiveType == "bytes25" ||
777
- primitiveType == "bytes25[]" ||
778
- primitiveType == "bytes26" ||
779
- primitiveType == "bytes26[]" ||
780
- primitiveType == "bytes27" ||
781
- primitiveType == "bytes27[]" ||
782
- primitiveType == "bytes28" ||
783
- primitiveType == "bytes28[]" ||
784
- primitiveType == "bytes29" ||
785
- primitiveType == "bytes29[]" ||
786
- primitiveType == "bytes30" ||
787
- primitiveType == "bytes30[]" ||
788
- primitiveType == "bytes31" ||
789
- primitiveType == "bytes31[]" ||
790
- primitiveType == "bytes32" ||
791
- primitiveType == "bytes32[]" {
792
- return true
793
- }
794
- if primitiveType == "int" ||
726
+ primitiveType == "int" ||
795
727
primitiveType == "int[]" ||
796
- primitiveType == "int8" ||
797
- primitiveType == "int8[]" ||
798
- primitiveType == "int16" ||
799
- primitiveType == "int16[]" ||
800
- primitiveType == "int32" ||
801
- primitiveType == "int32[]" ||
802
- primitiveType == "int64" ||
803
- primitiveType == "int64[]" ||
804
- primitiveType == "int96" ||
805
- primitiveType == "int96[]" ||
806
- primitiveType == "int128" ||
807
- primitiveType == "int128[]" ||
808
- primitiveType == "int256" ||
809
- primitiveType == "int256[]" {
728
+ primitiveType == "uint" ||
729
+ primitiveType == "uint[]" {
810
730
return true
811
731
}
812
- if primitiveType == "uint" ||
813
- primitiveType == "uint[]" ||
814
- primitiveType == "uint8" ||
815
- primitiveType == "uint8[]" ||
816
- primitiveType == "uint16" ||
817
- primitiveType == "uint16[]" ||
818
- primitiveType == "uint32" ||
819
- primitiveType == "uint32[]" ||
820
- primitiveType == "uint64" ||
821
- primitiveType == "uint64[]" ||
822
- primitiveType == "uint96" ||
823
- primitiveType == "uint96[]" ||
824
- primitiveType == "uint128" ||
825
- primitiveType == "uint128[]" ||
826
- primitiveType == "uint256" ||
827
- primitiveType == "uint256[]" {
828
- return true
732
+ // For 'bytesN', 'bytesN[]', we allow N from 1 to 32
733
+ for n := 1 ; n <= 32 ; n ++ {
734
+ // e.g. 'bytes28' or 'bytes28[]'
735
+ if primitiveType == fmt .Sprintf ("bytes%d" , n ) || primitiveType == fmt .Sprintf ("bytes%d[]" , n ) {
736
+ return true
737
+ }
738
+ }
739
+ // For 'intN','intN[]' and 'uintN','uintN[]' we allow N in increments of 8, from 8 up to 256
740
+ for n := 8 ; n <= 256 ; n += 8 {
741
+ if primitiveType == fmt .Sprintf ("int%d" , n ) || primitiveType == fmt .Sprintf ("int%d[]" , n ) {
742
+ return true
743
+ }
744
+ if primitiveType == fmt .Sprintf ("uint%d" , n ) || primitiveType == fmt .Sprintf ("uint%d[]" , n ) {
745
+ return true
746
+ }
829
747
}
830
748
return false
831
749
}
0 commit comments