// 部署合约
const logicContract = await CounterLogic.deploy();
const proxyContract = await CounterProxy.deploy(logicContract.address);
// 创建代理合约的接口实例
const proxiedCounter = CounterLogic.attach(proxyContract.address);
// 直接读取逻辑合约的值
console.log("逻辑合约的count:", await logicContract.count()); // 输出:100
console.log("逻辑合约的owner:", await logicContract.owner()); // 输出:部署者地址
// 直接读取代理合约的值
console.log("代理合约的count:", await proxyContract.count()); // 输出:0
console.log("代理合约的owner:", await proxyContract.owner()); // 输出:0x0
// 通过代理调用接口读取值
console.log("通过代理读取的count:", await proxiedCounter.count()); // 输出:0,而不是100
console.log("通过代理读取的owner:", await proxiedCounter.owner()); // 输出:0x0,而不是部署者地址
// 调用increment函数
await proxiedCounter.increment();
console.log("increment后的count:", await proxiedCounter.count()); // 输出:1,从0开始增加
// 验证逻辑合约的值没有变化
console.log("操作后逻辑合约的count:", await logicContract.count()); // 输出:仍然是100