草庐IT

钻石合约

全部标签

智能合约升级原理02---UUPS升级部署示例

在“智能合约升级原理01---起源”中介绍了合约升级的主要有三种方式:DiamondImplementation    TransparentImplementation  UUPSImplementation       我们将只关注最常用的Transparent和UUPS,本文通过一个代码示例学习UUPS方式,最后还将给出合约升级的注意事项。示例说明:第一个版本的业务合约 Box,内部一个value数据,实现读、取两个方法。第二个版本Box,稍微修改下代码。部署后将得到代理合约地址,供应用端访问该地址。业务合约Box版本升级并不会引起代理合约地址变动,因此应用端的访问地址是稳定不变的。1 

中移链合约常用开发介绍(四)工程树目录

01目的本文档介绍了工程化开发智能合约项目的工程树目录,介绍了各个文件夹及文件的含义和用途。本文档将沿用之前文章中实现的地址簿合约内容,以初始化项目为例展开介绍,适合刚接触合约开发的开发人员用来了解智能合约项目,帮助其快速了解以及上手智能合约。02智能合约介绍区块链作为一种分布式可信计算平台,去中心化是其最本质的特征。每笔交易的记录不可篡改地存储在区块链上。智能合约中定义可以在区块链上执行的动作action和交易transaction的代码。可以在区块链上执行,并将合约执行状态作为该区块链实例不可变历史的一部分。因此,开发人员可以依赖该区块链作为可信计算环境,其中智能合约的输入、执行和结果都是

以太坊EVM智能合约交易信息中Input和Logs解码

一、以太坊交易获取以太坊交易获取一般通过两种方式:getTransaction、getTransactionReceiptweb3.eth.getTransaction:{blockHash:'0x61b488038c4e08298b4970a50a07cd795bad6e84bd82f280fb1227b0ab4eb19c',blockNumber:17835097,from:'0xF73d8f5BFb7f03b0AF375b1b5cF6581C367890e8',gas:36922,gasPrice:'10000000000',hash:'0xb2e675f13b895e159d8a14a

合约编译solc.compile()时报错‘{“errors”:[{“component”:“general”,“formattedMessag

1.首先编译脚本是:constfs=require('fs');constsolc=require('solc');constpath=require('path');constcontractPath=path.resolve(__dirname,'../contracts','Voting.sol');constcontractSource=fs.readFileSync(contractPath,'utf-8');letcompileResult=solc.compile(contractSource);console.log(compileResult);~此时输出compileRes

深入解析Safe多签钱包智能合约:代理部署与核心合约

概述读者可以前往我的博客获得更好的阅读体验Safe(或称GnosisSafe)是目前在以太坊中使用最为广泛的多签钱包。本文主要解析此钱包的逻辑设计和代码编写。读者可以前往SafeContracts获得源代码。预备知识Safe优势作为智能合约钱包,Safe支持多签名批准交易。这带来了以下优势:更高的安全性。将资产放置在多签钱包内可以有效避免因为个人单一私钥的泄露而导致的资产丢失。用户可以将多签设置为2-of-3形式,个人保存两个私钥并将第三个私钥作为备份。当遭受黑客攻击时,泄露1个私钥对资产安全性没有影响。更加高级的交易设置。相对于以太坊用户,智能合约具有可编程性,这意味着用户可以自行编辑一些交

深入解析Safe多签钱包智能合约:代理部署与核心合约

概述读者可以前往我的博客获得更好的阅读体验Safe(或称GnosisSafe)是目前在以太坊中使用最为广泛的多签钱包。本文主要解析此钱包的逻辑设计和代码编写。读者可以前往SafeContracts获得源代码。预备知识Safe优势作为智能合约钱包,Safe支持多签名批准交易。这带来了以下优势:更高的安全性。将资产放置在多签钱包内可以有效避免因为个人单一私钥的泄露而导致的资产丢失。用户可以将多签设置为2-of-3形式,个人保存两个私钥并将第三个私钥作为备份。当遭受黑客攻击时,泄露1个私钥对资产安全性没有影响。更加高级的交易设置。相对于以太坊用户,智能合约具有可编程性,这意味着用户可以自行编辑一些交

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

榕树贷款migrations迁移文件用于将合约部署到区块链上

Migrations(迁移)是JavaScript文件,这些文件负责暂存我们的部署任务,并且假定部署需求会随着时间推移而改变。榕树贷款随着项目的发展,我们应该创建新的迁移脚本,来改变链上的合约状态。榕树贷款所有运行过的migration历史记录,都会通过特殊的迁移合约记录在链上。榕树贷款第一个迁移1_initial_migration.js向区块链部署了一个叫做Migrations的合约,并榕树贷款用于存储你已经部署的最新合约。每次你运行migration时,truffle会向区块链查询获取最新已部署好的合约,然后部署尚未部署的任何合约。然后榕树贷款会更新Migrations合约中的last_

fisco区块链浏览器编译合约失败

在fisco的区块链浏览器这个位置编译合约失败,但是合约可以正常执行,此时可能是因为浏览器在数据库中自动建表时,保存合约abi编码的字段长度不足的原因将数据库中对应字段长度改长一些即可。ps:这里编译的合约貌似必须在同一级目录下,多级目录合约无法检测到引用的其它合约

深入解析Safe多签钱包智能合约:Fallback合约

概述在深入解析Safe多签钱包智能合约:模块中分析FallbackManager模块时,限于篇幅限制且fallback合约自成一体,所以我们没有介绍具体的fallback模块。此篇文章的主要目的是完成这一缺陷,全面介绍fallback合约。本文涉及的代码主要位于src/handler内,读者可自行查阅此仓库。合理性分析此节主要关注于我们为什么需要Fallback合约这一主题,希望可以为读者在后文阅读源代码时起到提纲挈领的作用。Fallback在上文中,我们可以知道fallback函数的主体逻辑是进行了代理合约式的处理将逻辑代码交给此处的fallback合约执行。我们首先应当知道fallback