Javascript веб3js интерфейс - PullRequest
0 голосов
/ 07 ноября 2018

Я сейчас пишу SmartContract. Пока я написал этот контракт:

Прагма солидность ^ 0,4.24;

контракт SmartContractEnergy {

struct EnContract {
    uint price;
    uint amount;
    string energysource;
    address owner;
}

EnContract[] public encontracts;

mapping (uint => address) public contractToOwner;
mapping (address => uint) public ownerContractCount;

function _createContract(uint _price, uint _amount, string _energysource) internal {
    uint id = encontracts.push(EnContract(_price, _amount, _energysource, msg.sender)) - 1;
    contractToOwner[id] = msg.sender;
    ownerContractCount[msg.sender]++;
}

function createContract(uint _price, uint _amount, string _energysource) public {
    require(ownerContractCount[msg.sender] == 0);
    _createContract(_price, _amount, _energysource);
}
}

В целях тестирования я хочу иметь html-файл, который просто создает контракт на локальной цепочке блоков (я использую Ganache для своей разработки). Вот так сейчас выглядит мой html. Я использую web3 1.0

var Web3 = require('web3');
var web3 = new Web3('http://localhost:8545');

var abi = [myABI];
var contractAddress = 'myAddress';
var contract = new web3.eth.Contract(abi, contractAddress);
<h3>Web3 — Usage Example</h3>
<div class=”tab-content”>
  <div role=”tabpanel” class=”tab-pane active” id=”blockchain”>
    <h3> 1. Set the value in the blockchain</h3>
    <div class=”form-group form-inline”>
      <input type=”text” class=”text form-control” value="price">
      <input type=”text” class=”text form-control” value="amount">
      <input type=”text” class=”text form-control” value="energysource">
      <button class=”set btn btn-primary”>Set Value</button>
    </div>
    <h3> 2. Get the current value</h3>
    <div class=”form-group”>
      <div>
        current value is <span class=”value”></span>
      </div>
      <button class=”get btn btn-primary”>Get Value</button>
    </div>
  </div>
</div>

Так как же теперь перенести мои данные в блокчейн, а также прочитать их из блокчейна? Я хотел бы использовать реализовать решение в Javascript (без JQuery, если это возможно).

1 Ответ

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

У вас уже импортировано web3, поэтому первым делом следует развернуть ваш контракт. Ваш вызов не развертывает новый экземпляр контракта, он пытается загрузить существующий. После этого вам просто нужно вызвать ваши методы с параметрами, которые вы хотите сохранить. В документации web3 есть примеры того, как это сделать. Взгляните на это .

...