fn contract_call_id(
    contract_address: ethabi::Address,
    encoded_call: &[u8],
    block: EthereumBlockPointer,
) -> [u8; 16] {
    let mut id = [0; 16];
    let mut hash = tiny_keccak::Keccak::new_shake128();
    hash.update(contract_address.as_ref());
    hash.update(encoded_call);
    hash.update(block.hash.as_ref());
    hash.finalize(&mut id);
    id
}
/// The id is the hashed contract_address + encoded_call + block hash. This uniquely identifies the
/// call. Use 128 bits of output to save some bytes in the DB.
The id is the hashed contract_address + encoded_call + block hash. This uniquely identifies the
call. Use 128 bits of output to save some bytes in the DB.
The id is the hashed contract_address + encoded_call + block hash . This uniquely identifies the call . Use 128 bits of output to save some bytes in the DB .
fn contract_call_id(
    contract_address: ethabi::Address,
    encoded_call: &[u8],
    block: EthereumBlockPointer,
) -> [u8; 16] {
    let mut id = [0; 16];
    let mut hash = tiny_keccak::Keccak::new_shake128();
    hash.update(contract_address.as_ref());
    hash.update(encoded_call);
    hash.update(block.hash.as_ref());
    hash.finalize(&mut id);
    id
}
fn contract_call_id ( contract_address : ethabi :: Address , encoded_call : & [ u8 ] , block : EthereumBlockPointer , ) -> [ u8 ; 16 ] { let mut id = [ 0 ; 16 ] ; let mut hash = tiny_keccak :: Keccak :: new_shake128 ( ) ; hash . update ( contract_address . as_ref ( ) ) ; hash . update ( encoded_call ) ; hash . update ( block . hash . as_ref ( ) ) ; hash . finalize ( & mut id ) ; id }
The id is the hashed contract_address + encoded_call + block hash.
The id is the hashed contract_address + encoded_call + block hash .
contract_address
ethabi::Address
encoded_call
&[u8]
block
EthereumBlockPointer
contract_address
ethabi::Address
encoded_call
&[u8]
block
EthereumBlockPointer