从 Etherscan 上的地址跟踪交易时是否可以看到输出数据?
Is possible to see output data when tracking a transaction from its address on Etherscan?
我想知道是否可以在 Etherscan 上看到返回值的非视图交易的“输出数据”,我的意思是在 Etherscan 上从其地址获取交易时可以看到“输入数据”但是可以我找到了交易的输出数据?
设计不可行。交易调用的函数的返回值在 EVM 消息调用(也称为内部交易)之外不可用。
您可以发出事件或创建 getter 函数来检索值。
pragma solidity ^0.8;
contract MyContract {
uint256 number;
event NumberChanged(uint256);
function setNumber(uint256 _number) public returns (uint256) {
number = _number;
// available outside of EVM, n/a for internal transactions
emit NumberChanged(_number);
// available for internal transactions inside EVM, n/a outside
return _number;
}
// available for both internal transactions and outside of EVM
function getNumber() public view returns (uint256) {
return number;
}
}
我想知道是否可以在 Etherscan 上看到返回值的非视图交易的“输出数据”,我的意思是在 Etherscan 上从其地址获取交易时可以看到“输入数据”但是可以我找到了交易的输出数据?
设计不可行。交易调用的函数的返回值在 EVM 消息调用(也称为内部交易)之外不可用。
您可以发出事件或创建 getter 函数来检索值。
pragma solidity ^0.8;
contract MyContract {
uint256 number;
event NumberChanged(uint256);
function setNumber(uint256 _number) public returns (uint256) {
number = _number;
// available outside of EVM, n/a for internal transactions
emit NumberChanged(_number);
// available for internal transactions inside EVM, n/a outside
return _number;
}
// available for both internal transactions and outside of EVM
function getNumber() public view returns (uint256) {
return number;
}
}