Laut ERC-721-Schnittstelle scheint die Funktion safeTransferFrom überlastet zu sein:
function safeTransferFrom(address _from, address _to, uint256 _tokenId) public;
function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) public;
Warum so? Irgendwelche Ideen? Vielen Dank!
Der eine ohne _data
sendet keine Daten, wenn er den anderen Vertrag aufruft. (Es sendet eine Bytefolge der Länge Null.)
Der mit _data
tut.
Beachten Sie aus dem ERC-721-Standardentwurf die Codekommentare in der bereitgestellten Schnittstelle.
Speziell für die safeTransferFrom
Funktion ohne den 4. Parameter:
/// @dev This works identically to the other function with an extra data parameter,
/// except this function just sets data to ""
Ihre Drei-Parameter-Funktion sollte also genau dasselbe tun wie die Vier-Parameter-Funktion, aber ""
als Daten übergeben.
AnAllergyToAnalogy
onERC721Received(address _from, uint256 _tokenId, bytes data)
. Wenn Sie nur zwei bestehen, schlägt die Transaktion fehl.Benutzer19510
AnAllergyToAnalogy
Benutzer19510