• 2024-11-18掌控 Solidity:事件日志、继承和接口的深度解析
    Solidity是以太坊智能合约的主要编程语言,它的强大之处在于能够帮助开发者构建安全、高效的去中心化应用。在我参与的多个项目中,事件日志、继承和接口这三个概念始终贯穿其中,成为构建复杂智能合约的关键技术。今天就来聊聊Solidity中的错误处理、事件日志、继承和接口。Solidi
  • 2024-11-16Solidity学习笔记-1
    01.HelloWorld开发工具Remix//SPDX-License-Identifier:MIT//软件许可,不写编译会出现警告//版本,“0.8.21”-->不能小于这个版本,"^"-->不能大于0.9.0pragmasolidity^0.8.21;//创建合约contractHelloWorld{stringpublichelloworld="HelloWorld!";}
  • 2024-09-22给 Solidity 开发者的 Starknet 开发指南
    作者:Tiny熊原文链接:给Solidity开发者的Starknet开发指南Starknet是以太坊的二层ZKRollup扩容方案,与兼容EVM的二层扩容方案上的开发不同,Starknet上开发有自己的模式。这篇文章介绍如何开发Starknet上的合约以及如何部署到Starknet测试网上,同时方便Solidi
  • 2024-09-16【加密社】Solidity 中的事件机制及其应用
    加密社引言在Solidity合约开发过程中,事件(Events)是一种非常重要的机制。它们不仅能够让开发者记录智能合约的重要状态变更,还能够让外部系统(如前端应用)监听这些状态的变化。本文将详细介绍Solidity中的事件机制以及如何利用不同的手段来触发、监听和获取这些事件。事件
  • 2024-08-13智能合约语言对比:Solidity | Vyper | Move | Rust
    当你想要进入Web3领域做开发,可能会想知道应该先学哪门编程语言,或者是哪门语言最适合你。这里有四种现在比较热门的语言:Solidity、Vyper、Move和Rust。下面我会用代码示例解释一下区别,帮你找到学习的方向。Solidity:这是以太坊智能合约的主要编程语言。如果你想在以太坊上开发
  • 2024-08-03Smart Contract Audit路线
    个人微博:https://weibo.com/u/2434823180Blog: https://apenote.github.iovx:apedamoon 一、区块链基础1.1、掌握以太坊1.2、pow和pos 二、solidity基础2.1、Solidity文件;2.2、智能合约编程;2.3、Secureumsolidity101; 2.4、Sec
  • 2024-07-30智能合约工程师岗位要求
    共识协议算法BFT、Tendermint、Raft、DPos、PoW等其中一个共识协议的算法细节。智能合约语言Solidity,Move,RustSolidityvsMovevsRust:智能合约编程语言的演变项目开发语言DApp后端开发、区块链节点定制开发、接口开发等,需要熟练使用Java、Go、C/C++、Nodejs等编程技
  • 2024-07-28去中心化交易所DEX学习路径
    学习使用Uniswap及其他类似的去中心化交易所(DEX)可以分为几个阶段,从基础知识到高级应用。以下是一个详细的学习路径和一些资源,帮助你深入了解Uniswap和DEX。1.基础知识学习区块链和智能合约区块链基础:了解区块链的工作原理,如区块、链、共识算法等。推荐资源:Blockch
  • 2024-07-14Solidity:ERC721
    ERC-721是以太坊区块链上的一种智能合约标准,专门用于创建和管理不可替代代币(NFT)。这些代币与ERC-20代币不同,ERC-20代币是同质化代币,每个代币都是相同的,可以互换。而ERC-721代币则是独一无二的,每个代币都具有独特的属性和价值1.什么是ERC-721?ERC-721(EthereumRequestforComme
  • 2024-07-09Solidity:assembly
    在Solidity中,assembly是一个内嵌的低级语言,它允许开发者直接编写EVM(以太坊虚拟机)字节码。这种能力使得开发者可以更精细地控制智能合约的行为,并且在某些情况下可以提高性能和减少gas费用。然而,使用assembly也增加了代码的复杂性和出错的可能性,因此应谨慎使用。为什么使用Assembly
  • 2024-07-08Solidity:变量数据存储和作用域 storage/memory/calldata
    Solidity中的引用类型​引用类型(ReferenceType):包括数组(array)和结构体(struct),由于这类变量比较复杂,占用存储空间大,我们在使用时必须要声明数据存储的位置。数据位置​Solidity数据存储位置有三类:storage,memory和calldata。不同存储位置的gas成本不同。storage类型的数据存
  • 2024-07-03Hello World with solidity
    1.Solidity是什么?Solidity是一种面向对象的、静态类型的编程语言,专为在以太坊上编写智能合约而创建。由于以太坊上的智能合约可以处理真实世界的资产(比如加密货币),所以Solidity的设计非常关注安全性。以下是Solidity的一些主要特点:类型安全和静态类型:这可以避免在运行时出
  • 2024-06-16solidity签名机制和go联合调试学习
    1.solidity实现:1.1.引入eip712合约://SPDX-License-Identifier:MITpragmasolidity^0.8.0;/***@devhttps://eips.ethereum.org/EIPS/eip-712[EIP712]isastandardforhashingandsigningoftypedstructureddata.**TheencodingspecifiedintheEIPis
  • 2024-06-16solidity byte32转字符串日志输出学习
    直接上代码://SPDX-License-Identifier:MITpragmasolidity^0.8.0;abstractcontractEIP712{eventLogValues(bytes32domainSeparator,bytes32structHash);function_hashTypedDataV4(bytes32structHash)internalvirtualreturns(bytes32){
  • 2024-06-15探索 Solidity 中的各种修饰符
    探索Solidity中的各种修饰符在智能合约开发中,确保代码的安全性、可读性和高效性至关重要。Solidity作为以太坊上最广泛使用的编程语言,提供了一系列的修饰符来帮助开发者实现这些目标。本文将深入探讨Solidity中的各种修饰符,包括可见性修饰符、状态可变性修饰符以及自定义修
  • 2024-06-15在 Solidity 中将地址类型转换为 IERC20 接口类型
    在智能合约开发中,尤其是涉及到ERC-20代币交互时,开发者常常需要将一个地址类型转换为IERC20接口类型。这样做的目的是为了调用接口中的函数,如transfer和approve。本文将详细讲解这一过程,并简要介绍相关的背景知识。什么是ERC-20和IERC20?ERC-20是一种在以太坊区块链上
  • 2024-06-15理解 Solidity 中的修饰器(Modifiers)
    在智能合约开发中,代码的可读性和安全性至关重要。Solidity作为以太坊上最常用的编程语言,为开发者提供了一种强大的工具——修饰器(modifiers)。修饰器可以在函数调用前后执行特定的代码,简化逻辑并增强合约的安全性。本文将深入探讨修饰器的概念、定义及其在实际开发中的应用。什么
  • 2024-06-15solidity calldata学习
    在Solidity中,calldata是一种数据位置标识符,用于指定函数参数的存储位置。calldata特别适用于函数的外部调用参数,并且是只读的。以下是对Solidity中数据位置的一些说明:storage:用于状态变量,数据持久存储在区块链上。修改状态变量会消耗gas。memory:用于临时变量,这些变量
  • 2024-06-12How to be a senior Solidity Engineer
    一、能够熟练完成常见功能开发Solidity+Hardhat+Ethers熟悉Solidity语法和数据结构,能使用hardhat完成智能合约的自动化测试、优化、部署、交互和SDK封装。Openzipplin+Upgradeable熟悉Openzipplin的所有库文件,能够完成可升级合约的部署和升级。SmartcontractA
  • 2024-06-09OnlyOwner在Solidity中是一个修饰符,TypeError:
    目录OnlyOwner在Solidity中是一个修饰符TypeError:Datalocationmustbe"memory"or"calldata"forparameterinfunction,butnonewasgiven.functionAddDOm(addressdataOwnermAddress,stringdataProduct,stringdataNotes)OnlyOwnerpublic{^-
  • 2024-06-06关于Solidity脚本相关环境配置及脚本数据的查找
    来源:在solidity安全中心做题时,有些题需要通过脚本进行计算,可以是JavaScript也可以是python的脚本,solidity安全方面初次接触可能不清楚该如何运行solidity的相关脚本。下面我来分开说说JavaScript和Python对应的环境配置python篇:首先确保你的电脑中存在Python环境Python安装
  • 2024-05-31Solidity学习-投票合约示例
    以下的合约有一些复杂,但展示了很多Solidity的语言特性。它实现了一个投票合约。当然,电子投票的主要问题是如何将投票权分配给正确的人员以及如何防止被操纵。我们不会在这里解决所有的问题,但至少我们会展示如何进行委托投票,同时,计票又是自动和完全透明的。我们的想法是
  • 2024-05-28solidity的pure和view的区别
    当你在Solidity中编写智能合约时,你可能会遇到两个关键字:pure和view。这两个关键字用于函数声明,用于指示函数的行为和对区块链状态的访问方式。在本文中,我们将深入探讨pure和view的区别以及它们在Solidity中的使用场景。1.pure函数pure关键字用于声明函数不会访问或
  • 2024-05-03solidity进阶(更新中)
    开启第二阶段,主要学习合约部署、测试和预言机。CryptoZombies的教程是用Truffle,现在主流是Hardhat,但学一学思想也有益无害。----------------------------update5.3学完了Truffle部署合约,后面几节是部署到它们的Loom网络,就不写这几节的笔记了 启动一个新的终端窗口,创建项
  • 2024-04-24深入了解 Solidity 抽象合约
    深入了解Solidity抽象合约Solidity是一种智能合约编程语言,用于在以太坊及其他以太坊兼容的区块链上编写智能合约。抽象合约是Solidity中一个重要的概念,本文将深入探讨抽象合约的定义、作用以及如何使用它们。什么是抽象合约?抽象合约是一种特殊类型的Solidity合约,它只提