Distribuisci & Esegui Contratti Proxy

Remix IDE has the functionality to assist in the handling of proxy contracts that use the UUPS pattern.

Un contratto UUPS proxy è il lato di implementazione di un ERC1967Proxy.

Once you have deployed a UUPS implementation contract, Remix will deploy an ERC1967 with your implementation contract’s address.

Per interagire con le funzioni del contratto di implementazione, utilizza l’istanza distribuita dell’istanza ERC1967 non presente nel contratto di implementazione.

When it’s time to upgrade your contract, Remix has a UI for this.

Per provarlo, è necessario ottenere un contratto proxy. Vai su wizard.openzeppelin.com e seleziona un contratto. Quindi, nella sezione Aggiornabilità, seleziona l’opzione UUPS. Poi, copia e incolla il file in Remix. Compila il file e vai su Distribuisci & Esegui.

Distribuzione

Quando si seleziona un contratto UUPS nella casella di selezione dei contratti di Distribuisci & Esegui, si vedranno alcune caselle di controllo sotto il pulsante Distribuisci:

Seleziona la casella Distribuisci con Proxy. Verranno create due transazioni: una per l’implementazione (il tuo contratto) e l’altra per il contratto proxy ERC1967. Si otterranno due modali da controllare:

e poi

Se si sta eseguendo la distribuzione sulla Macchina Virtuale di Remix, queste finestre compariranno una dopo l’altra. Se si è connessi alla rete principale o a una rete di prova pubblica, il secondo messaggio apparirà dopo che la prima transazione è stata eseguita.

Dopo che il contratto proxy ERC1967 è stato distribuito, nella sezione Contratti Distribuiti, si vedranno due istanze distribuite.

Per interagire con il proprio contratto di implementazione NON utilizzare l’istanza del proprio contratto. Si deve invece usare il Proxy ERC1967. Il proxy avrà tutte le funzioni della tua implementazione.

Aggiornamento

Per eseguire l’aggiornamento, seleziona la casella Aggiornamento con Proxy e trascina il cursore verso il basso per visualizzare le opzioni:

Dovrai usare l’ultimo contratto ERC1967 distribuito, oppure inserire l’indirizzo del contratto ERC1967 che vuoi utilizzare.