前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于泰山众筹模式系统开发合约搭建解析

关于泰山众筹模式系统开发合约搭建解析

原创
作者头像
l8l259l3365
发布2022-08-16 09:31:27
4740
发布2022-08-16 09:31:27
举报
文章被收录于专栏:用户9880750的专栏

泰山众筹模式源码搭建

  郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

pragma solidity ^0.4.17;

contract Faucet {

function withdraw(uint amount) public {

require(amount <= 1000000000000000000);

msg.sender.transfer(amount);

}

function() public payable{}

}

这是一个模拟水龙头(Faucet)工作的智能合约。也就是用户在以太坊的测试网,通过水龙头领取测试币的过程。下面来详解这段合约的每一行:

第一行

pragma solidity ^0.4.17;

所有的 Solidity 源码都必须冠以 "version pragma" — 标明 Solidity 编译器的版本. 以避免将来新的编译器可能破坏你的代码。

当前的版本是Solidity 0.4.17

第二行

contract Faucet { }

contract 合约

Faucet 合约名称(可自定义)

{ }里面包含的内容,就是一份合约的基本模块。

Solidity 的代码都包裹在合约里面. 一份合约就是以太应币应用的基本模块, 所有的变量和函数都属于一份合约, 它是你所有应用的起点.

第三行

function withdraw(uint amount) public {

function 函数

withdraw(uint amount) 定义一个名称为withdraw的函数名,参数为unit(无符号整数类型)的amount

public 此函数是公开可见的,可以从外部调用

{ }里面是函数的内容

第四行

require(amount <= 1000000000000000000);

require 条件判断语句,如果语句为真(True)则执行,语句为假(False),则不执行。

amount <= 1000000000000000000 这里的amount表示以太币的数量,单位为wei。与比特币一样,以太币也不是无限可分的,以太币的最小单位是Wei。

第五行

msg.sender.transfer(amount);

msg.sender表示当前合约调用的地址

transfer(amount) 表示转账的数量

第六行

function() public payable{}

这是一个回退函数(Fallback Function)

一个合约可以有一个匿名函数。此函数不能有参数,不能返回任何值。如果没有其他函数与给定的函数标识符匹配,或者如果根本没有提供数据,将执行一个合约的调用。

此外,每当合同接收没有数据的纯Ether时,会执行回退函数。此外,为了接收Ether,回退函数必须标记为payable。如果没有这样的函数,合约不能通过常规transactions接收Ether。

通俗地讲,我们部署这个水龙头合约,是不需要转账ETH的,只需要花费gas。如果没有回退函数,合约不能通过常规transactions接收Ether。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档