当前位置: 首页 > news >正文

网站开发的软件介绍郑州企业网站建设费用

网站开发的软件介绍,郑州企业网站建设费用,做cf网站,遵义建设厅网站存储合约示例 //说明源代码是根据GPL 3.0版本授权的 // SPDX-License-Identifier: GPL-3.0//告诉编译器源代码所适用的Solidity版本为0.4.16 及 0.9.0 pragma solidity 0.4.16 0.9.0;contract SimpleStorage {//声明了一个名为storedData的状态变量#xff0…存储合约示例 //说明源代码是根据GPL 3.0版本授权的 // SPDX-License-Identifier: GPL-3.0//告诉编译器源代码所适用的Solidity版本为0.4.16 及 0.9.0 pragma solidity 0.4.16 0.9.0;contract SimpleStorage {//声明了一个名为storedData的状态变量其类型为 uint (256位无符号整数uint storedData;function set(uint x) public {storedData x;}function get() public view returns (uint) {return storedData;} }在这个例子中上述的合约定义了set和get 函数可以用来修改或检索变量的值。 要访问当前合约的成员如状态变量通常不需要像添加 this. 这样的前缀你只需要通过名字就可以直接访问它。 该合约能完成的事情并不多由于以太坊构建的基础架构的原因它能允许任何人在合约中存储一个单独的数字并且这个数字可以被世界上任何人访问且没有可行的办法阻止你发布这个数字。当然任何人都可以再次调用 set 传入不同的值覆盖你的数字但是这个数字仍会被存储在区块链的历史记录中。随后我们会看到怎样施加访问限制以确保只有你才能改变这个数字。 货币合约Subcurrency示例 下面的合约实现了一个最简单的加密货币。这里币确实可以无中生有地产生但是只有创建合约的人才能做到实现一个不同的发行计划也不难。而且任何人都可以给其他人转币不需要注册用户名和密码 —— 所需要的只是以太坊密钥对。 // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.4;contract Coin {// 关键字“public”让这些变量可以从外部读取//声明了一个可以被公开访问的 address 类型的状态变量,//address 类型是一个160位的值且不允许任何算数操作,这种类型适合存储合约地址或外部人员的密钥对//关键字 public 自动生成一个函数允许你在这个合约之外访问这个状态变量的当前值,如果没有这个关键字其他的合约没有办法访问这个变量address public minter;//创建一个公共状态变量但它是一个更复杂的数据类型。 该类型将address映射为无符号整数//Mappings 可以看作是一个 哈希表 它会执行虚拟初始化以使所有可能存在的键都映射到一个字节表示为全零的值//它既不能获得映射的所有键的列表也不能获得所有值的列表mapping (address uint) public balances;// 轻客户端可以通过事件针对变化作出高效的反应event Sent(address from, address to, uint amount);// 这是构造函数只有当合约创建时运行constructor() {minter msg.sender;}function mint(address receiver, uint amount) public {require(msg.sender minter);balances[receiver] amount;}// Errors allow you to provide information about// why an operation failed. They are returned// to the caller of the function.error InsufficientBalance(uint requested, uint available);function send(address receiver, uint amount) public {if (amount balances[msg.sender])revert InsufficientBalance({requested: amount,available: balances[msg.sender]});balances[msg.sender] - amount;balances[receiver] amount;emit Sent(msg.sender, receiver, amount);} }address public minter; 关键字 public 自动生成一个函数允许你在这个合约之外访问这个状态变量的当前值。如果没有这个关键字其他的合约没有办法访问这个变量。由编译器生成的函数的代码大致如下所示暂时忽略 external 和 view function minter() external view returns (address) { return minter; }mapping (address uint) public balances; 而由 public 关键字创建的getter函数 getter function 则是更复杂一些的情况 它大致如下所示 function balances(address account) external view returns (uint) {return balances[account]; }event Sent(address from, address to, uint amount); 这行声明了一个所谓的“事件event”它会在 send 函数的最后一行被发出。用户界面当然也包括服务器应用程序可以监听区块链上正在发送的事件而不会花费太多成本。一旦它被发出监听该事件的listener都将收到通知。而所有的事件都包含了 from to 和 amount 三个参数可方便追踪交易。 constructor() {minter msg.sender; }特殊函数 constructor 是仅在创建合约期间运行的构造函数不能在创建之后调用。 构造函数永久存储创建合约的人的地址: msg (类似的还有 tx 和 block ) 是一个特殊的全局变量 这些变量允许我们访问区块链的属性。 msg.sender 始终记录当前外部函数调用是来自于哪一个地址。 function mint(address receiver, uint amount) public {require(msg.sender minter);balances[receiver] amount; }mint 函数用来新发行一定数量的币到一个地址。 require 用来检查某些条件如果不满足这些条件就会回推所有的状态变化。 在这个例子中, require(msg.sender minter); 确保只有合约的创建者可以调用 mint。 一般来说创建者可以随心所欲地铸造代币但在某些时候这将导致一种叫做 “溢出” 的现象。 请注意由于默认的 算术检查模式 如果表达式 balances[receiver] amount; 溢出交易将被还原。 即当任意精度算术中的 balances[receiver] amount 大于 uint (2**256 - 1)。 同样在在函数 send 中的 balances[receiver] amount; 这对语句来说也是如此。 error InsufficientBalance(uint requested, uint available);Errors 用来向调用者描述错误信息。Error与 revert 语句 一起使用。 revert 语句无条件地中止执行并回退所有的变化。 function send(address receiver, uint amount) public {if (amount balances[msg.sender])revert InsufficientBalance({requested: amount,available: balances[msg.sender]});balances[msg.sender] - amount;balances[receiver] amount;emit Sent(msg.sender, receiver, amount);}任何人已经拥有一些代币都可以使用 send 函数来向其他人发送代币。如果发送者没有足够的代币可以发送 if 条件为真 revert 将触发失败并通过 InsufficientBalance 向发送者提供错误细节。
http://www.pierceye.com/news/699239/

