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