Aktualisierung des Inhalts eines Smart Contracts

Ich habe einen Smart Contract. Ich möchte den Inhalt (Namensliste) dieses Vertrags aktualisieren, sagen wir alle 5 Minuten. Die Namen ändern sich nach dieser eingestellten Dauer. Mein Ansatz besteht darin, eine Instanz dieses Vertrags (neue Adresse) zu erstellen und dann die neuen Namen zu schreiben. Ich halte dies jedoch für nicht effizient. Ist es möglich, Dinge zu aktualisieren, ohne die Adresse ändern oder eine neue Instanz erstellen zu müssen? Gibt es einen besseren Weg, dies zu tun?

Antworten (1)

Definieren Sie in Ihrem Vertrag einen Setter:

pragma solidity ^0.4.24;

contract Names {

 string[] names;

 function setname(uint i, string s)public returns(bool){

     names[i]=s;
     return true;
 }
}

und in Ihrem Frontend sagen wir, Sie verwenden Javascript nach jeweils 5 Minuten, in denen Sie die setname-Funktion wie folgt aufrufen:

elapsed5minutes();
var abi=[//your abi array];
    var contractAddress = "//your contract address";
    var contract = web3.eth.contract(abi).at(contractAddress);
     contract.setname.sendTransaction(3,"Brian",{{from:web3.eth.accounts[0]}},function (error, result){   if(!error){
                            console.log(result);
                        } else{
                            console.log(error);
                        }
                });

So behalten Sie die Interaktion mit derselben Vertragsinstanz bei und vermeiden, dass Sie mehr Gas für die Bereitstellung einer neuen Instanz bezahlen.

Danke. das war wirklich hilfreich. Ich bin ziemlich neu in Solidität.