草庐IT

Solidity之Mappings篇

全部标签

区块链web3智能合约Solidity学习资源整理

简单说明:Solidity是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了C++,Python和Javascript语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。Solidity中文官方文档:https://solidity-cn.readthedocs.io/zh/develop/https://learnblockchain.cn/docs/solidity/index.html在线remix编译器:https://remix.ethereum.org/目前尝试Solidity编程的最好的方式是使用Remix(需要时间加载,请耐心等待)。Remix是一个基于

【Solidity】Remix在线环境及钱包申请

好久没有学习区块链方面的知识了,目前通过自学大致掌握了Fabric联盟链的搭建,链码编写、部署,api调用,可以独立开发出一些基于fabric的应用,感觉开发出去中心化的应用还是很有意思的,因为他与之前开发的ssm项目这种传统中心化的app相比具有自己独特的优点。第一次开发出来很有成就感,并且还申请了自己的软著。但是最近看论文,感觉有很多的实验都是用公链做的,基本上都是Ethereum,使用的是Solidity语言来编写的智能合约,所以自己就学习了一下。希望通过笔记给自己带来更深刻的学习印象。1.什么是Ethereum?Ethereum是公有链的一种,中文称之为以太坊。和区块链类似,他也有自己

Solidity攻击合约:“被偷走的资金”

        在以太坊智能合约开发中,Solidity是最常用的编程语言。然而,由于代码编写不当或缺乏安全意识,合约可能面临各种攻击。本文将通过一个简单的Solidity合约示例,展示一个潜在的攻击合约,并分析其相对于原本合约的危害以及攻击是如何实现的。目录一、原本合约示例二、攻击合约示例三、危害及攻击实现危害:攻击合约的危害在于,攻击者可以构造一个交易。攻击实现:攻击者会按照以下步骤执行攻击:总结一、原本合约示例假设我们有一个简单的“存款合约”(SavingsContract),允许用户向合约发送以太币(ETH),并可以后续提取。代码如下://SPDX-License-Identifier

solidity语言语法总结

前言版权声明:表示合约采用MIT许可证:(补充:MIT许可证是一种宽松的开源许可证,允许用户自由使用、修改和再发布代码,只需要包含原始许可声明即可。)//SPDX-License-Indentifier:MIT版本声明:(用来指示编译器按照solidity的哪一个版本来编译智能合约)pragmasolidity^0.8.0;//指定固定版本:可以使用固定的版本号来声明Solidity的版本pragmasolidity0.8.0;//指定兼容版本范围:有时候我们希望指定一个兼容版本的范围,可以使用^符号,表示与指定版本兼容的范围以下例子(>=0.8.0,=,,=0.6.0版权声明和版本声明在智能

solidity案例详解(六)服务评价合约

 有服务提供商和用户两类实体,其中服务提供商部署合约,默认诚信为true,用户负责使用智能合约接受服务及评价,服务提供商的评价信息存储在一个映射中,可以根据服务提供商的地址来查找评价信息。用户评价信息,服务提供商的评价信息会随之更新。服务提供商查询自己的总评分,评价次数以及所有用户评价内容使用了Solidity语言提供的abi.encodeWithSignature函数将评价信息打包成交易。然后调用call函数发送交易,并等待交易确认。最后,将用户评价信息上传至智能合约,以便在区块链上进行永久存储 各合约功能: 1.合约的构造函数在合约部署时执行,将合约创建者的地址设为服务提供商的地址,并将其

二、solidity 基础进阶(2.1)—— library 库合约《实战NFT web3 solidity(新版本0.8.+)》

《web3solidity0.8.+版本(持续更新新版本内容)基础到实战NFT开发》会及时更新新版本solidity内容,以及完成最终的NFT实战商业项目部分。注:由于是付费专栏内容,若有错误请及时联系@1_bit,博客链接:https://blog.csdn.net/A757291228,或在文章下留言,收到后将会对错误进行改正,若是版本更新导致的问题也希望大家对错误进行提交,尽力去保证付费用户该得到的权益。文章目录可查看:目录(文章更新中…)更新内容将会在目录中更新…友情提示:本系列文章读者最好学过一门编程语言,面向对象语言更佳,文章所有代码将会完整贴出。一、库librarysolidit

Solidity 中的数学(第 4 部分:复利)

本文是关于在Solidity中进行数学运算的系列文章中的第四篇。这次的主题是:复利。 介绍在我们之前的文章中,我们讨论了百分比以及它们是如何在Solidity中计算的。在金融数学中,百分比通常与贷款和存款支付的利息有关。在每个时间段结束时,比如一个月或一年,本金的一定百分比将支付给贷方或存款持有人。这种模式称为单利,每期支付的百分比称为定期利率。在计算机程序中,通常使用利率而不是利率。例如,对于3%的利率,该比率为0.03。因此,一个时期的利息支付金额可以计算为利息率乘以本金金额,并且从上一篇文章中我们已经知道如何在Solidity中有效且准确地执行此操作。单利模式很简单,但如果利息不是立即支

038.Solidity入门——25调用其他合约的方法

Solidity提供了几种方式用于调用其他合约:方法描述直接调用使用address.call函数,可以向另一个合约发送消息并返回结果。低级调用使用address.call或address.callcode函数,可以执行一个外部合约中的代码。与直接调用不同,低级调用允许合约调用修改其状态。委托调用使用address.delegatecall函数,可以调用另一个合约中的代码,但是在执行代码时将存储器、状态和msg.value转发到当前合约中。示例代码:pragmasolidity^0.8.7;contractOtherContract{uintpublicvalue;//公共变量functions

以太坊智能合约开发2-Solidity语法学习

solidity是一个面向对象的静态语言,很多语法与java等语言很像,都有继承,抽象、多态等概念,这里只重点记录Solidity中的特有的内容。ps:以下有什么说的不对的地方欢迎大家指正,共同进步!合约(Contract)​在solidity中,contract就是java等其它语言的对象的概念,称为合约,其中包含状态变量、方法、modifier方法、事件、异常、结构体、枚举。此外,也有抽象合约、库(libraries))、接口(interface)的对象,抽象合约和接口的使用和其它面向对象的语言完全一致。​状态变量其实和java中的成员变量,如果为public方法,会默认为getter方法

Solidity—— call、staticcall和delegatecall用法介绍

在一个智能合约中调用另外一个外部智能合约的函数,我们可以通过接口 interface 的方式进行调用。另外,还有一种比较底层的调用方法,就是使用call、staticcall和delegatecall函数。它们是一种低级、底层的调用方式,具有更大的灵活性。我们将分别进行讲解。一、底层调用call1、函数语法(boolsuccess,bytesmemoryresult)=address(contractAddress).call{value:valueToSend}(data);其中的返回值的含义如下:success:指示调用外部函数是否成功。result:调用的外部函数的返回值。其中的参数的含