我使用以太坊官方网站上提供的合同代码,[创建您自己的cryto-currency] [1]在geth控制台的私有链上运行创建高级令牌。 geth的版本是1.5.5,solc的版本是0.4.8。
我的步骤是:
1.初始化我的geth: geth init genesis.json 然后 geth --networkid 42 --nodiscover --maxpeers 0 console
2.检查编译器:*** eth.getCompilers()***返回:solidity
3.我使用在线编译网站[Remix] [2]给我直接部署合同的相对abi和代码。
我输入:
(1)的 ABI = [{ “恒定”:假 “输入”:[{ “名称”: “newSellPrice”, “类型”: “uint256”},...... 复制结果的时间太长;
(2)然后创建合同: multiplyContract = web3.eth.contract(abi)
(3) multiply = multiplyContract.new(10000,“AKING”,2,“AK”,0xf32200730fdaca83f18171015c0be2a6342d46c4,{from:primaryAddress,data:0x + code})
第一个参数表示初始供应,第二个参数表示令牌的名称,第三个表示decimalUnit,第四个表示可以初始提供令牌的地址。
4.检查我的合同是否已部署:
我输入: txpool.status
然后我得到:待定:1
5.我开始挖掘合同:
输入: miner.start() 和 miner.stop()
然后我输入: eth.getBlock(5319)
我发现了这笔交易。
6.与我的合同互动:
输入: MyContract = eth.contract(abi)
然后: myContract = MyContract.at(multiply.address)
但是当我输入
时,整个过程进展顺利myContract.balanceOf(0xf32200730fdaca83f18171015c0be2a6342d46c4) (地址是eth.account [0]以及拥有我创建的令牌的地址。我也尝试了其他一些地址,它们都归零了。我还尝试了其他一些表达,如 myContract.balanceOf(eth.accounts [0],{from:eth.accounts [0]}) 或 myContract.balanceOf.sendTransaction(eth.accounts [0],{from:eth.accounts [0]})
如果我使用: eth.getBalance(eth.accounts [0]) ,它只会返回我帐户中的ethers,这不是我想要看到的。< / p>
那么,我的流程有什么问题吗?还是有什么重要的错过了?有什么意义?
整个代码如下:
window.onload = function() {
document.querySelector('.category-list').addEventListener('click', function(e) {
var id=$(this).attr('id');
var val=Number(id);
if(val===NaN){
console.log(val);
}
else{
currentDiv(val);
console.log("Number:"+val);
}
});
};
var slideIndex = 1;
showDivs(slideIndex);
function showDivs(n) {
$('html, body').animate({scrollTop: '0px'}, 800);
var i;
var x = document.getElementsByClassName("timeline");
console.log("X value:"+x.length);
console.log("N value:"+n);
var dots = document.getElementsByClassName("demo");
if (n > x.length) {slideIndex = 1}
if (n < 1) {slideIndex = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" btn-warning", "");
}
x[slideIndex-1].style.display = "block";
console.log("x Array:"+x[slideIndex-1].style.display);
dots[slideIndex-1].className += " ";
}
});
答案 0 :(得分:0)
将地址括在引号中。
将此myContract.balanceOf(0xf32200730fdaca83f18171015c0be2a6342d46c4)
更改为此myContract.balanceOf("0xf32200730fdaca83f18171015c0be2a6342d46c4")