Die Javascript-API/Geth-Wiki-Seiten geben an, dass die at([address])
Funktion Folgendes tut :
// initiate contract for an address
var myContractInstance = MyContract.at('0x78e97bcc5b5dd9ed228fed7a4887c0d7287344a9');
1. Was bedeutet hier "Instanziieren nach Adresse"?
2. Was ist los, wenn at
gerufen wird?
3. Soll der Adressparameter aus einem bereits bereitgestellten Vertrag oder einer neuen Adresse stammen? _ 4. Was soll zurückgegeben werden?
Wenn ich at(..)
von einer an testrpc angeschlossenen Geth-Konsole verwendet habe, gibt es undefined
. Sollte dies der Fall sein? Befolgen Sie beispielsweise das Beispiel in dieser Frage , wobei „testrpc“ folgendermaßen eingerichtet ist:
testrpc -a 1000
geth attach rpc:http://localhost:8545
BEARBEITEN:
Hinweis, ich glaube, ich habe den Quellcode gefunden :
/**
* Should be called to get access to existing contract on a blockchain
*
* @method at
* @param {Address} contract address (required)
* @param {Function} callback {optional)
* @returns {Contract} returns contract if no callback was passed,
* otherwise calls callback function (err, contract)
*/
ContractFactory.prototype.at = function (address, callback) {
var contract = new Contract(this.eth, this.abi, address);
// this functions are not part of prototype,
// because we dont want to spoil the interface
addFunctionsToContract(contract);
addEventsToContract(contract);
if (callback) {
callback(null, contract);
}
return contract;
};
/**
* Should be called to create new contract instance
*
* @method Contract
* @param {Array} abi
* @param {Address} contract address
*/
var Contract = function (eth, abi, address) {
this._eth = eth;
this.transactionHash = null;
this.address = address;
this.abi = abi;
};
Diese Funktion erstellt ein neues MyContract
Objekt, bei dem das Adressfeld auf das Argument gesetzt ist.
Sie sollten die Adresse eines bereits bereitgestellten Vertrags angeben.
Die Funktion gibt ein Objekt zurück, mit dem Sie ABI-spezifizierte Funktionen des Vertrags aufrufen können.
Es gibt keine Nebeneffekte, und die Methode überprüft nicht, ob der von Ihnen übergebene Vertrag tatsächlich vorhanden ist. Wenn nicht, erhalten Sie Fehler, wenn Sie versuchen, die Methoden des Vertrags tatsächlich aufzurufen.
Mikko Ohtamaa