At some point in my contract I have a public, not Constant function that has more than 16 arguments (24 to be exact). I'm getting an error saying
Stack too deep. Try removing local variables
I can't split the function into 2. This would result in 2 transactions, which would not work for what I want to do.
My idea was to pass in a dynamic-size byte array with all of the arguments, and then parse thru that array, extract each argument and do the proper type casting. However, I'm struggling with the implementation.
Is there a simpler way to do this? This seems like a problem that other people would run into. I have thought of passing in a big struct, but I understand you can't call a function externally with internal types.