«Ошибка: ожидаемое значение массива для типа» при передаче 2darray строки в качестве параметра Nethereum

Я использовал набор трюфелей ганаша в качестве локального блокчейна для тестирования своего смарт-контракта. это моя функция solidity, в которой я могу добавить 2d-массив строк и заполнить им сопоставление (string => string):

         function AddSignature(string[][] memory _signature) public{
         for ( uint i = 0 ; i < _signature.length; i++ ) {
           
           require(!_studentExists[_signature[i][0]]);
         signatures[_signature[i][0]] = _signature[i][1];
         _studentExists[_signature[i][0]]=true;
          }  
}

это мой код program.cs, в котором я пытался связаться с функцией AddSignature через .net:

       class Program
{
    static void Main(string[] args)
    {
        //The URL endpoint for the blockchain network.
         string url = "HTTP://127.0.0.1:7545";

        //The contract address.
        string address =
            "0x4373671d1fC2d795A7c066E27CAB732933343b15";

        //The ABI for the contract.
        string ABI =
        @"..."

       
         Web3 web3 =  new Web3(url);
        Contract CryptoD =  web3.Eth.GetContract(ABI, address);

        Console.WriteLine("Enter your address: ");

        string addressStudent = Console.ReadLine(); 
        Console.WriteLine("Enter your signature: ");

        string signature = Console.ReadLine(); ;

        string[,] duo = new string[, ]
        {
            { addressStudent, signature }
        };

        try
        {

            Task<string> mintFunction = CryptoD.GetFunction("AddSignature").
                SendTransactionAsync(from: "0xe801bF0abd0eC70d77a954AF901D4AF747c0CfF2BALANCE",duo);
            mintFunction.Wait();
            Console.WriteLine("signature added!");
        }
        catch (Exception e)
        {
            Console.WriteLine("Error: {0}", e.Message);
        }
    }


}

1 ответ

Я решил эту ошибку, передав 2d-массив, а не 1d-массив в качестве параметра

Другие вопросы по тегам