草庐IT

Solidity之Mappings篇

全部标签

solidity学习-如何在智能合约中打印Log日志

在写合约的过程中经常会遇到一些错误。这个时候想要查看合约运行过程中的一些数据,那么就可以用以下方法:在合约中创建一个Event,起名为Log在想要打印日志的地方调用事件emitLog(...),就可以查看运行过程中的数据了如下图:点击deploy,在控制台就可以查看打印出的数据了在方法中也可以使用(但是:不能使用view修饰)调用consoleLog,打印出日志 以下是demo的完整代码//SPDX-License-Identifier:MITpragmasolidity>=0.8.0;//版本号,使用大于0.8.0的版本编译器编译contractTestLog{//创建一个Event,起名为

【Solidity】Gas estimation failed-Gas estimation errored with the following message

*【Solidity】Gasestimationfailed-Gasestimationerroredwiththefollowingmessage这个问题一般会伴随以上这个图片出现,图片搬来的,因为我的已经解决这个问题我在网上也看了很多提示和解决办法,有位博主是说自己代码出的问题,但是我感觉并不完全是,我这边用的是ganache的测试链,在metamask上连接部署的时候出现问题,后来自己发现其实是链的问题,我这边重启了ganache测试链,并且重新把账号导入之后就好了。或者提供一个在外网看到的方法在你metamask里面:设置->高级->重设账户,一顿操作过后可能会成功最后总结一下就是大概

Solidity--合约升级风险

一. 什么是智能合约智能合约通俗点说就是写在区块链上面的代码,代码里面编写着严谨完善的规则,一旦某个用户满足了合约里面的规则条件,就会触发里面的代码,执行某个方法。二.为什么要使智能合约达到可升级智能合约的特点之一就是部署到链上之后不能修改,这一机制使得合约的交互方都可以信任合约。但也带来了一系列的问题,并且如果已部署的合约发现漏洞,也是无法修复的。假如发现了bug,致命性的,必须修复,那如何处理?就是使用合约达到可升级优化才能满足需求三.升级合约的机制原理什么是合约升级使已经部署上链的合约做到可优化可更改,例如链上的业务逻辑代码和状态变量达到可增删改的功能.合约升级的实现机制原理目前实现的方

Solidity智能合约开发 — 3.2-合约的fallback和函数重载

1.fallback函数每个智能合约有且仅有一个未命名的函数,称为fallback函数,没有参数且没有返回值,可见性必须是external,且可以是virtual的(即可以被重载),也可以有修改器modifier。fallback执行条件:如果在一个合约的调用中,没有其他函数与给定的函数标识符匹配时(或没有提供调用数据),fallback函数会被执行;当合约收到以太时,fallback函数会被执行。执行条件1:如果在一个合约的调用中,没有其他函数与给定的函数标识符匹配时(或没有提供调用数据),fallback函数会被执行//SPDX-License-Identifier:MITpragmaso

Solidity开发之 Ganache 安装

1、官网直接下载安装Ganache-TruffleSuite2、启动后,直接点QUICKSTART即可3、注意,如果是Truffle开发,truffle-config.js应该启用红色圈住的部分,否则会报如下错误:>Somethingwentwrongwhileattemptingtoconnecttothenetworkathttp://127.0.0.1:7545.Checkyournetworkconfiguration.CouldnotconnecttoyourEthereumclientwiththefollowingparameters:-host>127.0.0.1-port>7

Solidity 基础知识

Solidity基础知识官网:Solidity版本设置//SPDX-License-Identifier:MIT表示身份协议//^0.8.7表示当前代码支持0.8.7及以后solidity版本//>=0.8.7基本数据类型//基础数据类型:booleanuint(无符号整数)intaddressbytesboolsutFlag=true;//uint存储空间大小可以设置最少设置8(1bit占8位,以2的指数倍设置)默认是256一般都显式定义出来如果不赋值默认为0uint256publicstudentNum=123;//bytes一般是0x开头接一些随机的数字字母,这里存的字符串xiao,会自

solidity合约调合约方法汇总

共六种方法://SPDX-License-Identifier:MIT//合约调合约方法//参考视频pragmasolidity^0.8;contractCallee{uintpublicx;uintpublicvalue;functionsetX(uint_x)publicreturns(uint){x=_x;returnx;}functionsetXandSendEther(uint_x)publicpayablereturns(uint,uint){x=_x;value=msg.value;return(x,value);}}contractCaller{addresspublicric

Solidity智能合约安全指南:预防已知攻击的关键.

文章目录系列文章目录前言一、攻击类型二、攻击类型分析1.简叙2.代码分享3.预防措施总结前言在进行Solidity智能合约开发时,确保合约的安全性是至关重要的。虽然编写一个简单的合约可能相对容易,但要确保它能够抵御各种已知和未知的攻击却是一项艰巨的任务。为了有效预防攻击,首先我们需要了解已知的一些常见攻击类型,只有了解清楚这些攻击,才能更好地保护合约的安全性本文将为您汇总一些Solidity中已知的攻击类型,并提供一些预防这些攻击的关键措施(以下就是个人整理的一些已知攻击)一、攻击类型:重入算术溢出意外之财delegatecall默认的可见性随机错觉外部智能合约引用短地址/参数攻击未检查的返回

【区块链 | EVM】深入理解学习EVM - 深入Solidity数据存储位置

目录目录简介EVM是一个工业工厂为什么要在Solidity中理解Evm数据位置?数据位置→概述

【区块链 | EVM】深入理解学习EVM - 深入Solidity数据存储位置

目录目录简介EVM是一个工业工厂为什么要在Solidity中理解Evm数据位置?数据位置→概述