【发布时间】:2018-10-09 03:49:45
【问题描述】:
我正在尝试制作一个基本的solidity合约:
pragma solidity ^0.4.11;
contract sample {
string public name = "NAME";
function set(string _name) {
name = _name;
}
function get() constant returns (string) {
return name;
}
}
我正在使用这个 html 文件让我输入合同:
<html>
<head>
<title>Blockchain</title>
</head>
<body class="container">
<h3>Blockchain</h3>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="blockchain">
<div class="form-group form-inline">
<input type="text" class="text form-control" value="TEXT HERE">
<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>
</body>
<script src="web3.js-develop/dist/web3.js">
var Web3 = require(‘web3’);
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545"));
var sampleContractABI = [{"constant": true,"inputs": [],"name": "name","outputs": [ { "name": "", "type": "string" }],"payable": false,"stateMutability": "view","type": "function"},{"constant": false,"inputs": [ { "name": "_name", "type": "string" }],"name": "set","outputs": [],"payable": false,"stateMutability": "nonpayable","type": "function"},{ "constant": true, "inputs": [], "name": "get", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function"}];
var sampleContract = web3.eth.contract(sampleContractABI);
var sampleContractInstance = sampleContract.at(0xF215eaC1b9E82DeF712B6889a0adB24fAf216250);
$("#blockchain button.set").click(function() {
var value = $("#blockchain input.text").val();
var params = {
gas: 40000,
from:
};
SimpleStorage.sendTransaction.set(value, params);
});
$("#blockchain button.get").click(function() {
var value = SimpleStorage.get.call();
$("#blockchain .value").html(value);
});
</script>
</html>
但是当我进入框并点击设置值,然后稍等片刻并点击获取值时,什么都没有发生。谁能告诉我我做错了什么。
【问题讨论】:
-
您在浏览器控制台中看到错误吗?我希望
SimpleStorage.sendTransaction未定义,但这会产生错误消息。 -
@smarx 我在控制台中什么也没有。
-
哦,看起来您的所有代码都包含在带有
src属性的script标记中?我不确定代码是否会运行。 -
它也在
body标签之外。我不确定这是否有效。 -
尝试,在
body标签内:<script src="web3.js-develop/dist/web3.js"></script>后跟<script>var Web3 = require('web3');...</script>。另请注意,web3周围的引号目前是错误的。 (‘与')