Возврат частной стоимости из контракта - PullRequest
0 голосов
/ 30 ноября 2018

Мне нужна помощь с возвратом частного значения строки в смарт-контракт.Это значение должно быть доступно только для платного аккаунта.

Я предварительно загружаю его внутрь:

static async getInitialProps(props) {

const privateInfo = await itemContract.methods.getPrivateInfo().call()

}

Смарт-контракт:

string private privateInfo;
mapping(address => bool) public paidAccounts;

...

function getPrivateInfo() public view returns(string) {
  require(paidAccounts[msg.sender] == true); 
  return(privateInfo);
}

Я получаю сообщение об ошибке "ОШИБКА: возвращаемое значение не являетсяконвертируемая строка: " Кажется, что работает без require () .Это потому, что я звоню, не платя за газ, так как он должен сделать расчет "=="?

Есть ли другой способ скрыть личную ценность и показывать только для платных аккаунтов?

Я ценю любые предложения или идеи.

1 Ответ

0 голосов
/ 30 ноября 2018

В принципе невозможно скрыть данные в общедоступной цепочке блоков.Любой, кто имеет доступ к блокчейну, может читать любые данные.Смотри https://programtheblockchain.com/posts/2018/01/02/making-smart-contracts-with-public-variables/.

...