草庐IT

Solidity教程一

全部标签

LEARNING_CRYPTO|搭建个人以太坊测试网络+测试Solidity部署(Ganache+truffle)

前言:最近在看这本书:《精通以太坊:开发智能合约和去中心化应用》在看书和找资料的过程中发现了一个问题,我的这本书代码有点旧,C语言可能二三十年之前的书都可以看,这本书出版才没几年,Solidity就已经从0.4----->0.8,其中的生态更是蓬勃发展,也勿需我多言。这几年发生了很多很多以前没发生过的事情,就像那句老话说的:看书你只能知道以前发生过的,看semiproject你知道正在发生的,和presenter交流你能知道未来将要发生的。光影似箭,这段时间世界变化的很快,想跟上脚步,也只有好好学习。说起时间,前两天路过大学,在学校食堂的厕所里遇到了校长,他也和我提到了珍惜时间,切勿浪费。确实

Solidity极简入门#21. 调用其他合约

调用已部署合约开发者写智能合约来调用其他合约,这让Ethereum网络上的程序可以复用,从而建立繁荣的生态。很多web3项目依赖于调用其他合约,比如收益农场(yieldfarming)。这一讲,我们介绍如何在已知合约代码(或接口)和地址情况下调用目标合约的函数。目标合约我们先写一个简单的合约OtherContract来调用。contractOtherContract{uint256private_x=0;//状态变量_x//收到eth的事件,记录amount和gaseventLog(uintamount,uintgas);//返回合约ETH余额functiongetBalance()viewp

solidity入门

1.solidity简介Solidity(中文名称:Solidity语言)是一种面向智能合约(SmartContracts)的高级编程语言,最初由以太坊(Ethereum)的团队开发并用于以太坊平台上的智能合约编写。Solidity的设计目标是简化以太坊智能合约的开发,使开发者能够创建安全、可靠的去中心化应用程序(DApps)。以下是Solidity的一些关键特点和重要概念:静态类型语言:Solidity是一种静态类型语言,这意味着在编译时必须指定变量的数据类型。这有助于提高代码的安全性和可读性。以太坊智能合约:Solidity主要用于编写以太坊智能合约,这些合约是以太坊区块链上的自执行代码。

solidity第五课——变量数据存储和作用域

solidity中的引用类型solidity中的引用类型包括数组array,结构体struct和映射mapping。这类变量占空间大,赋值时候直接传递地址(类似指针)。由于这类变量比较复杂,占用存储空间大,我们在使用时必须要声明数据存储的位置。solidity数据存储位置有三类:storage,memory和calldata。不同存储位置的gas成本不同。storage类型的数据存在链上,类似计算机的硬盘,消耗gas多;memory和calldata类型的临时存在内存里,消耗gas少。大致用法:storage:合约里的状态变量默认都是storage,存储在链上。memory:函数里的参数和临时

Solidity编码规范

1、命名规范避免使用小写的L,大写的I,大写的O应该避免在命名中单独出现,因为很容易产生混淆。合约、库、事件、枚举及结构体命名——大驼峰合约、库、事件及结构体命名应该使用单词首字母大写的方式。比如:SimpleToken,SmartBank,CertificateHashRepository,Player。函数、参数、变量及修饰器函数、参数、变量及修饰器应该使用首单词小写后面单词大写的方式,如:~函数名应该如:getBalance,transfer,verifyOwner,addMember。~参数和变量应该如:initialSupply,senderAddress,account,isPre

035.Solidity入门——22 payable

payable关键字用于声明一个函数或合约可以接收代币的转账,当payable关键字用于函数声明时,该函数可以被调用者附带一定数量的代币,从而执行一些特殊的操作。示例代码:contractMyContract{//定义一个payable函数,接收转账functionmyPayableFunction()publicpayable{//在函数体内进行一些操作,例如修改数据等}//定义一个函数,将代币转账到指定的地址functionsendEther(addresspayable_to)publicpayable{//检查合约余额是否充足,以及传入的_to地址是否有效require(address

【区块链实战】Solidity 智能合约如何给账户充值

目录一、实战场景二、知识点智能合约智能合约函数智能合约充值payable关键字智能合约部署地址智能合约的运行合约this对象三、菜鸟实战四、运行结果一、实战场景Solidity智能合约如何给账户充值二、知识点智能合约智能合约函数智能合约充值payable关键字智能合约部署地址智能合约的运行合约this对象三、菜鸟实战//SPDX-License-Identifier:GPL-3.0//Author:菜鸟实战//Description:智能合约如何给账户充值//编译器版本pragmasolidity>=0.7.0四、运行结果1、充值金额2、充值并查看结果

【从0学习Solidity】33. 发送空投

【从0学习Solidity】33.发送空投博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!在币圈,最开心的一件事就是领空投,空手套白狼。这一讲,我们将学习如何使用智能合约发送ERC20代币空投。空投Airdrop空投是币圈中一种营销策略,项目方将代

solidity函数重载以及调用

如何调用重载方法web3.js调用call调用重载方法查数据constweb3=newWeb3('https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161')constcontract=newweb3.eth.Contract(ContractAbi,ContractAddress)constrewardsBalance=awaitcontract.methods['f(uint256,address)'](1,"0x0000000000000000000000000000000000000000").call()console

区块链智能合约solidity的中的一些关键字

目 录pragmamappingmsg对象block对象contractconstructorstruct数据地址地址类型addresspayablerevert以下场景使用revert():require以下场景使用require():assert以下场景使用assert():访问权限关键字internalpublicprivateexternalfunctionreturnsreturnviewpureconstanteventemitmodifierpragma        pragma是指定当前Solidity文件编译器版本的指令。在pragma指令的帮助下,我们可以针对自己的代码选