cryptnox-pos 1.0.0
Standalone USDC payment terminal firmware (ESP32 + Cryptnox smart card)
Loading...
Searching...
No Matches
tron_rpc.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
19
20#ifndef TRON_RPC_H
21#define TRON_RPC_H
22
23#include <stdint.h>
24#include <stdbool.h>
25#include <stddef.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
35#define TRON_RAW_HEX_MAX 768U
36
38typedef struct {
39 uint8_t txid[32];
40 char txid_hex[65];
42 uint64_t expiration_ms;
45
53
61void tron_rpc_init(const char *base_url);
62
78void tron_rpc_set_ca_cert(const char *ca_pem);
79
94bool tron_rpc_get_balance(const char *owner_hex, uint64_t *sun_out);
95
109bool tron_rpc_get_energy(const char *owner_hex, uint64_t *energy_out);
110
127bool tron_rpc_get_trc20_balance(const char *owner_hex, const char *contract_hex,
128 uint64_t *units_out);
129
138bool tron_rpc_get_trc20_decimals(const char *contract_hex, uint64_t *dec_out);
139
151bool tron_rpc_create_transfer(const char *owner_hex, const char *to_hex,
152 uint64_t amount_sun, tron_tx_ctx_t *out);
153
175bool tron_rpc_create_trc20_transfer(const char *owner_hex,
176 const char *contract_hex,
177 const char *to_hex, uint64_t amount,
178 uint64_t fee_limit_sun,
179 tron_tx_ctx_t *out);
180
188bool tron_rpc_broadcast(const tron_tx_ctx_t *tx, const uint8_t sig[65]);
189
196tron_receipt_t tron_rpc_get_receipt(const char *txid_hex);
197
198#ifdef __cplusplus
199}
200#endif
201
202#endif /* TRON_RPC_H */
A created-and-verified transfer, ready to sign and broadcast.
Definition tron_rpc.h:38
uint8_t txid[32]
Definition tron_rpc.h:39
char txid_hex[65]
Definition tron_rpc.h:40
char raw_hex[TRON_RAW_HEX_MAX]
Definition tron_rpc.h:41
uint64_t expiration_ms
Definition tron_rpc.h:42
bool tron_rpc_get_trc20_balance(const char *owner_hex, const char *contract_hex, uint64_t *units_out)
Read an account's TRC-20 balance via a constant balanceOf call.
Definition tron_rpc.cpp:269
bool tron_rpc_get_balance(const char *owner_hex, uint64_t *sun_out)
Read an account's TRX balance, in sun.
Definition tron_rpc.cpp:218
bool tron_rpc_create_trc20_transfer(const char *owner_hex, const char *contract_hex, const char *to_hex, uint64_t amount, uint64_t fee_limit_sun, tron_tx_ctx_t *out)
Create a TRC-20 transfer (USDT, USDC, …) and verify what the node serialised for us.
Definition tron_rpc.cpp:411
bool tron_rpc_get_energy(const char *owner_hex, uint64_t *energy_out)
Read the energy an account still has available.
Definition tron_rpc.cpp:241
void tron_rpc_set_ca_cert(const char *ca_pem)
Optional: pin the Tron endpoint's TLS certificate.
Definition tron_rpc.cpp:195
bool tron_rpc_broadcast(const tron_tx_ctx_t *tx, const uint8_t sig[65])
Broadcast a created transfer with its 65-byte signature.
Definition tron_rpc.cpp:471
#define TRON_RAW_HEX_MAX
Hex capacity for a raw_data protobuf.
Definition tron_rpc.h:35
tron_receipt_t
Outcome of one gettransactioninfobyid poll.
Definition tron_rpc.h:47
@ TRON_RECEIPT_FAILED
Definition tron_rpc.h:50
@ TRON_RECEIPT_RPC_ERROR
Definition tron_rpc.h:51
@ TRON_RECEIPT_SUCCESS
Definition tron_rpc.h:49
@ TRON_RECEIPT_PENDING
Definition tron_rpc.h:48
bool tron_rpc_create_transfer(const char *owner_hex, const char *to_hex, uint64_t amount_sun, tron_tx_ctx_t *out)
Create a TRX transfer and verify what the node serialised for us.
Definition tron_rpc.cpp:366
tron_receipt_t tron_rpc_get_receipt(const char *txid_hex)
Poll a broadcast transaction's receipt (one shot).
Definition tron_rpc.cpp:511
void tron_rpc_init(const char *base_url)
Set the Tron HTTP API base URL (no trailing slash).
Definition tron_rpc.cpp:190
bool tron_rpc_get_trc20_decimals(const char *contract_hex, uint64_t *dec_out)
Read a TRC-20 contract's decimals() — see eth_rpc_get_token_decimals for why it has to be 6.
Definition tron_rpc.cpp:330