在这篇文章中,我们将详细分析现有的智能合约升级策略,描述我们在实践中观察到的弱点,并为需要升级的合约提供建议。
主要是根据用户质押的时间和数量来线性的分发代币。即质押挖矿的模式。具体的分发逻辑是每一个区块固定分的一定量的sushi代币,考虑到同时存在不同的LP资金池都需要奖励sushi,这几个池子会按照预先设计好的allocPoint来按照权重分配sushi代币。对于一个池子中,会按照LPtoken的比例给用户分发该池子中分配得到的sushi代币。每一个区块都会累积,这里应该是累加,而不是累乘。
使用hardhat一步一步构建智能合约演示项目开箱即用(最易上手操作)
在具体写代码的时候,会发现一个问题:即如何合适的表达小数?一种简单的思路是把小数都乘以10^18,但是需要考虑到会不会溢出,以及后续还需要一个除法才行。
Compound简化版
关于借贷的思考 - 以compound为例
这两年DeFi的兴起,让世界看到了金融的另一种形式。越来越多的团队开始思考如何把传统的金融业务搬进区块链世界。
如何利用delegatecall进行以太坊智能合约升级
Dapptools的安装与调试,一个samczsun推荐的审计合约使用的工具,非常的强大。但是需要写bash脚本 :(. 又要学习怎么写bash脚本
在 Uniswap V3 的路径编码方式上,使用 assembly 直接复制 calldata,避免 bytes 的额外消耗
OpenZeppelin Hardhat Upgrades 使用教程
RedPackage是首届Move黑客松中,由虫洞工作室设计的一个很好玩、很实用的工具。
在UUPS中,其实现了EIP-1967. EIP-1967的目的是规定一个通用的存储插槽,用于在代理合约中的特定位置存放逻辑合约的地址。
最近在项目中要使用到Timelock
和权限管理部分,故查阅了下Openzepplin
的相关实现,意外发现Openzepplin
在前两天刚刚给Timelock
打补丁,原因是Timelock
合约在今年8月份前的版本实现中存在一个严重的漏洞,允许任何执行者升级其权限成为admin
,而执行恶意程序。
Starauction是首届Starcoin & Move黑客松的一个参数项目,由Mars&Earth团队提交。
这段时间总是与NFT打交道,大部分NFT都采用了EIP721标准,且均采用了Openzepplin的EIP721实现。前段时间详细看过Openzepplin的相关实现,但是偷懒了,没有整理成文档,导致后面的记忆总是不深刻,理解也不深刻。此次正好将其实现全部整理一下。
上篇文章简单分析Gnosis
Safe中的部分业务逻辑,主要是链下签名与链上验证的逻辑,关于方法执行,Gas费用扣减等并未涉及到。因为主要是目前也暂时用不到那一块。这一篇文章主要是分析下GnosisSafe
的合约结构
一篇水文
Genosis Safe简单来讲是一个多签钱包,它允许多个账户对同一笔交易进行签名,实现账户资金的安全管理。
手把手讲清Move的核心特性:1、Module&Struct&Function;2、Ability;3、Generic;