Ethereum 触发非开源智能合约时,如何在etherscan上编码输入数据?

Ethereum 触发非开源智能合约时,如何在etherscan上编码输入数据?,ethereum,solidity,etherscan,Ethereum,Solidity,Etherscan,我在以太坊上部署了一个智能合约。当我触发它时,函数名和参数显示在etherscan上。如何隐藏这些信息? 以太扫描使用字典将函数签名转换为函数名(在您的示例中,0x38ed1739转换为swapExactTokensForTokens(uint256,uint256,地址[],地址,uint256)) 如果你不想让他们翻译函数名,你需要将你的合约函数(它的定义和所有调用它们的地方)重命名为一些乱七八糟的东西,比如kdjgklfdjiwefw(uint256,uint256,address[],a

我在以太坊上部署了一个智能合约。当我触发它时,函数名和参数显示在etherscan上。如何隐藏这些信息?

以太扫描使用字典将函数签名转换为函数名(在您的示例中,
0x38ed1739
转换为
swapExactTokensForTokens(uint256,uint256,地址[],地址,uint256)

如果你不想让他们翻译函数名,你需要将你的合约函数(它的定义和所有调用它们的地方)重命名为一些乱七八糟的东西,比如
kdjgklfdjiwefw(uint256,uint256,address[],address,uint256)

请注意,外部契约可能希望按其期望的名称调用函数(例如
swapExactTokensForTokens
),如果不存在具有此名称的函数,则它们将无法调用


如果您想禁止Etherscan显示翻译,但不重命名您的函数-目前没有办法做到这一点。

在公共区块链中隐藏数据是不可能的,因为根据public everything的定义,一切都是公共的。字典是公共的吗?@hliu是Etherscan使用的特定字典-可能不是。但是你可以通过扫描不同合同的ABI(或源代码)来制作你自己的。谢谢回复。扫描所有合同的源代码似乎需要很多工作:)这是否意味着有时会有一些新创建的合同,Etherscan无法映射到函数名,因为没有及时扫描?我没有数据来验证这一点,但这似乎是一种可能。