So rufen Sie die Smart-Contract-Funktion im C#.net-Core auf

protected async void Page_Load(object sender, EventArgs e)
        {
            var senderAddress = "0x605a1f8d368cbdd4d0a5cbad74f75c428660f17b";
            var password = "zxcasdqwe123";
            var abi = @"[{""constant"":false,""inputs"":[{""name"":""passAddress"",""type"":""address""}],""name"":""isWhitelisted"",""outputs"":[{""name"":"""",""type"":""bool""}],""payable"":false,""type"":""function""},{""constant"":false,""inputs"":[{""name"":""userAddress"",""type"":""address""}],""name"":""userAdd"",""outputs"":[],""payable"":false,""type"":""function""},{""inputs"":[],""payable"":false,""type"":""constructor""}]";
            var web3 = new Nethereum.Web3.Web3();
            var newAddress = "0xE96932536293CF4712180973c6201DDbDf6fa3C0";
            /*var unlockAccountResult = await web3.Personal.UnlockAccount.SendRequestAsync(senderAddress, password, new HexBigInteger(120));
            Assert.True(unlockAccountResult);
            */
            //var transactionHash = await web3.Eth.DeployContract.SendRequestAsync(abi, byteCode, senderAddress, newAddress);
            //var receipt = await web3.Eth.Transactions.GetTransactionReceipt.SendRequestAsync(transactionHash);
            //while (receipt == null)
            //{
            //    Thread.Sleep(5000);
            //    receipt = await web3.Eth.Transactions.GetTransactionReceipt.SendRequestAsync(transactionHash);
            //}
            //var contractAddress = receipt.ContractAddress;
            var contract = web3.Eth.GetContract(abi, "0x23699275461c4755377c293bb657e84d3ddfdbd9");
            var fucntion = contract.GetFunction("userAdd");
            var result = await fucntion.CallAsync<String>("0xE96932536293CF4712180973c6201DDbDf6fa3C0");
        }

Ich habe meinen Vertrag auf rinkeby bereitgestellt und die Adresse erhalten, und jetzt rufe ich meine Funktion meines Vertrags an, aber es zeigt mir null an.

Hilfe danke im Voraus

Maskiere Passwörter immer, wenn du hier etwas postest!
Hast du jemals eine Antwort auf diese Frage bekommen? Wenn ja, bitte teilen.
Das beantwortet die Frage nicht wirklich. Wenn Sie eine andere Frage haben, können Sie diese stellen, indem Sie auf Frage stellen klicken . Sie können auch ein Kopfgeld hinzufügen , um mehr Aufmerksamkeit auf diese Frage zu lenken, sobald Sie genug Ruf haben . - Aus Bewertung

Antworten (1)

Aus Ihrer ABI sieht es so aus, als ob es keine Ausgabeparameter für die Funktion gibt userAdd?

Wenn Sie versuchen, eine Transaktion zum Ändern des Status zu senden, sollten Sie function.SendTransactionAsync(...)not verwendenCallAsync

Es wird kein Wert von einer Transaktion zurückgegeben. Überprüfen Sie den Status in der Quittung.

Abhängig von der Version von Nethereum, die Sie verwenden, müssen Sie möglicherweise zuerst das sendende Konto entsperren.

HTH