Это мой образец договора..
pragma solidity ^ 0.4.15;
contract Sample{
struct Info
{
address pubKey; //key
bytes32 Id;
}
mapping(address => Info) public userMap;
// Registration
function register(bytes32 orgId, address pubKey) public returns(bool){
if (pubKey == 0x0 || orgId == 0x0 ) {
revert("Pub Key & Org Id are mandatory");
}
if (userMap[pubKey].pubKey == pubKey) {
revert("User already exists");
}
userMap[pubKey].pubKey = pubKey;
userMap[pubKey].orgId = orgId;
return true;
}
//getting the given Details
function getUser(address pubKey) public returns(bytes32 orgId){
orgId = userMap[pubKey].orgId;
}
}
Мне нужно обработать сообщение, возвращаемое из функции revert() в API (node.js). Получу ли я это сообщение в transactionReceipt соответствующей транзакции, такой как web3.eth.getTransaction(txhash), или где я могу прочитать вышеуказанное сообщение?
Короче говоря, невозможно прочитать данные о возврате из квитанции о транзакции. Это верно как для данных успешного возврата, так и для причины возврата. Единственный способ, которым вы действительно можете сделать это в настоящее время, — это зарегистрировать событие, уведомляющее внешний интерфейс об ошибке и возвращающее false вместо возврата.