240 发简信
IP属地:浙江
  • MacOS安装Haskell环境

    在MacOS上安装ghcup,然后发现国内用官方推荐的安装方法总是出现问题。后来发现brew可以直接安装。有关haskell相关的安装shell...

  • gas优化:改进for循环[0.8.22已内置]

    在我们用solidity的for循环时,大概是这样用的: 其实在新版本的solidity中,由于uint类型在进行运算时会自动检测溢出,所以在f...

  • gas优化:使用storage临时存储避免重复索引

    在比较下面合约中的两个方法时: 函数写入类型gas消耗量getMyStructAttributes重复索引7528getMyStructAttr...

  • 合约安全:替换tx.origin,使用ECDSA签名确定调用源的身份

    在智能合约中,确保调用源的身份验证是很重要的,因为它可以帮助防止一些恶意操作,比如合约中的重要逻辑被未经授权的用户调用。我们知道tx.origi...

  • gas优化:写入storage前使用memory变量作为中继

    有这么一个情景,又一个storage的变量,它是一个复杂的struct,如下: 假设变量名为myStruct,有合约如下: 这里面有两个函数,一...

  • 使用interface进行跨合约调用时的msg.sender是?

    我们都知道如果采用实例进行跨合约调用,那么被调用合约Target中的msg.sender就是调用合约Caller的合约地址。那么如果我们是用IT...

  • Resize,w 360,h 240
    如何监听交易池txpool(mempool)?

    使用hardhat或者ethers.js: 这样就能得到正在pending中的tx了,如: 你就可以得到相关信息,比如得到 ,那我们就可以自建新...

  • 合约安全:抢先提交(Front Running)

    一、漏洞 与大多数区块链一样,以太坊节点汇集交易并将其打包成块。一旦矿工获得了共识机制(目前以太坊上实行的是 ETHASH[https://gi...

  • 合约安全:短地址攻击

    这种攻击并不是专门针对 Solidity 合约执行的,而是针对可能与之交互的第三方应用程序执行的。 一、漏洞 将参数传递给智能合约时,参数将根据...