【发布时间】:2021-11-17 04:40:59
【问题描述】:
我尝试在合同中保存用户的交易,例如:
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
如何在合约中保存交易哈希?
谢谢
【问题讨论】: