Причина, по которой он может работать в более высоких версиях, заключается в том, что у вас есть функция constructor ().Если вы хотите, чтобы этот контракт работал в предыдущих версиях, создайте функцию конструктора как функцию ethertransfer () также, когда у вас есть ошибки возврата, скорее всего, это произойдет из-за условий, которые вы написали в операторах require ().Требование Заявление также принимает второй параметр строку, которую вы можете поместить описание.Тщательно проверяйте все требуемые заявления, другой вариант, который я настоятельно рекомендую, - это использовать remix browser ide.Там вы можете выполнить отладку с помощью инструмента отладки, так как он поможет вам войти и перешагнуть поток транзакций.Так что в конце будет очень легко определить основную причину проблемы.