Как отправить данные с одного узла на другой в кворуме [Angular]? - PullRequest
0 голосов
/ 07 мая 2019

У меня проблема.

У меня есть этот контракт на прочность:

pragma solidity >=0.4.21 <0.6.0;



contract SimpleStorage {
  string public storedData;
  uint public i;

   constructor(string memory initVal) public {
    storedData = initVal;
    i = 0;
  }

  function setDati(string memory x) public returns (uint) {
    storedData = x;
    i++;
    return i;
  }

  function getAll() public view returns (string memory) {
    return storedData;
  }
}

Функция getAll работает с использованием этого кода:

import SimpleStorageContract from "./build/contracts/SimpleStorage.json";
import getWeb3 from "./utils/getWeb3"; 

/*inizialize web3 using   
const provider = new Web3.providers.HttpProvider(
          "http://localhost:22003" //quorum node 4
*/

  const contract = new web3.eth.Contract(
        SimpleStorageContract.abi,
        deployedNetwork && deployedNetwork.address,
      );

const response = await contract.methods.getAll().call();

Но когда я использую функцию setDati, эта ошибка не работает:

// ERROR: {error: Error: Number can only safely store up to 53 bits}

await contract.methods.setDati("ANSIA").send({from: accounts[0]});

/* where accounts[0] is:
 const accounts = await web3.eth.getAccounts();
*/

Мы пытались сделать различные тесты: 1. без ошибок и без результата:

//without .send() like this: 
await contract.methods.setDati("ANSIA");

  1. без ошибок и без результата:
await contract.methods.setDati("ANSIA", {privateFor:["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="]});

Вопрос в следующем: Как я могу использовать функцию setDati в Angular Dapp?

...