代码编织梦想

js解析智能合约solidity返回的struct_黄嘉成的博客-爱代码爱编程

前言 Solidity是以太坊智能合约的编程语言,我们可以通过web3.js来与合约进行通信,并接收Solidity函数的返回值。不少人在接收struct类型的返回值时不知道怎么处理,本文展示一种解析方法,以供各位学习交流

使用truffle-contract与以太坊主链合约通信_黄嘉成的博客-爱代码爱编程

truffle-contract与web3.js一样,都是用来与以太坊智能合约交互的JS库,但是相对于web3.js来说,truffle-contract封装得更简单一些,本文示范如何通过truffle-contract与以

【solidity】风格指南_黄嘉成的博客-爱代码爱编程

风格指南 概述 本指南旨在约定 solidity 代码的编码规范。本指南是不断变化演进的,旧的、过时的编码规范会被淘汰, 而新的、有用的规范会被添加进来。 许多项目会实施他们自己的编码风格指南。如遇冲突,应优先使用具体

【solidity】可用于(内联)装配的语言:joyfully universal language_黄嘉成的博客-爱代码爱编程

Joyfully Universal Language JULIA是一种中间语言,可以编译到各种不同的后台(EVM 1、EVM 1.5和EWASM)。它已经可以用于Solidity内部的“内联汇编”,未来版本的Solidi

【solidity】gas estimation failed-gas estimation errored with the following message_黄嘉成的博客-爱代码爱编程

今天在写完合约在remix部署测试的时候遇到了这么一个问题,一旦向合约里写数据就出现如下错误: Gas estimation errored with the following message (see below).

【solidity】函数returns多个值的接收方式_黄嘉成的博客-爱代码爱编程

函数返回多个值 学习过javascript或其他编程语言的童鞋看到Solidity中的函数可以有多返回值肯会有些惊讶(如下图),不知道该怎么对多返回值的函数进行接收。其实方法很简单的。 // 函数可以返回多个值 func

【solidity】internal、private、external、public区别_黄嘉成的博客-爱代码爱编程_solidity中的internal

public与private 对于public和private,相信学过其他主流语言的人都能明白: public修饰的变量和函数,任何用户或者合约都能调用和访问。private修饰的变量和函数,只能在其所在的合约中调用和

【solidity】storage和memory关键字的区别和用法_黄嘉成的博客-爱代码爱编程_solidity storage

在 Solidity 中,有两个地方可以存储变量 —— storage以及memory。 Storage 变量是指永久存储在区块链中的变量。 Memory 变量则是临时的,当外部函数对某合约调用完成时,内存型变量即被移除。

【solidity】应用二进制接口(abi)说明_黄嘉成的博客-爱代码爱编程

应用二进制接口(ABI) 说明 基本设计 在以太坊生态系统中, 应用二进制接口Application Binary Interface(ABI) 是从区块链外部与合约进行交互以及合约与合约间进行交互的一种标准方式。 数据

【solidity】合约的元数据_黄嘉成的博客-爱代码爱编程

合约的元数据 Solidity编译器自动生成JSON文件,即合约的元数据,其中包含了当前合约的相关信息。 它可以用于查询编译器版本,所使用的源代码,应用二进制接口Application Binary Interface(A

【solidity】使用编译器_黄嘉成的博客-爱代码爱编程

使用编译器 使用命令行编译器 Solidity的其中一个编译器是solc,即Solidity命令行编译器。 使用solc --help提供对所有选项的阐述。编译器可以生成各种类型的输出,包括简单的二进制文件、抽象语法树

【solidity】安全考量_黄嘉成的博客-爱代码爱编程

安全考量 尽管在通常情况下编写一个按照预期运行的软件很简单, 但想要确保没有人能够以出乎意料的方式使用它就困难多了。 在 Solidity 中,这一点尤为重要,因为智能合约可以用来处理通证,甚至有可能是更有价值的东西。

深入理解solidity——全局变量_黄嘉成的博客-爱代码爱编程_solidity 全局变量

全局变量(Global Variables) abi.encode(...) returns (bytes):对给定的参数进行ABI编码。abi.encodePacked(...) returns (bytes): Per

深入理解solidity——运算符优先顺序_黄嘉成的博客-爱代码爱编程

运算符优先顺序(Order of Precedence of Operators) 以下是按evaluation顺序列出的运算符优先顺序。 优先级描述运算符1Postfix increment and decrement

深入理解solidity——提示和技巧_黄嘉成的博客-爱代码爱编程

提示和技巧 在数组中使用delete,就是删除数组中的所有元素。使用较短的类型和结构元素,短类型分组在一起进行排序。SSTORE操作可能合并成一个单一的SSTORE,这可以降低gas的成本(sstore消耗5000或200

深入理解solidity——源文件映射_黄嘉成的博客-爱代码爱编程

源文件映射(Source Mappings) 作为AST输出的一部分,编译器会提供AST某个节点以应的源代码的范围。这可以被用来做基于AST的静态代码错误分析,可以高亮本地变量,和他们对应使用的调试工具。 此外,编译器也

深入理解solidity——内存布局_黄嘉成的博客-爱代码爱编程

内存布局(Layout in Memory) Solidity预留了4个32字节大小的槽位: 0x00 - 0x3f: 哈希方法的暂存空间(scratch space)0x40 - 0x5f: 前已分配内存大小,也称空闲

深入理解solidity——存储中状态变量的布局_黄嘉成的博客-爱代码爱编程

存储中状态变量的布局(Layout of State Variables in Storage) 静态尺寸大小的变量(除了映射和动态尺寸大小的数组类型(的其他类型变量))在存储中,是从位置0连续存储。如果可能的话,不足32

深入理解solidity——独立汇编_黄嘉成的博客-爱代码爱编程

独立汇编(Standalone Assembly) 上面介绍的在Solidity中嵌入的内联汇编语言也可以单独使用。实际上,它是被计划用来作为编译器的一种中间语言。在这个目的下,它尝试达到下述的目标: 使用它编写的代码要