Насколько мне известно об этом предмете, ABI - это интерфейс, который вы используете для связи со смарт-контрактом, который находится в блокчейне.
Это означает, что когда вы вносите изменения в контракт, вам нужно будет повторно развернуть его, или ваше приложение больше не знает, как взаимодействовать с контрактом.
Помимо того, что контракты не предназначены для изменения, после развертывания следует изменить только состояние данных, содержащихся в контракте.
См. Эту ссылку для получения дополнительной информации о последнем утверждении:
https://ethereum.stackexchange.com/questions/11938/how-to-update-a-deployed-smart-contract