После развертывания контракта вы не сможете его изменить, если у вас нет какого-либо механизма для этого. Если ваш текущий контракт не имеет этого, вы ничего не можете сделать. Однако, для дальнейшего использования, вы можете попробовать что-то вроде этого:
contract SomeContract {
address public owner;
address public currentContract;
function SomeContract(address initContract){
currentVersion = initContract;
owner = msg.sender;
}
function update(address newAddress){
if(msg.sender != owner) throw;
currentVersion = newAddress;
}
function myFunction(){
currentContract.delegatecall(msg.data)
}
}