Некоторые способы внесения изменений в смарт-контракты после их развёртывания:
- Миграция контракта. 12 Развёртывается новый смарт-контракт с обновлённой бизнес-логикой, затем копируются состояния из старого контракта в новый, после чего меняется адрес смарт-контракта на новый. 1
- Разделение данных. 1 Используются два смарт-контракта: один содержит бизнес-логику, а другой — данные контракта. 1 Пользователи взаимодействуют напрямую с логическим контрактом, а он вызывает контракт с данными, где хранятся все переменные состояния. 1
- Прокси-метод. 1 Используется неизменный прокси-контракт, который хранит данные, и обновляемый логический контракт. 1 Пользователь взаимодействует напрямую с неизменным прокси-контрактом, а этот контракт делегирует вызовы логическому контракту. 1
- Алмазный метод. 1 В этом методе обновления обрабатываются гранью под названием DiamondCutFacet, с её помощью можно добавлять, удалять или заменять функциональные возможности. 1
Также стороны смарт-контракта могут заключить дополнительное соглашение и новый смарт-контракт, главное — указать в соглашении ссылку на актуальный смарт-контракт. 3