代码编织梦想

以太币单位(Ether)

甭管是虚拟货币还是现实中的“稳定币”,他们都有各自的货币单位。当然咯,作为以太坊区块链上交易的虚拟货币以太坊也是有属于自己的那一套货币单位的。

而目前以太币(Ether)主要分为这三个:weigwei以及ether。或许您之前还见过 finneyszabo,但这两个早在solidity 0.7.0就被删除了,而gwei却是solidity 0.6.11新添加的!

使用起来很容易,便是在数字后边跟上这些以太币单位,当然,数字与以太币单位之间需要空格隔开的,这一点想必您应该是清楚的吧!

若没加以太币单位,那么它缺省为wei

assert(1 wei == 1);
assert(1 gwei == 1e9);
assert(1 ether == 1e18);

关于assert的用法,我们后续会讲到,可以理解为断言,用于判断表达式是否为true,反之则抛出错误!

时间单位

说到时间单位,您肯定会想到生活中的时(hour)分(minute)秒(second)以及天(day)周(week)

Solidity 时间单位有:secondsminuteshoursdaysweeksseconds是时间的缺省单位。

早期版本(solidity 0.5.0 之前但不包括)还有一个years用来表示的时间,由于闰年的缘故,便废除了。

  • 1 == 1 seconds
  • 1 minutes == 60 seconds
  • 1 hours == 60 minutes
  • 1 days == 24 hours
  • 1 weeks == 7 days
uint today = 今天的时间戳;
uint tomorrow = today + 1 days;

特殊变量(全局变量)

它们是 Solidity 在全局命名空间 预设的一些变量和函数,用于获取区块链信息和一些通用的工具函数。

区块和交易属性

  • blockhash(uint blockNumber) returns (bytes32):指定区块的区块哈希 —— 仅可用于最新的 256 个区块且不包括当前区块,否则返回 0 。
  • block.basefee (uint): 当前区块的基础费用
  • block.chainid (uint): 当前链 id
  • block.coinbase ( address ): 挖出当前区块的矿工地址
  • block.difficulty ( uint ): 当前区块难度
  • block.gaslimit ( uint ): 当前区块 gas 限额
  • block.number ( uint ): 当前区块号
  • block.timestamp ( uint): 自 unix epoch 起始当前区块以秒计的时间戳
  • gasleft() returns (uint256) :剩余的 gas
  • msg.data ( bytes ): 完整的 calldata
  • msg.sender ( address ): 消息发送者(当前调用)
  • msg.sig ( bytes4 ): calldata 的前 4 字节(也就是函数标识符)
  • msg.value ( uint ): 随消息发送的 wei 的数量
  • tx.gasprice (uint): 交易的 gas 价格
  • tx.origin ( address ): 交易发起者(完全的调用链)

不要依赖 block.timestampblockhash 产生随机数,除非你明确知道自己做的用意。

时间戳和区块哈希在一定程度上都可能受到挖矿矿工影响。例如,挖矿社区中的恶意矿工可以用某个给定的哈希来运行赌场合约的 payout 函数,而如果他们没收到钱,还可以用一个不同的哈希重新尝试。

当前区块的时间戳必须严格大于最后一个区块的时间戳,但这里能确保也需要它是在权威链上的两个连续区块。

在 Solidity 0.7.0, now ( block.timestamp 的别名) 被移除了。

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/coco2d_x2014/article/details/128311510

web3中文|nft如何促进教育的发展?-爱代码爱编程

