该怎么猜智能合约上的随机数?
在开发智能合约时,使用开发环境非常重要。本文将探讨Truffle和Hardhat的命令翻译,以及如何通过在React中创建一个小项目来适应它们。
WEB3.0 时代,用户拥有链上数据,数据公开透明可追溯,我们仿佛找到了自由平等的乌托邦,在另一面,如何保护用户的隐私将是另一个圣杯。
在这篇文章中,我们将详细分析现有的智能合约升级策略,描述我们在实践中观察到的弱点,并为需要升级的合约提供建议。
Python在Coinbase上的应用
深入了解智能合约的最小代理“EIP-1167”
主要是根据用户质押的时间和数量来线性的分发代币。即质押挖矿的模式。具体的分发逻辑是每一个区块固定分的一定量的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 使用教程
在UUPS中,其实现了EIP-1967. EIP-1967的目的是规定一个通用的存储插槽,用于在代理合约中的特定位置存放逻辑合约的地址。
最近在项目中要使用到Timelock
和权限管理部分,故查阅了下Openzepplin
的相关实现,意外发现Openzepplin
在前两天刚刚给Timelock
打补丁,原因是Timelock
合约在今年8月份前的版本实现中存在一个严重的漏洞,允许任何执行者升级其权限成为admin
,而执行恶意程序。
Starauction是首届Starcoin & Move黑客松的一个参数项目,由Mars&Earth团队提交。
这段时间总是与NFT打交道,大部分NFT都采用了EIP721标准,且均采用了Openzepplin的EIP721实现。前段时间详细看过Openzepplin的相关实现,但是偷懒了,没有整理成文档,导致后面的记忆总是不深刻,理解也不深刻。此次正好将其实现全部整理一下。