Geth 命令行发布 Token 智能合约

写在前面:

笔者环境:1-geth私链+ubuntu+挖矿,2-本地windows10;

用命令发币的方式更适合于线上服务器,毕竟使用linux服务器基本是命令行方式;

不需要安装solc等软件;

该篇文章不局限于发币,可以发布所有的智能合约。

PAGE ONE

——获取智能合约的WEB3DEPLOY、ABI

在网页版的solc编辑器输入智能合约代码(网址:http://remix.ethereum.org/),如下图:

Geth 命令行发布 Token 智能合约_第1张图片

粘贴好代码后,按Ctrl+s 开始执行编译,若为报错(ERROR),请点击“Details”按钮,如下图:

Geth 命令行发布 Token 智能合约_第2张图片

在弹出的窗口,找到ABI和WEB3DEPLOY,如下图所示:

Geth 命令行发布 Token 智能合约_第3张图片

点击旁边的文本图标复制到文本,且修改web3deploy中的变量,如下图:

Geth 命令行发布 Token 智能合约_第4张图片

 

PAGE TWO

——Geth 命令行发布智能合约

1.运行私链

2.开启挖矿

> miner.start()	

3.解锁账户

> personal.unlockAccount("0x4817d8a57482659eacc2fe963b452a91b5b9406c")

4.粘贴web3deploy

var initialSupply = 1000000000000000 ;
var tokenName = "BBC" ;
var decimalUnits = 6 ;
var tokenSymbol = "BBC" ;
var bbcContract = web3.eth.contract([{"constant":true,"inputs":[],篇幅过长,省略...
     gas: '4700000'
   }, function (e, contract){
    console.log(e, contract);
    if (typeof contract.address !== 'undefined') {
         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
    }
 })

按回车后,会出现如下所示:

 null [object Object]
undefined
> null [object Object]
Contract mined! address: 0x575f2ce10b0229bb40ec63de0e870509b3931962 transactionHash: 0xf35349e64fd5a5f1b75790669270b9625f04a8796664d3573c9120161ade8cc3

返回的这个地址:0x575f2ce10b0229bb40ec63de0e870509b3931962就是部署后智能合约的地址。

 

PAGE THREE

——调试、调用智能合约内的方法

1.创建合约对象

// abi PAGE ONE中复制的abi
var abi = [{"constant":true,笔者省略了,篇幅太大,影响阅读}];
var address="0x575f2ce10b0229bb40ec63de0e870509b3931962";  // 发布后,智能合约的地址
var demoContract=eth.contract(abi).at(address); // 创建合约对象

2.打印合约对象

> demoContract
{
  abi: [{
      constant: true,
      inputs: [],
      name: "name",
      outputs: [{...}],
      payable: false,
      stateMutability: "view",
      type: "function"
  }, {
     篇幅过长,省略..
  }],
  address: "0x575f2ce10b0229bb40ec63de0e870509b3931962",
  省略部分...
  decimals: function(),
  name: function(),
  owner: function(),
  symbol: function(),
  totalSupply: function(),
  省略部分...
}

3.调用合约对象中的方法

> demoContract.name()
"BBC"
> demoContract.owner()
"0x4817d8a57482659eacc2fe963b452a91b5b9406c"
> demoContract.decimals()
6
> demoContract.totalSupply()
1000000000000000

大功告成。

 

如果搭建过程中遇到任何问题,请发送问题致邮件:[email protected],我会尽我所能帮您解答。

 

 

打赏(加密货币)

BTC地址:1MHAPXoydTMTXi9r5mHYp3kGFYkKGcpXf

ETH地址:0x8d345c08805c1e0d21f518bb301640e937b8c2c6

ADA地址:DdzFFzCqrhsqmBCy6zTcdy1bshH3p5LtfmssqvL8AUcPjf55q7LteaJtx7eztaayftSj3aKWS4qWqUPJVt3ZiPVmtoKHdRYrfMHDzwGn

EOS地址:0x8d345c08805c1e0d21f518bb301640e937b8c2c6

转载于:https://my.oschina.net/u/3050295/blog/2994577

你可能感兴趣的:(操作系统)