Proxy库对外只暴露了fallback和receive函数,是代理合约的基础实现。所有对Proxy合约的call都将被delegatecall到implement合约且delegatecall的执行结果会原封不动地返还给Proxy合约的调用方。通常称implement合约为代理合约背后的逻辑合约。
ERC20Snapshot库是ERC20的拓展,增加了各账户余额及总流通量的快照机制。如果涉及到根据账户ERC20余额进行分红、投票等业务可以使用该库,其可有效防御在不同地址间转账进行“一币多用”的攻击。在一个快照横截面数据上进行分红、投票甚至是ERC20分叉都是最有效的解决方案。
本文介绍了如何在系统上设置 cURL 和 Foundry 开发框架,以便更好地进行 Solidity 开发和测试。包含代码示例和对 Foundry 的简要说明,强调其作为测试和部署工具的优势。
ERC4626库本身是一种有底层ERC20资产质押的shares且本身同样满足ERC20标准。用户可以通过deposit或mint方法来质押底层资产并增发shares,也可使用burn或redeem方法来销毁shares并赎回底层资产。
ERC20PresetFixedSupply库是一种带预铸造功能的ERC20实现,即在合约部署时直接将全部流通量都铸造给某一地址且部署后无法增发。该库同时继承了ERC20Burnable库,支持销毁和委托销毁功能。
UUPSUpgradeable库是专为UUPS代理设计的一种合约升级机制的实现。当本合约被设置为ERC1967Proxy代理合约背后的逻辑合约后,可以对其进行合约升级操作。作为逻辑合约的父合约,本库的安全机制可保证不会因某次错误的升级而打破合约的可升级性。
本文介绍了如何在Foundry环境中使用OpenZeppelin安全地创建和验证ECDSA签名,提供了Verifier.sol合约和测试代码Verifier.t.sol的示例。
Foundry forge 输出覆盖率测试报告
Clones库是最小代理合约的工厂合约实现,也称之为克隆工厂。ERC1167指定了一种将全部调用都delegatecall到一个已知固定地址的最小字节码实现,它可以以一种不可变且成本极低的方式克隆目标合约。
UpgradeableBeacon库是信标代理模式中的信标合约的实现,与一个或多个BeaconProxy库实例配合使用。所有到BeaconProxy的调用都会被委托到本库指向的逻辑合约上。本库的owner具有更换逻辑合约地址的权限,从而实现信标代理合约的升级功能。
BeaconProxy
4.26日(周三)晚8点直播
TransparentUpgradeableProxy库是一个透明代理合约的实现,其背后的逻辑合约可由admin来升级。一般的代理合约本身需要管理函数,当这些函数同其背后的逻辑合约的函数产生selector冲突时可能会暴露潜在的漏洞。透明代理模式解决了以上问题。
本文主要关注以太坊智能合约的进阶操作,包括合约的四种调用方式、合约的创建、地址预测、发送 eth 的三种方法、接收 eth 的三种不同方法等内容。通过 solidity 代码配合 foundry 进行测试。适合新手小白学习
PaymentSplitter库可以在一组领取地址无感知的情况下,将定量eth或某ERC20 token按照shares占比释放给该组中的某地址。当eth或ERC20 token被转入该合约后,在册的领取地址就可以来领取属于自己占比的那部分。各领取人的shares数量只能在该合约部署时被设置。
使用TheGraph来索引和查询你的NFTMarket合约的上架List和成交Sold记录