With #5986 we'll be moving to a dynamic encoder executor, but we should move to using alloy-sol-type's SolCall, and define the calls ahead of time with sol!. This is fine, as we only need the typed return data when we know the function we're calling ahead of time—in other ocassions, we just use the RawCallResult and handle the bytes.