【发布时间】:2021-07-19 05:53:52
【问题描述】:
我在以太坊上部署了一个智能合约。当我触发它时,函数名称和参数显示在 etherscan 上。我怎样才能隐藏这些信息? enter image description here
【问题讨论】:
-
在公共区块链中隐藏数据是不可能的,因为根据公共的定义,一切都是公共的。
标签: ethereum solidity etherscan
我在以太坊上部署了一个智能合约。当我触发它时,函数名称和参数显示在 etherscan 上。我怎样才能隐藏这些信息? enter image description here
【问题讨论】:
标签: ethereum solidity etherscan
Etherscan 使用字典将函数签名转换为函数名称(在您的情况下为 0x38ed1739 到 swapExactTokensForTokens(uint256,uint256,address[],address,uint256))。
如果您不希望他们翻译函数名称,则需要将您的合约函数(它的定义和所有调用它们的地方)重命名为一些乱七八糟的东西,例如 kdjgklfdjiwefw(uint256,uint256,address[],address,uint256)。
请注意,外部合约可能希望按其期望的名称(例如 swapExactTokensForTokens)调用您的函数,并且如果具有此名称的函数不存在,它们将无法调用。
如果您想禁止 Etherscan 显示翻译但不重命名您的函数 - 目前没有办法做到这一点。
【讨论】: