CuEVM
Functions
CuEVM::precompile_operations Namespace Reference

Functions

__host__ __device__ int32_t operation_IDENTITY (ArithEnv &arith, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_SHA256 (ArithEnv &arith, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_RIPEMD160 (ArithEnv &arith, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_MODEXP (ArithEnv &arith, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_BLAKE2 (ArithEnv &arith, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_ecRecover (ArithEnv &arith, CuEVM::EccConstants *constants, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_ecAdd (ArithEnv &arith, CuEVM::EccConstants *constants, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_ecMul (ArithEnv &arith, CuEVM::EccConstants *constants, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 
__host__ __device__ int32_t operation_ecPairing (ArithEnv &arith, CuEVM::EccConstants *constants, bn_t &gas_limit, bn_t &gas_used, CuEVM::evm_return_data_t *return_data, CuEVM::evm_message_call_t *message)
 

Detailed Description

The precompile contracts 0x00 Invalid 0x01 ecRecover 0x02 SHA-256 0x03 RIPEMD-160 0x04 Identity 0x05 Modexp 0x06 ecAdd 0x07 ecMul 0x08 ecPairing 0x09 Blake2

Function Documentation

◆ operation_BLAKE2()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_BLAKE2 ( ArithEnv &  arith,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)
Here is the call graph for this function:

◆ operation_ecAdd()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_ecAdd ( ArithEnv &  arith,
CuEVM::EccConstants *  constants,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)
Here is the call graph for this function:

◆ operation_ecMul()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_ecMul ( ArithEnv &  arith,
CuEVM::EccConstants *  constants,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)
Here is the call graph for this function:

◆ operation_ecPairing()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_ecPairing ( ArithEnv &  arith,
CuEVM::EccConstants *  constants,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)
Here is the call graph for this function:

◆ operation_ecRecover()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_ecRecover ( ArithEnv &  arith,
CuEVM::EccConstants *  constants,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)
Here is the call graph for this function:

◆ operation_IDENTITY()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_IDENTITY ( ArithEnv &  arith,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)

The Identity precompile contract MEMCPY through the message data and return data

Parameters
[in]arithThe arithmetic environment
[in]gas_limitThe gas limit
[out]gas_usedThe gas used
[out]error_codeThe error code
[out]return_dataThe return data
[in]messageThe message
Here is the call graph for this function:

◆ operation_MODEXP()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_MODEXP ( ArithEnv &  arith,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)
Here is the call graph for this function:

◆ operation_RIPEMD160()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_RIPEMD160 ( ArithEnv &  arith,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)
Here is the call graph for this function:

◆ operation_SHA256()

__host__ __device__ int32_t CuEVM::precompile_operations::operation_SHA256 ( ArithEnv &  arith,
bn_t &  gas_limit,
bn_t &  gas_used,
CuEVM::evm_return_data_t *  return_data,
CuEVM::evm_message_call_t *  message 
)

The SHA2-256 precompile contract SHA2 through the message data and return data

Parameters
[in]arithThe arithmetic environment
[in]gas_limitThe gas limit
[out]gas_usedThe gas used
[out]error_codeThe error code
[out]return_dataThe return data
[in]messageThe message
Here is the call graph for this function: