DAPP智能合约系统开发详细技术及方案项目

简介: 区块的作用就是将不同时间阶段内的交易数据按照一定的格式和数量,打包成结构化数据,方便存储和管理。

区块的作用就是将不同时间阶段内的交易数据按照一定的格式和数量,打包成结构化数据,方便存储和管理。

  区块头和区块体数据也会被当作输入数据做一次Hash运算,其运算结果会被存储在下一个区块的区块头中,这样任何区块内容的修改都会反映到区块的Hash值上,而区块的Hash值又是下一个区块的输入数据,它又会被当作新区块的数据参与一次新区块的Hash运算,随着时间的推移和交易量的增加,所有的区块会通过保存前一个区块的Hash运算结果的方式组成一条链。

string public name = 4FunCoin;

string public symbol = 4FC;

uint8 public decimals = 18; // 18 是建议的默认值

uint256 public totalSupply; // 发行量

// 建立映射 地址对应了 uint' 便是他的余额

mapping (address => uint256) public balanceOf;

// 地址对应余额

mapping (address => mapping (address => uint256)) public allowance;

// 事件,用来通知客户端Token交易发生

event Transfer(address indexed from, address indexed to, uint256 value);

// 事件,用来通知客户端代币被消耗(这里就不是转移, 是token用了就没了)

event Burn(address indexed from, uint256 value);

// 这里是构造函数, 实例创建时候执行

function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {

totalSupply = initialSupply 10 * uint256(decimals); // 这里确定了总发行量

balanceOf[msg.sender] = totalSupply; // 这里就比较重要, 这里相当于实现了, 把token 全部给合约的Creator

name = tokenName;

symbol = tokenSymbol;

}

// token的发送函数

function _transfer(address _from, address _to, uint _value) internal {

require(_to != 0x0); // 不是零地址

require(balanceOf[_from] >= _value); // 有足够的余额来发送

require(balanceOf[_to] + _value > balanceOf[_to]); // 这里也有意思, 不能发送负数的值(hhhh)

uint previousBalances = balanceOf[_from] + balanceOf[_to]; // 这个是为了校验, 避免过程出错, 总量不变对吧?

balanceOf[_from] -= _value; //发钱 不多说

balanceOf[_to] += _value;

Transfer(_from, _to, _value); // 这里触发了转账的事件 , 见上event

assert(balanceOf[_from] + balanceOf[_to] == previousBalances); // 判断总额是否一致, 避免过程出错

}

function transfer(address _to, uint256 _value) public {

_transfer(msg.sender, _to, _value); // 这里已经储存了 合约创建者的信息, 这个函数是只能被合约创建者使用

}

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {

require(_value <= allowance[_from][msg.sender]); // 这句很重要, 地址对应的合约地址(也就是token余额)

allowance[_from][msg.sender] -= _value;

_transfer(_from, _to, _value);

return true;

}

function approve(address _spender, uint256 _value) public

returns (bool success) {

allowance[msg.sender][_spender] = _value; // 这里是可花费总量

return true;

}

function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {

tokenRecipient spender = tokenRecipient(_spender);

if (approve(_spender, _value)) {

spender.receiveApproval(msg.sender, _value, this, _extraData);

return true;

}

相关文章
DAPP合约系统开发逻辑技术丨DAPP成熟系统开发技术方案
动态调用允许调用者在运行时指定被调用合约及方法,无需预先知道接口。中断配置通常包括:启用外设中断、设置中断优先级分组和使能中断请求。NVIC_InitTypeDef结构体用于中断配置,包含中断源、抢占优先级、响应优先级和使能状态。中断源定义在IRQn_Type枚举中,如WWDG_IRQn、PVD_IRQn等。抢占优先级值依赖于优先级分组设定。
|
4月前
|
安全 区块链
DAPP模式系统开发设计方案丨DAPP合约系统开发技术方案
DAPP模式系统开发设计方案丨DAPP合约系统开发技术方案
|
9月前
|
安全 区块链
DAPP公链合约系统开发技术原理丨DAPP公链合约系统开发详细源码及案例
智能合约dapp系统开发是基于链游技术开发的应用程序,它利用智能合约来实现去中心化的应用。智能合约是一种程序,它可以在链游上运行,根据指定的条件自动执行。智能合约dapp系统开发的核心在于智能合约的开发,智能合约的开发需要具备一定的链游技术知识和编程技能
|
5月前
|
安全 测试技术 区块链
“DApp智能合约开发:流程、难点与解决方案”
DApp(去中心化应用)是一种运行在区块链上的程序,旨在为用户提供一种去中心化的、安全的、抗审查的应用体验。
|
9月前
|
存储 安全 算法
DAPP合约系统开发|DAPP去中心化模式系统开发(成熟技术)
透明度和灵活性:任何区块链用户都可以评估合约逻辑和底层机制
|
10月前
|
JavaScript 前端开发 Go
区块链Dapp智能合约系统开发(开发功能)丨dapp/defi代币合约项目系统开发成熟案例版及源码部署
The following are important technical points in the development process of smart contract DApp:
|
11月前
|
机器学习/深度学习 存储 传感器
Mortonn摩顿DAPP合约系统开发项目方案
Mortonn摩顿DAPP合约系统开发项目方案
148 0
|
区块链
DAPPQ去中心化智能合约开发正式版丨DAPP去中心化智能合约系统开发(开发方案)丨DAPP智能合约去中心化系统源码
Artificial intelligence technology is one of the core technologies in the era of intelligent industry.Artificial intelligence technology includes machine learning,deep learning,natural language processing,computer vision,and so on.The application of these technologies enables machines to learn,under
|
区块链 计算机视觉
什么是DAPP智能合约系统开发技术方案丨智能合约区块链DAPP项目系统开发流程
什么是DAPP智能合约系统开发技术方案丨智能合约区块链DAPP项目系统开发流程
|
区块链
智能合约区块链项目开发系统搭建方案
This article is compiled and released by WeChaT: kaifa873, which is only for reference of project development requirements! telegram @ sleu88
245 0