我试图在合同中保存用户的交易,例如:
function Donar() external payable{
require(msg.value >= MINIMUM, "Minium amount is 0.05");
bool nuevo = false;
blockValue = uint256(blockhash(block.number-1));//is a uint256
//añadimos el nuevo mientro
if(balances[msg.sender]<=0){
users.push(msg.sender);
nuevo = true;
}
balances[msg.sender] +=msg.value;
emit Donation(msg.sender, balances[msg.sender], nuevo);
}
但是,当我从 Web3 js 尝试访问 Blockvalue 时,这给我带来了与交易不同的结果。
例如,如果我进行交易“Donar”,我会得到以下交易:0x5e99f8a0b2397a0d3e6024d42bc66ef7b0db776bdc3e5232ed8cb1dfccbcb28d
但是,如果我检查 Blockvalue,我会得到:45462209008309196972246523876171350366909309459187506831567695009831863640741
我从 JS 尝试加密到 sha256 但后来我得到了另一个不同的结果,例如 1c092b7a0d025a1754c4cf109668ff21a75e3b167f2a99f33747bf7b23b54b7f
如何在合约中保存交易哈希?
谢谢