草庐IT

Solidity之Mappings篇

全部标签

如何通过Solidity编程语言创建高度定制化的加密货币

作者:禅与计算机程序设计艺术1.简介本文将详细介绍如何通过Solidity编程语言创建高度定制化的加密货币。文章适合具有一定编程基础的读者,并且需要具备一些经济学、金融学或数字货币相关知识。如无此类知识储备,建议先阅读相关的专业书籍。CryptoCurrency和Blockchain技术的兴起已经让越来越多的人了解这个世界上正在发生的改变。作为新时代的先锋,我相信每个人都在探索新潮的知识和方法,而创造出属于自己的价值系统。那么,在过去的几年里,有哪些项目或组织成功地开创了新的加密货币或者区块链项目呢?又有哪些项目或组织由于种种原因失败了呢?这些项目背后都经历了怎样的命运?在本文中,我们将尝试从

【MoonBeam】Solidity开发工具以及对应使用示例

本文将介绍Solidity开发中的两种工具:RemixIDE和HardhatRemixSolidity在线编译器无需安装可快速开发、部署和测试Solidity智能合约支持插件,包括OpenZeppelin,Oraclize和Solium等可以本地安装,使用命令行操作,完全开源Remix部署ERC-721合约进入Remix,创建OpenZeppelinERC721.sol插入以下代码pragmasolidity^0.8.0;import"https://github.com/OpenZeppelin/OpenZeppelin-contracts/blob/master/contracts/tok

Solidity中的去中心化金融(DeFi)应用开发

去中心化金融(DecentralizedFinance,DeFi)是基于区块链技术的一种新型金融模式,它通过智能合约和去中心化应用程序(DApps)实现了传统金融中的各种功能,如借贷、交易、存款和投资,而无需依赖传统金融机构。Solidity是一种专为以太坊平台设计的智能合约编程语言,它成为了构建DeFi应用的首选语言。本篇博客将介绍Solidity中的去中心化金融应用开发,并探讨其对金融领域的潜在影响。引言随着区块链技术的发展,去中心化金融应用(DeFi)成为了数字金融领域的热门话题。DeFi应用提供了一种无需传统金融机构参与的金融服务模式,这使得金融活动更加公平、透明和可访问。Solidi

Solidity基础七

无论风暴将我带到什么岸边,我都将以主人的身份上岸目录一、Solidity的单位 1.货币Ether2.时间单位Time二、地址的形成三、以太坊的账户1.内部账户(简称CA)2.外部账户(简称EOA)3.内部账户和外部账户的比较 4.判断是内部账户还是外部账户的方法四、消息调用和余额查询五、交易1.公钥和私钥的区别2.交易的小知识 六、Soliditythis和msg.sender、msg.value的用法七、Solidity的转账函数1.transfer()2.send()3.call()4.transfer、send、call的区别和用法八、Solidity接收函数九、Solidity回退函

深入了解solidity-数组和结构体

这一篇文章主要介绍solidity中的两个重要变量类型:数组(array)和结构体(struct)。数组是一种数据结构,它是存储同类元素的有序集合。数组中的特定元素由索引访问,索引值从0开始。例如,声明一个数组变量,如numbers,可以使用numbers[0]、numbers[1]和…,数字[99]表示单个变量。数组(Array)是solidity常用的一种变量类型,用来存储一组数据(整数,字节,地址等等)。数组主要有两种固定长度数组和可变长度数组。要声明一个固定长度的数组,需要指定元素类型和数量,如下所示typearrayName [ arraySize ];这是一维数组。arraySiz

【区块链】以太坊Solidity编写一个简单的Hello World合约

熟悉一门语言得从HelloWorld!开始,因为这是最简单的一个输出形式。我们先在contracts目录下建立一个helloworld.sol文件进入编辑//SPDX-License-Identifier:MITpragmasolidity>=0.4.220.9.0;contracthelloworld{uintpublicbalance;/**********Begin**********///函数名:sayHelloWorldfunctionsayHelloWorld()publicpurereturns(stringmemory){return("HelloWorld!");}/****

Solidity - 合约结构 - 错误(error)- ^0.8.4版本新增

我们知道,合约结构包含 状态变量、函数、函数修改器(modifier)、事件(event)、结构体(struct)和枚举类型(enum)。在^0.8.4版本,合约结构增加了错误(error),为应对失败时,错误可以在revert中使用。与错误字符串相比,error花费更少的gas(即更便宜),并且允许编码额外的数据,还可以使用natspec注释形式。举个栗子,代码如下://SPDX-License-Identifier:MITpragmasolidity^0.8.4;///@dev没有足够的金额///@param_balance表示当前合约账户余额///@param_amount转账金额err

Solidity 合约安全,常见漏洞 (下篇)

Solidity合约安全,常见漏洞(下篇)Solidity合约安全,常见漏洞(上篇)不安全的随机数目前不可能用区块链上的单一交易安全地产生随机数。区块链需要是完全确定的,否则分布式节点将无法达成关于状态的共识。因为它们是完全确定的,所以任何"随机"的数字都可以被预测到。下面的掷骰子函数可以被利用。contractUnsafeDice{functionrandomness()internalreturns(uint256){returnkeccak256(abi.encode(msg.sender,tx.origin,block.timestamp,tx.gasprice,blockhash(b

Solidity 合约安全,常见漏洞(第三篇)

Solidity合约安全,常见漏洞(第三篇)ERC20代币问题如果你只处理受信任的ERC20代币,这些问题大多不适用。然而,当与任意的或部分不受信任的ERC20代币交互时,就有一些需要注意的地方。ERC20:转账扣费当与不信任的代币打交道时,你不应该认为你的余额一定会增加那么多。一个ERC20代币有可能这样实现它的转账函数,如下所示:contractERC20{//internallycalledbytransfer()andtransferFrom()//balanceandapprovalcheckshappeninthecallerfunction_transfer(addressfro

Solidity中的pure和view修饰符的区别是什么?什么时候添加pure和view修饰符?

Solidity是一种用于编写智能合约的编程语言,它被广泛应用于以太坊区块链上的智能合约开发。在Solidity中,有两种函数修饰符,即“pure”和“view”,它们被用来指示函数的行为。这篇文章将深入探讨“pure”和“view”的含义,以及它们在Solidity中的应用。什么是“pure”函数“pure”是一种函数修饰符,它用于标识一个函数不会访问或修改合约的状态,并且不会与其他合约进行交互。在Solidity中,如果一个函数被声明为“pure”,则编译器将确保该函数仅依赖于其参数,并且不会在执行过程中改变任何状态。下面是一个简单的“pure”函数的例子:pragmasolidity^0