Nethereum.ABI.FunctionEncoding.AbiEncodingException: 'An error occurred encoding abi value

121 Views Asked by At

I get an error when trying to access my smart contract with .Net Core, here is the error I get: Nethereum.ABI.FunctionEncoding.AbiEncodingException: 'An error occurred encoding abi value. Order: '1', Type: 'address', Value: 'System.String[]'. 'Ensure the value is valid for the abi type.'

here are my codes:
using System;
using System.Numerics;
using Nethereum.Web3;
using Nethereum.Web3.Accounts;
using Nethereum.Contracts;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        string rpcUrl = "https://sepolia.infura.io/v3/3909d04f69e5454fb4ba76d8f3729dd7"; // Replace with your Infura URL

        string privateKey = "a323fb226863a92fb7be2ae5797c0f21836b3bbcb002b71195d0519a28b6a932"; // Replace with your Ethereum account's private key

        var account = new Account(privateKey);
        var web3 = new Web3(account, rpcUrl);

        string contractAddress = "0x0115a558bdbf0813d10B432A1b0D1Cf26655B13D"; // Replace with your contract's address
        var contractAbi = @"[
    {
        ""inputs"": [
            {
                ""internalType"": ""address"",
                ""name"": ""_buyer"",
                ""type"": ""address""
            },
            {
                ""internalType"": ""address[]"",
                ""name"": ""_sellers"",
                ""type"": ""address[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_applianceNames"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_applianceTypes"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""_buyerName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""_buyerSurname"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_sellerNames"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_sellerSurnames"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_startTimes"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_endTimes"",
                ""type"": ""string[]""
            }
        ],
        ""name"": ""ApplianceHire"",
        ""outputs"": [],
        ""stateMutability"": ""nonpayable"",
        ""type"": ""function""
    },
    {
        ""inputs"": [
            {
                ""internalType"": ""string"",
                ""name"": ""dynamicText"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""staticText"",
                ""type"": ""string""
            }
        ],
        ""name"": ""emitMessage"",
        ""outputs"": [
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            }
        ],
        ""stateMutability"": ""nonpayable"",
        ""type"": ""function""
    },
    {
        ""inputs"": [],
        ""stateMutability"": ""nonpayable"",
        ""type"": ""constructor""
    },
    {
        ""anonymous"": false,
        ""inputs"": [
            {
                ""indexed"": false,
                ""internalType"": ""uint256"",
                ""name"": ""hireID"",
                ""type"": ""uint256""
            },
            {
                ""indexed"": true,
                ""internalType"": ""address"",
                ""name"": ""buyer"",
                ""type"": ""address""
            },
            {
                ""indexed"": true,
                ""internalType"": ""address"",
                ""name"": ""seller"",
                ""type"": ""address""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""applianceName"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""applianceType"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""buyerName"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""buyerSurname"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""sellerName"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""sellerSurname"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""startTime"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""endTime"",
                ""type"": ""string""
            }
        ],
        ""name"": ""newHire"",
        ""type"": ""event""
    },
    {
        ""anonymous"": false,
        ""inputs"": [
            {
                ""indexed"": false,
                ""internalType"": ""uint256"",
                ""name"": ""transactionId"",
                ""type"": ""uint256""
            },
            {
                ""indexed"": true,
                ""internalType"": ""address"",
                ""name"": ""buyer"",
                ""type"": ""address""
            },
            {
                ""indexed"": true,
                ""internalType"": ""address"",
                ""name"": ""seller"",
                ""type"": ""address""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""productName"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""productType"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""productPrice"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""productAmount"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""buyerName"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""buyerSurname"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""sellerName"",
                ""type"": ""string""
            },
            {
                ""indexed"": false,
                ""internalType"": ""string"",
                ""name"": ""sellerSurname"",
                ""type"": ""string""
            }
        ],
        ""name"": ""newTransaction"",
        ""type"": ""event""
    },
    {
        ""inputs"": [
            {
                ""internalType"": ""address"",
                ""name"": ""_buyer"",
                ""type"": ""address""
            },
            {
                ""internalType"": ""address[]"",
                ""name"": ""_sellers"",
                ""type"": ""address[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_productNames"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_productTypes"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_productPrices"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_productAmounts"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""_buyerName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""_buyerSurname"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_sellerNames"",
                ""type"": ""string[]""
            },
            {
                ""internalType"": ""string[]"",
                ""name"": ""_sellerSurnames"",
                ""type"": ""string[]""
            }
        ],
        ""name"": ""PurchaseProducts"",
        ""outputs"": [],
        ""stateMutability"": ""nonpayable"",
        ""type"": ""function""
    },
    {
        ""inputs"": [
            {
                ""internalType"": ""uint256"",
                ""name"": ""_transactionId"",
                ""type"": ""uint256""
            }
        ],
        ""name"": ""GetTransaction"",
        ""outputs"": [
            {
                ""internalType"": ""address"",
                ""name"": """",
                ""type"": ""address""
            },
            {
                ""internalType"": ""address"",
                ""name"": """",
                ""type"": ""address""
            },
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            },
            {
                ""internalType"": ""uint256"",
                ""name"": """",
                ""type"": ""uint256""
            },
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": """",
                ""type"": ""string""
            }
        ],
        ""stateMutability"": ""view"",
        ""type"": ""function""
    },
    {
        ""inputs"": [],
        ""name"": ""hireCount"",
        ""outputs"": [
            {
                ""internalType"": ""uint256"",
                ""name"": """",
                ""type"": ""uint256""
            }
        ],
        ""stateMutability"": ""view"",
        ""type"": ""function""
    },
    {
        ""inputs"": [
            {
                ""internalType"": ""uint256"",
                ""name"": """",
                ""type"": ""uint256""
            }
        ],
        ""name"": ""hires"",
        ""outputs"": [
            {
                ""internalType"": ""address"",
                ""name"": ""buyer"",
                ""type"": ""address""
            },
            {
                ""internalType"": ""address"",
                ""name"": ""seller"",
                ""type"": ""address""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""applianceName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""applianceType"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""buyerName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""buyerSurname"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""sellerName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""sellerSurname"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""startTime"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""endTime"",
                ""type"": ""string""
            }
        ],
        ""stateMutability"": ""view"",
        ""type"": ""function""
    },
    {
        ""inputs"": [],
        ""name"": ""landCount"",
        ""outputs"": [
            {
                ""internalType"": ""uint256"",
                ""name"": """",
                ""type"": ""uint256""
            }
        ],
        ""stateMutability"": ""view"",
        ""type"": ""function""
    },
    {
        ""inputs"": [],
        ""name"": ""owner"",
        ""outputs"": [
            {
                ""internalType"": ""address"",
                ""name"": """",
                ""type"": ""address""
            }
        ],
        ""stateMutability"": ""view"",
        ""type"": ""function""
    },
    {
        ""inputs"": [],
        ""name"": ""transactionCount"",
        ""outputs"": [
            {
                ""internalType"": ""uint256"",
                ""name"": """",
                ""type"": ""uint256""
            }
        ],
        ""stateMutability"": ""view"",
        ""type"": ""function""
    },
    {
        ""inputs"": [
            {
                ""internalType"": ""uint256"",
                ""name"": """",
                ""type"": ""uint256""
            }
        ],
        ""name"": ""transactions"",
        ""outputs"": [
            {
                ""internalType"": ""address"",
                ""name"": ""buyer"",
                ""type"": ""address""
            },
            {
                ""internalType"": ""address"",
                ""name"": ""seller"",
                ""type"": ""address""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""productName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""productType"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""productPrice"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""productAmount"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""uint256"",
                ""name"": ""timeStamp"",
                ""type"": ""uint256""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""buyerName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""buyerSurname"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""sellerName"",
                ""type"": ""string""
            },
            {
                ""internalType"": ""string"",
                ""name"": ""sellerSurname"",
                ""type"": ""string""
            }
        ],
        ""stateMutability"": ""view"",
        ""type"": ""function""
    }
]";

        var contract = web3.Eth.GetContract(contractAbi, contractAddress);

        // Example: Calling the PurchaseProducts function
        var purchaseFunction = contract.GetFunction("PurchaseProducts");

        // Parameters for the PurchaseProducts function
        var buyerAddress = "0xE5ed40436Fd514028403D5b310Ec0CFCa732502D";
        var sellers = new string[] { "0x9A36D7C2AEA774268cb9A41e9c2D68BF258D54eF", "0x9A36D7C2AEA774268cb9A41e9c2D68BF258D54eF" };
        // Replace with seller addresses
        var productNames = new string[] { "Product1", "Product2" }; // Replace with product names
        var productTypes = new string[] { "Type1", "Type2" }; // Replace with product types
        var productPrices = new string[] { "Price1", "Price2" }; // Replace with product prices
        var productAmounts = new string[] { "Amount1", "Amount2" }; // Replace with product amounts
        var buyerName = "YourBuyerName";
        var buyerSurname = "YourBuyerSurname";
        var sellerNames = new string[] { "SellerName1", "SellerName2" }; // Replace with seller names
        var sellerSurnames = new string[] { "SellerSurname1", "SellerSurname2" }; // Replace with seller surnames

        var transactionInput = purchaseFunction.CreateTransactionInput(buyerAddress, sellers, productNames, productTypes, productPrices, productAmounts, buyerName, buyerSurname, sellerNames, sellerSurnames);

        var transactionHash = await web3.Eth.Transactions.SendTransaction.SendRequestAsync(transactionInput);

        var receipt = await web3.Eth.Transactions.GetTransactionReceipt.SendRequestAsync(transactionHash);

        if (receipt.Status.Value == 1)
        {
            Console.WriteLine("PurchaseProducts transaction successful!");
        }
        else
        {
            Console.WriteLine("PurchaseProducts transaction failed.");
        }

  
      

        // Parameters for the ApplianceHire function
        // Define the parameters for ApplianceHire function here...

        // Send the transaction for ApplianceHire function

       
    }
}

There is an entry in my smart contract where I want an address array. As far as I understand, I am having a problem here. What should I do to solve this problem

0

There are 0 best solutions below