透明代理合约
最近在 BSC 上调用 ERC20 合约获取余额的时候发现获取不到,查看后发现合约不是普通的 ERC20 合约,在合约 Read 中看不到能调用的 ABI 方法。

在合约的 Read as Proxy 可以看到合约的 ABI。
上面说明了它使用了 EIP-1967 透明代理的模式。
EIP1967是什么?
是一种合约标准,用于升级合约。通过一层代理合约,去调用另一个包含逻辑的合约,达到合约地址和业务逻辑分开的目的。
这样做的好处是用户交互的合约地址可以保持不变,后面如果逻辑合约需要升级,只需要修改代理合约指向的实现地址。对于调用方来说,如果直接读普通的 Read Contract,可能只能看到代理合约本身的方法;要看真正的 ERC20 方法,就要切到 Read as Proxy。