随笔分类 -  solidity

合约编程语言
摘要:在智能合约开发中,代码的可读性和安全性至关重要。Solidity 作为以太坊上最常用的编程语言,为开发者提供了一种强大的工具——修饰器(modifiers)。修饰器可以在函数调用前后执行特定的代码,简化逻辑并增强合约的安全性。本文将深入探讨修饰器的概念、定义及其在实际开发中的应用。 什么是修饰器(M 阅读全文
posted @ 2024-06-15 10:17 若-飞 阅读(277) 评论(0) 推荐(0)
摘要:在智能合约开发中,尤其是涉及到 ERC-20 代币交互时,开发者常常需要将一个地址类型转换为 IERC20 接口类型。这样做的目的是为了调用接口中的函数,如 transfer 和 approve。本文将详细讲解这一过程,并简要介绍相关的背景知识。 什么是 ERC-20 和 IERC20? ERC-2 阅读全文
posted @ 2024-06-15 10:12 若-飞 阅读(159) 评论(0) 推荐(0)
摘要:在 Solidity 中,calldata 是一种数据位置标识符,用于指定函数参数的存储位置。calldata 特别适用于函数的外部调用参数,并且是只读的。以下是对 Solidity 中数据位置的一些说明: storage: 用于状态变量,数据持久存储在区块链上。修改状态变量会消耗gas。 memo 阅读全文
posted @ 2024-06-15 10:03 若-飞 阅读(248) 评论(0) 推荐(0)
摘要:1.Delegatecall 简介 1.1.什么是 delegatecall ? delegatecall() 是 Solidity 中的一个方法,用于从一个原始合约中调用目标合约中的一个函数。然而,与其他方法不同的是,当使用.delegatecall()在目标合约中执行函数时,上下文从原始合约中传 阅读全文
posted @ 2024-05-28 16:43 若-飞 阅读(27) 评论(0) 推荐(0)
摘要:当你在 Solidity 中编写智能合约时,你可能会遇到两个关键字:pure 和 view。这两个关键字用于函数声明,用于指示函数的行为和对区块链状态的访问方式。在本文中,我们将深入探讨 pure 和 view 的区别以及它们在 Solidity 中的使用场景。 1. pure 函数 pure 关键 阅读全文
posted @ 2024-05-28 15:58 若-飞 阅读(452) 评论(2) 推荐(1)
摘要:介绍 在 Remix 中,调用 Solidity 合约函数并获取返回值是合约开发和调试过程中的关键步骤之一。本文将介绍如何在 Remix 中正确调用 Solidity 合约函数,并获取其返回值。同时,我们将介绍如何通过声明函数为 view 或 pure 来直接获取返回值,并提供示例代码和操作步骤。 阅读全文
posted @ 2024-05-28 15:54 若-飞 阅读(373) 评论(0) 推荐(0)
摘要:设置tokenuri支持: 增加3个方法实现就行 参考文档: https://hackernoon.com/zh/理解以太坊中的代币标准第二部分erc721 ipfs的链接如何上传? 721合约是一个标准,还是完整的代码实现?基于接口实现? function setTokenURI(uint256 阅读全文
posted @ 2024-04-30 11:33 若-飞 阅读(21) 评论(0) 推荐(0)
摘要:前言 tokenURI指向 存放NFT Metadata信息的json文件 所在的URL json文件最好用去中心化方式存储,例如IPFS 使用IPFS存储文件 自己搭建IPFS需要下载客户端和保持节点运行 较麻烦,我们可采用第三方服务商提供的服务 例如Pinata、4everland等,我们以4e 阅读全文
posted @ 2024-04-25 23:46 若-飞 阅读(98) 评论(0) 推荐(0)
摘要:https://testnets.element.market/account 阅读全文
posted @ 2024-04-25 10:08 若-飞 阅读(23) 评论(0) 推荐(0)
摘要:深入了解 Solidity 抽象合约 Solidity 是一种智能合约编程语言,用于在以太坊及其他以太坊兼容的区块链上编写智能合约。抽象合约是 Solidity 中一个重要的概念,本文将深入探讨抽象合约的定义、作用以及如何使用它们。 什么是抽象合约? 抽象合约是一种特殊类型的 Solidity 合约 阅读全文
posted @ 2024-04-24 22:49 若-飞 阅读(149) 评论(0) 推荐(0)
摘要:[1, 1, "0x42e89025aa15e8c70aa5b713f6b3d6820b32404b", false] 阅读全文
posted @ 2024-04-24 19:26 若-飞 阅读(19) 评论(0) 推荐(0)
摘要:1. mint一个勋章 // mint tran, err := contractInstance.Mint(transactopts, common.HexToAddress(config.TestUserPublicKey), pinfo) if err != nil { fmt.Println 阅读全文
posted @ 2024-03-14 11:19 若-飞 阅读(26) 评论(0) 推荐(0)
摘要:直接贴代码: // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract BatchTransfer { event Transfer(address indexed from, address indexed to, uint2 阅读全文
posted @ 2024-02-20 17:25 若-飞 阅读(178) 评论(0) 推荐(0)
摘要:当在以太坊上创建代币合约时,可以使用 symbol 字段来定义代币的符号标识。代币的符号是一个短字符串,用于标识和区分不同的代币。 符号通常由大写字母组成,长度通常为 1 到 5 个字符。它类似于传统金融世界中的货币代码,如美元的符号为 "USD",比特币的符号为 "BTC"。 代币符号的定义对于用 阅读全文
posted @ 2024-02-04 11:20 若-飞 阅读(188) 评论(0) 推荐(0)
摘要:metamask:浏览器插件钱包 remix:基于流浪起的solidity在线编辑器 geth:以太坊客户端(go语言) web3.js: 以太坊javascript api库 truffle:以太坊开发框架,瑞士军刀 完成 ganache: 搭建以太坊私链 阅读全文
posted @ 2024-02-04 11:05 若-飞 阅读(55) 评论(0) 推荐(0)
摘要:简介 Truffle是以太坊最流行的开发框架,能够在本地编译、部署智能合约,使命是让开发更容易。 本文以fibonacci作为实例进行调试 参考文档 https://trufflesuite.com/docs/truffle/how-to/debug-test/use-the-truffle-deb 阅读全文
posted @ 2024-02-04 10:49 若-飞 阅读(842) 评论(0) 推荐(0)
摘要:从 Solidity 合约生成 Go 代码 在 Ethereum 开发中,我们经常需要在 Go 程序中与 Solidity 智能合约进行交互。这时,我们就需要将 Solidity 合约的 ABI (Application Binary Interface) 转换为 Go 代码。在本文中,我们将介绍如 阅读全文
posted @ 2024-01-21 22:30 若-飞 阅读(555) 评论(0) 推荐(0)
摘要:1.Truffle 简介 1.1.什么是 Truffle ? Truffle 是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单。 Truffle 有以下特性: 内置的智能合约编译,链接,部署和二进制文件的管理; 快速开发下的自动合约测试; 脚本化的,可扩展的部署 阅读全文
posted @ 2023-12-06 11:52 若-飞 阅读(318) 评论(0) 推荐(0)
摘要:eth chain上会有一个Native Token => ETH (ether), 合约里的关键字1ether表示1 Native Token,也就是1ETHbsc是fork的eth chain. evm里的东西都没改,Native Token直接换了个名字叫BNB, 对应到evm里的关键字还是不 阅读全文
posted @ 2023-11-30 22:34 若-飞 阅读(4) 评论(0) 推荐(0)
摘要:Solidity 中的 pure 和 view 是函数修饰符关键字,用于声明函数的属性和行为。它们的作用如下: pure 关键字:用于声明函数是纯函数,即函数不读取或修改合约的状态变量,并且不与外部合约进行交互。纯函数只根据输入参数计算结果,并返回一个值。 纯函数不会改变合约状态,也不会发送交易或调 阅读全文
posted @ 2023-08-24 17:13 若-飞 阅读(418) 评论(0) 推荐(0)