| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #pragma once
- /**
- * @brief Solana program entrypoint
- */
- #include <sol/constants.h>
- #include <sol/types.h>
- #include <sol/pubkey.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * Keyed Account
- */
- typedef struct {
- SolPubkey *key; /** Public key of the account */
- uint64_t *lamports; /** Number of lamports owned by this account */
- uint64_t data_len; /** Length of data in bytes */
- uint8_t *data; /** On-chain data within this account */
- SolPubkey *owner; /** Program that owns this account */
- uint64_t rent_epoch; /** The epoch at which this account will next owe rent */
- bool is_signer; /** Transaction was signed by this account's key? */
- bool is_writable; /** Is the account writable? */
- bool executable; /** This account's data contains a loaded program (and is now read-only) */
- } SolAccountInfo;
- /**
- * Structure that the program's entrypoint input data is deserialized into.
- */
- typedef struct {
- SolAccountInfo* ka; /** Pointer to an array of SolAccountInfo, must already
- point to an array of SolAccountInfos */
- uint64_t ka_num; /** Number of SolAccountInfo entries in `ka` */
- const uint8_t *data; /** pointer to the instruction data */
- uint64_t data_len; /** Length in bytes of the instruction data */
- const SolPubkey *program_id; /** program_id of the currently executing program */
- } SolParameters;
- /**
- * Program instruction entrypoint
- *
- * @param input Buffer of serialized input parameters. Use sol_deserialize() to decode
- * @return 0 if the instruction executed successfully
- */
- uint64_t entrypoint(const uint8_t *input);
- #ifdef __cplusplus
- }
- #endif
- /**@}*/
|