我目前正在编写一个SmartContract。到目前为止,我已经写好了这个合同:
pragma solidity ^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 )。
发布于 2018-11-08 16:55:53
您已经导入了web3
,所以第一件事就是部署您的合约。您的调用没有部署新的contract实例,它正在尝试加载现有的实例。在此之后,您只需使用您想要存储的参数调用您的方法。在web3
的文档中有如何做到这一点的示例。看看this吧。
https://stackoverflow.com/questions/53190441
复制相似问题