写点什么

链上双币拆分理财 dapp 系统开发功能逻辑分析(智能合约编写)

  • 2023-03-10
    广东
  • 本文字数:864 字

    阅读完需:约 3 分钟

智能合约就是一段代码,一些人为制定的规则,运行在区块链中,参与治理的人必须遵从这些规则才能正常的使用下去。它开启了区块链的许多的实际应用场景,许多社会问题、需求、痛点都能通过区块链进行解决。不同行业、种类的规则都可以写进智能合约里面。


智能合约结合区块链,系统开发 I34-案例 I633-演示 53I9,让其不可篡改、去中心化的特性真正发挥出价值,人们可以利用它开发出各种各样解决行业痛点的软件、Dapp。


​合约方法


在这里 constant 相当于他声明这个局部变量不能更改,但是他并没有实际作用(实际就只是警示作用)


地址 adress


  • address.balance 账户余额

  • adress.transfer(value) 返回调用者

  • adress.send(value) 返回调用状态

  • adress.call,adress.callcode and adress.delegatecall 用在智能合约与智能合约彼此相互调用


ether 单位


  • wei

  • szabo = 10^12wei

  • finney=10^15wei

  • ether=10^18wei



  • block.blockhash(uint blockNumber) returns(bytes32)

  • block.coinbase(adress) 谁挖到这个 block

  • block.difficulty(uint) 块难度

  • block.gaslimit(uint) gas 限制(最多)

  • block.number(uint) 块的序号

  • block.timestamp(uint) 块创建时间

  • now


单员工薪酬智能合约实例


pragma solidity ^0.4.22;


contract Pay{


uint salary = 1 ether;  //工资总额
address frank =0x57ec6c8f13c46b43dcd28c83753dec9224d23ef2; //frank的账户地址
uint constant payDuration = 30 days; //发放薪资的周期
uint lastPayday = now;


function addFund() payable returns(uint){
return this.balance; //返回余额
}


function colculateRunway() returns(uint){
return this.balance / salary; //返回余额能够发放工资的次数
}


function hasEnoughFund() returns(bool){
return this.colculateRunway() > 0; //限制能够发放薪资的次数大于0次
}


function getPaid(){
if(msg.sender != frank){
revert(); //如果合约调用者不是frank 那么直接抛出异常
复制代码


}


错误检测


  • assert(bool) 使用在程序运行时

  • require(bool) 使用在程序输入时

用户头像

还未添加个人签名 2022-05-27 加入

还未添加个人简介

评论

发布
暂无评论
链上双币拆分理财dapp系统开发功能逻辑分析(智能合约编写)_开发v-hkkf5566_InfoQ写作社区