Я пишу программу, которая берет строку ABI в цепочке ethereum в C# и использует ее для вызова функции, которая позволяет мне взаимодействовать со смарт-контрактом с использованием nethereum. Когда я использую меньшую строку ABI, я могу заставить ее работать, но по какой-то причине она не будет работать с этой более длинной строкой или любым другим ABI, который превышает длину небольшого примера ABI. Когда я компилирую код ниже, я получаю сообщение об ошибке (голую в виду, что я пытался JSON десериализации, но это по-прежнему делает ту же ошибку):Строка ABI не работает
Исключение типа «Newtonsoft.Json.JsonReaderException» произошел в Newtonsoft.Json.dll, но не был обработан в коде пользователя
Дополнительная информация: После разбора значения произошел неожиданный символ: t. Путь '[0] .outputs [0] .name', линия 3, позиция 20.
protected void init()
{
web3 = new Nethereum.Web3.Web3();
string abi = @"[{'constant':false,'inputs':[{'name':'username','type':'string'},
{'name':'location','type':'string'}],'name':'addUser','outputs':
[{'name':','type':'string'}],'type':'function'},{'constant':false,'inputs'
:[],'name':'burnCoins','outputs':[{'name':','type':'uint256'}],'type':'function'},
{'constant':false,'inputs':[{'name':'vendor','type':'address'},
{'name':'recipient','type':'address'}],'name':'trade','outputs':[],
'type':'function'},{'constant':false,'inputs':[{'name':'vendor','type':'address'},
{'name':'isPositive','type':'bool'},{'name':'message','type':'string'}],
'name':'giveReputation','outputs':[],'type':'function'},{'constant':false,'inputs':
[{'name':'user','type':'address'}],'name':'showBurnedCoins','outputs':[{'name':
','type':'uint256'}],'type':'function'},{'constant':false,'inputs':[{'name':'user',
'type':'address'}],'name':'viewReputation','outputs':[{'name':','type':'uint256'},
{'name':','type':'uint256'},{'name':','type':'uint256'}],'type':'function'},
{'anonymous':false,'inputs':[{'indexed':true,'name':'user','type':'address'},
{'indexed':true,'name':'amountBurned','type':'uint256'}],'name':'_coinsBurned',
'type':'event'},{'anonymous':false,'inputs':[{'indexed':true,'name':'user',
'type':'address'},{'indexed':true,'name':'message','type':'string'}],'
name':'_positiveReputation','type':'event'},{'anonymous':false,'inputs'
:[{'indexed':true,'name':'user','type':'address'},{'indexed':true,'name':'message'
,'type':'string'}],'name':'_negativeReputation','type':'event'},
{'anonymous':false,'inputs':[{'indexed':true,'name':'username','type':'string'},
{'indexed':true,'name':'location','type':'string'},{'indexed':true,'name':
'user','type':'address'}],'name':'_addUser','type':'event'},{'anonymous':false,
'inputs':[{'indexed':true,'name':'vendor','type':'address'},{'indexed':true,
'name':'buyer','type':'address'}],'name':'_newTrade','type':'event'},{'anonymous':
false,'inputs':[{'indexed':true,'name':'user','type':'address'},{'indexed':true,
'name':'positive','type':'uint256'},{'indexed':true,'name':'negative','type':'uint256'},
{'indexed':false,'name':'total','type':'uint256'}],'name':'_viewedReputation',
'type':'event'}]";
string contractAddress = "0xd53c3dc2f3fcf1779b68ea8e441d857b4af5a413";
Reputation = web3.Eth.GetContract(abi, contractAddress);
}
Ошибка возникает из-за строки '' name ':' showBurnedCouns ',' output ': [{' name ':', 'type': 'uint256'}] '. В блоке 'output' отсутствует' '' '. –
@diiN_ Пожалуйста, напишите свой комментарий в качестве ответа, чтобы этот вопрос можно было подобрать, а также получить репутацию. – eth