cryptnox-sdk-esp32
1.0.0
ESP32 SDK for Cryptnox Hardware Wallet
Loading...
Searching...
No Matches
eth_rlp.h
Go to the documentation of this file.
1
/*
2
* SPDX-License-Identifier: LGPL-3.0-or-later
3
* Copyright (c) 2026 Cryptnox SA
4
*/
5
6
#pragma once
7
8
#include <stdint.h>
9
#include <stddef.h>
10
11
#ifdef __cplusplus
12
extern
"C"
{
13
#endif
14
15
/* EIP-1559 (type 2) transaction parameters. */
16
typedef
struct
{
17
uint64_t
chain_id
;
18
uint64_t
nonce
;
19
uint64_t
max_priority_fee
;
/* wei */
20
uint64_t
max_fee
;
/* wei */
21
uint64_t
gas_limit
;
22
uint8_t
to
[20];
/* recipient Ethereum address */
23
uint64_t
eth_value
;
/* wei (0 for pure ERC-20 transfer) */
24
const
uint8_t *
calldata
;
25
size_t
calldata_len
;
26
}
eth_tx_t
;
27
28
/*
29
* Encode an unsigned EIP-1559 transaction: 0x02 || RLP([chainId, nonce, ...]).
30
* Returns total bytes written, or 0 on overflow.
31
*/
32
size_t
eth_rlp_encode_unsigned
(
const
eth_tx_t
*tx, uint8_t *out,
size_t
out_max);
33
34
/*
35
* Encode a signed EIP-1559 transaction: 0x02 || RLP([..., v, r, s]).
36
* v must be 0 or 1. r and s are 32-byte big-endian values.
37
* Returns total bytes written, or 0 on overflow.
38
*/
39
size_t
eth_rlp_encode_signed
(
const
eth_tx_t
*tx, uint8_t v,
40
const
uint8_t r[32],
const
uint8_t s[32],
41
uint8_t *out,
size_t
out_max);
42
43
#ifdef __cplusplus
44
}
45
#endif
eth_rlp_encode_signed
size_t eth_rlp_encode_signed(const eth_tx_t *tx, uint8_t v, const uint8_t r[32], const uint8_t s[32], uint8_t *out, size_t out_max)
Definition
eth_rlp.cpp:169
eth_rlp_encode_unsigned
size_t eth_rlp_encode_unsigned(const eth_tx_t *tx, uint8_t *out, size_t out_max)
Definition
eth_rlp.cpp:152
eth_tx_t
Definition
eth_rlp.h:16
eth_tx_t::calldata_len
size_t calldata_len
Definition
eth_rlp.h:25
eth_tx_t::gas_limit
uint64_t gas_limit
Definition
eth_rlp.h:21
eth_tx_t::eth_value
uint64_t eth_value
Definition
eth_rlp.h:23
eth_tx_t::calldata
const uint8_t * calldata
Definition
eth_rlp.h:24
eth_tx_t::max_fee
uint64_t max_fee
Definition
eth_rlp.h:20
eth_tx_t::max_priority_fee
uint64_t max_priority_fee
Definition
eth_rlp.h:19
eth_tx_t::chain_id
uint64_t chain_id
Definition
eth_rlp.h:17
eth_tx_t::to
uint8_t to[20]
Definition
eth_rlp.h:22
eth_tx_t::nonce
uint64_t nonce
Definition
eth_rlp.h:18
examples
UsdcSigning
main
eth_rlp.h
Generated by
1.15.0