Ich bin auf diese Herausforderung gestoßen, als ich mit einem Smart Contract interagierte, den ich im Polygon Amoy-Testnetz bereitgestellt hatte. Es gibt zwei Funktionen für safeTransferFrom. Dies ist die bevorzugte Methode zum Verschieben eines ERC-721 zwischen zwei Wallets.
- safeTransferFrom(from: address, to: address, tokenId: uint256)
- safeTransferFrom(from: address, to: address, tokenId: uint256, _data: bytes)
In meinem Nethereum C#-Projekt habe ich zum ersten Mal mit der überladenen Funktion „safeTransferFrom“ wie folgt gearbeitet:
Code: Select all
var transferNftFunction = contract.GetFunction("safeTransferFrom");
var gasEstimate = transferNftFunction.EstimateGasAsync(accountAddress, null, null, senderAddress, recipientAddress, tokenId, byteComments).Result;
Das Abrufen der Gasschätzung schlug jedoch aufgrund einer ungültigen Anzahl von Argumenten fehl. Ich habe vier Argumente an die Funktion übergeben, während die Funktion nur drei erwartete. Anscheinend berücksichtigt Nethereum Überladungsfunktionen nicht von Haus aus, wie es beim Überladen Ihrer grundlegenden C#-Methoden der Fall wäre.