Derzeit sind die Token dieses Vertrags gesperrt. Ich möchte herausfinden können, wann die Token dieses Vertrags in meinem Python-Skript übertragbar geworden sind. Ich verwende web3.py für diese Arbeit.
Link zum Vertrag: https://etherscan.io/address/0x971d048e737619884f2df75e31c7eb6412392328#code
Es scheint ein transferLock
Argument im Vertrag zu geben, das die Übertragung der Token verhindert. Es gibt auch wenige andere Argumente und Funktionen, die etwas Ähnliches zu tun scheinen.
Kann mir jemand dabei helfen herauszufinden, wie ich feststellen kann, wann der Vertragsinhaber die Tokens entsperrt hat?
Es scheint zwei verschiedene Schlösser in diesem Vertrag zu geben.
Die erste ist eine globale Sperre namens transferLock
, die in diesem Modifikator verwendet wird:
modifier canTransfer() {
if (msg.sender != owner) {
require(!transferLock);
}
_;
}
Auf jede Funktion mit dem canTransfer
Modifikator kann der Eigentümer nur zugreifen, wenn transferLock = true
.
Es gibt eine weitere Eigenschaft unlocked
, die auf dem Gruppenobjekt lebt und überprüfen soll, ob die Token in dieser Gruppe gesperrt sind. Ich sehe jedoch keine relevante Verwendung.
Außerdem scheint es einen Fehler im Code für diese Eigenschaft zu geben:
function relockGroup(uint256 groupNumber) public onlyOwner returns(bool success) {
groups[groupNumber].unlocked = true;
return true;
}
Fühlt sich an, als ob diese Funktion gesetzt werden sollte groups[groupNumber].unlocked = false
, und ich sehe keine Möglichkeit, eine Gruppe "zurückzusperren", nachdem sie entsperrt wurde.
Diese beiden Eigenschaften können hier auf Etherscan abgefragt oder gefunden werden:
https://etherscan.io/address/0x971d048e737619884f2df75e31c7eb6412392328#readContract
transferLock
. Sie sollten den Code teilen, wie weit Sie gekommen sind, und dann können wir Ihnen leicht helfen, den Rest auszufüllen.transferLock
True ist, sollte also nicht in False geändert werden können, ist das nicht das, was unveränderlich bedeutet?setGlobalLock(bool value)
, die es dem Eigentümer ermöglicht, den Sperrwert entweder auf true
oder zu setzen false
. Der Vertragscode ist unveränderlich, aber die darin enthaltenen Variablen können den Status ändern, sonst wäre es keine sehr nützliche Plattform zum Schreiben von Programmen, oder?
Schnitzer
ste123