相关文章:

  • 甘肃 网站建设高端品牌护肤品
  • 南昌网站建设公司哪家好导航类网站怎么做
  • 织梦如何做汽车贸易网站wordpress调用主站的文章
  • 软件公司网站模板下载上海史特网站建设
  • 辽宁省锦州市住房与城乡建设厅网站网站的建设特色
  • 笨鸟网站开发如何做vip微信电影网站
  • 网站正在建设中图片南召seo快速排名价格
  • 网站怎么上线东莞网站seo优化托管
  • 网站建设免费的服务器关键词云图
  • 深圳网站建设哪家便宜彩票网站怎么做推广
  • 阿凡达网站建设西安免费做网站公司
  • 佛山的网站建设公司打鱼网站开发
  • 洛阳外贸网站推广easyui 网站设计
  • 租赁网站空间东营市建设
  • 网络课程网站模板wordpress 编辑器 插件
  • 绝对大气漂亮的响应式网站后台模板什么是网络营销与概念
  • 网站搜索功能模块wordpress 搜索模版
  • 怎么可以创建网站体育设施建设网站
  • 中航建设集团网站wordpress实现分页
  • 企业网站现状舟山seo网络优化招聘
  • 棋牌网站开发工程师网络彩票建立网站
  • 上海正规建设网站私人订制网站建设中 显示
  • 网站建设广告宣传素材论坛网站制作教程
  • 苏州怎么做网站如何做公司自己的网站
  • 网站内容通过服务器会不会被更改旅游网站建设流程是什么意思
  • 建立中文网站的英文免费网站空间
  • 外国人做家具的网站免费自己做网站软件
  • 品牌网站建设毛尖2新加坡二手手机网站大全
  • 服装集团网站建设wordpress rss格式
  • 如何进行网站分析设计说明的英文