【代码札记】使用Java ASM替换字符串常量
最近在用Java写智能合约,其中有一个静态字段是合约的管理员地址,这个地址用于鉴权,确保只有该地址能够对合约进行管理操作(升级、销毁等)。但是为了做到自动化测试,这个管理员地址在develop分支上是私链的,而实际部署的时候得换成公链上的另一个地址。前几天升级合约的时候忘记替换地址,直接把私链地址部署到了公开的测试网了。好在是测试网,问题不大,这要是主网就别玩了,重开吧。为了杜绝这样的后顾之忧,本文决定探索一种方法,能够一份代码按照使用情况填入不同的地址来生成合约,避免将地址写死在代码里产生问题。