自问世以来,NFT已经被应用于教育、艺术等多个领域。不过,相较于艺术行业,大多数人对NFT在教育界的作用知之甚少。 那么,就让我们来看看它们在课堂内外的影响都有哪些。 得益于区块链技术,NFT可以提高教育质量,拓宽教育视野,增加教育资源。 区块链实现不同生态系统之间资产的转移,同时让NMT(NMT是Native Memory Tracking的缩写,

加密市场的「五维投资法」-爱代码爱编程

一.  投资决策三要素 投资方法纷繁庞杂,但万变不离其宗,影响最终收益的因素,脱不开三个方面:胜率、赔率、仓位,通俗来说: 胜率:这一项投资,赢面有多大?有多大的把握盈利而非亏损?胜率决定了一项投资最终赚钱的概率有多大。 赔率:如果可以赚钱,可以获得多高的收益率?可以赚多少倍?赔率决定了收益率的高低。 仓位:需要在这项投资上投入多大仓位的资金?仓位

期货的操作方法(期货的操作方法包括)-爱代码爱编程

期货怎么买卖操作举个例子 以小麦期货为例,期货买卖方式为: (1)投资者交纳5%-10%的保证金后,可委托经纪公司代理期货买卖业务。要注意期货交易的对象是标准化的合约,比如10吨标准化强筋小麦合同。 (2)利用低买高卖或高卖低买的方式交易。比如强筋小麦在1000元/吨的价位时买入一手(小麦一手10吨),在1100/吨的价位时平仓(即作反向交易卖出),

玩以太坊链上项目的必备技能(oop-抽象合约-solidity之旅十)-爱代码爱编程

抽象合约(abstract contract) 前文在讲合约继承的基类构造函数的参数时,有提到抽象合约,也就是说,如果派生合约未能给其继承的基合约指定构造函数参数时,那么,该派生合约必须声明为抽象合约(abstract c

玩以太坊链上项目的必备技能(流程控制-solidity之旅八)-爱代码爱编程

今天我们不讲三国,来讲讲 流程控制 关于什么是流程控制,想来您是知道的吧!可若您确实不晓得,那您看了这篇文或许对流程控制有了初步的了解。 Solidity 和其他语言一样,支持大部分流程控制语句,除了switch和被程序

solidity 基础(一)-爱代码爱编程

Solidity 官网 github Solidity是一种静态类型的花括号(curly-braces)编程语言,旨在开发运行在以太坊(Ethereum)上的智能合约。 Solidity正在迅速发展 作为一门相对年轻

中移链合约常用开发介绍 (一)开发基本流程-爱代码爱编程

一、目的 本文档从 C++ 及智能合约基本概念出发再到实战运行智能合约,介绍了中移链合约开发的基本流程,同时对常见问题做出梳理。本文档将以hello合约作为示例介绍智能合约如何在链上工作,适合刚接触合约开发的开发人员用来了解 EOS 智能合约如何编写、编译、部署、动作调用以及管理授权,帮助其快速了解以及上手智能合约。 二、智能合约介绍 区块链作为一种

智能合约简单介绍-爱代码爱编程

本学期学习了区块链的课程,作业是对于智能合约学习后的报告:   1 智能合约简单了解 1.1智能合约是什么 智能合约是由事件驱动的、具有状态的、部署于可共享的分布式数据库上的计算机程序,多用IF-THEN语句。狭义来说,智能合约是设计相关商业逻辑和算法的程序代码,把人、法律和网络的复杂关系代码化;广义来说,智能合约是一种可以实现自我执行和自我验证的

【外汇天眼】外汇市场交易基本面分析:什么是利率平价(irp)?-爱代码爱编程

利率平价(平价Interest RateParity,也称为IRP利息率,是指外汇市场在所有可自由兑换货币的预期回报率相同时所能提供的平衡条件。 利率平价规定,一种货币对另一种货币的升值(贬值)必须由利率差异的变化抵销。 假设您是一个甲国投资者,并且可以自由支配握有资金以进入本国和另一国的金融市场。同时,假设国际资本流动不存在任何限制和交易成本。那么这

moonbeam和moonriver上动态费用机制提案「中文精简版」-爱代码爱编程

提案发起人:Stephen (aka notlesh),Moonbeam core dev team Moonbeam链上治理又出现了一个新的提案,与用户和开发者都相关,动态费用机制。 动态费用机制从目的出发,是找出降低交易费用,提升有限网络运行效率的有效方案。 兼收并蓄,因地制宜。Moonbeam虽是海外项目,其网络机制的改革却体现了来自古老东

【技术评论】大数据时代,区块链如何解决数据安全和隐私问题-爱代码爱编程

发表时间:2022年6月23日 信息来源:bsvblockchain.org  在这个时代,像GDPR和HIPAA这样的措施为消费者带来了前所未有的数据保护水平,人们理所当然地想知道,由区块链驱动的数据解决方案如何能够符合这些法规的要求。 (全球区块链组织联合创始人)Jorge Sebastiã在沙特愿景2030区块链峰会上发表演讲时,谈到了医疗健康

“双重主要上市”潮流来袭,中通快递“赶时髦”意欲何为?-爱代码爱编程

“双重主要上市”的风今年悄然在资本市场刮起。 7月26日,阿里巴巴申请将香港新增为主要上市地,7月27日,雷军的金山云递交了港股双重主要上市申请,据不完全统计,已有贝壳、小鹏、理想、知乎、B站等9家中概股公司,在美国和香港实现了双重主要上市,宝尊电商、哔哩哔哩、BOSS直聘今年也发布双重主要上市的公告。 中通快递也“赶时髦”了一把,11月18日,其

期货是期权的衍生品(期权期货和其他衍生品)-爱代码爱编程

期货与期权的区别 期货与期权的区别如下: 1.标的物方面:期货交易的标的物是标准的期货合约;而期权交易的标的物则是一种买卖的权利。期权的买方在买入权利后,便取得了选择权。在约定的期限内既可以行权买入或卖出标的资产,也可以放弃行使权利;当买方选择行权时,卖方必须履约。 2.投资者权利与义务方面:期货合同是双向合约,交易双方都要承担期货合约到期交割的义务

玩以太坊链上项目的必备技能(oop-合约继承-solidity之旅九)-爱代码爱编程

继承 我们今天不讲别的,就只讲合约继承相关的内容。(您是不是感觉这话挺眼熟的,没错,您确实看过,前一篇开头便是今天我们不讲三国,来讲讲 流程控制,您会觉得我上头了还是怎么!) 闲话少叙,咱们尽快的切入正题。 有过面向对

区块链北大肖老师学习笔记3-爱代码爱编程

第四节:比特币的共识协议 数字货币和纸质货币区别是可以复制,叫作双花攻击  即double spending attack。 去中心化货币要解决两个问题:①数字货币的发行②怎么验证交易的有效性,防止double spending attack。    答案:①比特币的发行是由挖矿决定的 ②依靠区块链的数据结构 比特币的发行者A拥有铸币权(

区块链入门的几个基本问题-爱代码爱编程

目录 前言比特币区块链区块链大揭秘抛砖引玉故事一故事二总结 引人入胜侃侃而谈去中心化开放性不可篡改性 相关技术共识机制共识机制的两大核心达成共识的主要过程(产生新区块的过程)工作量如何理解?Hash计算B

目前股指期货保证金(目前股指期货保证金是多少)-爱代码爱编程

沪深300股指期货保证金是怎么算的,每个期货公司一样么?如何避免爆仓? 沪深300股指期货的交易保证金计算公式:交易保证金=合约价值*保证金比例=合约价格*合约乘数*保证金比例。 中金所规定,沪深300股指期货(IF)的最低保证金是成交金额的8%左右,具体到各期货公司,加上期货公司的保证金后在15%~20%左右。 比如:如当IF1804价位为4000

现货期货价格关系(现货期货价格关系分析)-爱代码爱编程

期货价格和现价的关系 期货价格是实际的现货价格是由关系的,越到交割日期时期货价格和现货价格的价差无线接近于0 期货价格指的是期货当前价格,而不是期货标的物的现价,期货价格指的是人们对未来某一件商品价格的预判,不能代表现价。 现货和期货涨跌关系 现货和期货大多数情况期货和现货是同涨同跌,期货是现货的远期价格,也就是一种价格预期,不过在期货市场中可能会

玩以太坊链上项目的必备技能(oop-接口-solidity之旅十一)-爱代码爱编程

接口(interface) 我们知道在Java里接口是特殊的抽象类,限制多于抽象类,但随着Java版本的更新,Java中的接口是越来越趋于抽象类了(这样说,可能有点不妥,因为接口本就是特殊的抽象类,只是接口中不能有方法具体

玩以太坊链上项目的必备技能(事件-solidity之旅十二)-爱代码爱编程

事件(Events) Solidity 中的事件(Events)与任何一种编程语言中事件(Events)一样。 一个事件(Events)是一个合约可继承的成员,它在触发(emit)时存储在交易日志中传递的参数。 在EV

基于联盟链的v2x ca信任列表构建-爱代码爱编程

【摘  要】介绍了V2X通信对数字签名技术的需求和应用,以及目前基于PKI的V2X安全认证防护体系架构及其优缺点,随后进一步提出了基于联盟链构建V2X CA可信列表的管理方法,以解决多CA互信问题,并通过实现V2X CA信任列表分布式、去中心化的存储和快速同步,提升V2X通信安全体系的效率,同时降低管理维护成本。 【关键词】V2X;CA;联盟链;信任列表