35 lines
		
	
	
		
			481 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			481 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief Solana Blake3 system call
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <sol/types.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Length of a Blake3 hash result
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								#define BLAKE3_RESULT_LENGTH 32
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Blake3
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @param bytes Array of byte arrays
							 | 
						||
| 
								 | 
							
								 * @param bytes_len Number of byte arrays
							 | 
						||
| 
								 | 
							
								 * @param result 32 byte array to hold the result
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint64_t sol_blake3(
							 | 
						||
| 
								 | 
							
								    const SolBytes *bytes,
							 | 
						||
| 
								 | 
							
								    int bytes_len,
							 | 
						||
| 
								 | 
							
								    const uint8_t *result
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**@}*/
							 |