前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BSC智能合约DAPP系统开发方案

BSC智能合约DAPP系统开发方案

原创
作者头像
开发v_syn520110
发布2022-10-27 09:19:41
3520
发布2022-10-27 09:19:41
举报
文章被收录于专栏:MMMKA

主要函数

  • kill:selfdestruct 是 ethereum 智能合约自带的自毁程序,kill对此方法进行了封装,只有合约的拥有者才可以调用该方法;
  • greet:返回合约 greeter 里的 greeting属性的值;

代码运行分析

第一步 生成智能合约代码对象

我们先把合约代码smartContract_example01.sol 压缩为一行.新建一个ssh session, 切换到geth用户环境su - geth, 然后输入:cat smartContract_example01.sol | tr '\n' ' '. 切换到以太坊控制台,把合约代码保存为一个变量:

代码语言:javascript
复制
var greeterSource = 'contract mortal { address owner; function mortal() { owner = msg.sender; } function kill() { if (msg.sender == owner) selfdestruct(owner); } } contract greeter is mortal { string greeting; function greeter(string _greeting) public { greeting = _greeting; } function greet() constant returns (string) { return greeting; } }'
第二步 编译合约代码

然后编译合约代码:

代码语言:javascript
复制
var greeterCompiled = web3.eth.compile.solidity(greeterSource)

greeterCompiled.Token.code可以看到编译好的二进制代码 greeterCompiled.Token.info.abiDefinition可以看到合约的ABI

第三步 设置希望返回的字符串
代码语言:javascript
复制
var _greeting = "Hello World!"
第四步 部署合约

接下来我们要把编译好的合约部署到网络上去.

首先我们用ABI来创建一个javascript环境中的合约对象:

代码语言:javascript
复制
var greeterContract = web3.eth.contract(greeterCompiled.greeter.info.abiDefinition);

我们通过合约对象来部署合约:

代码语言:javascript
复制
var greeter = greeterContract.new(_greeting,{from:web3.eth.accounts[0], data: greeterCompiled.greeter.code, gas: 300000}, function(e, contract){
    if(!e) {
      if(!contract.address) {
        console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined...");
      } else {
        console.log("Contract mined! Address: " + contract.address);
        console.log(contract);
      }
    }
})
  • greeterContract.new方法的第一个参数设置了这个新合约的构造函数初始化的值
  • greeterContract.new方法的第二个参数设置了这个新合约的创建者地址from, 这个新合约的代码data, 和用于创建新合约的费用gas.gas是一个估计值,只要比所需要的gas多就可以 ,合约创建完成后剩下的gas会退还给合约创建者.
  • greeterContract.new方法的第三个参数设置了一个回调函数,可以告诉我们部署是否成功.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主要函数
  • 代码运行分析
    • 第一步 生成智能合约代码对象
      • 第二步 编译合约代码
        • 第三步 设置希望返回的字符串
          • 第四步 部署合约
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档