У меня проблема.
У меня есть этот контракт на прочность:
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");
- без ошибок и без результата:
await contract.methods.setDati("ANSIA", {privateFor:["ROAZBWtSacxXQrOe3FGAqJDyJjFePR5ce4TSIzmJ0Bc="]});
Вопрос в следующем:
Как я могу использовать функцию setDati в Angular Dapp?