Line data Source code
1 : #include "fd_sysvar_rent.h" 2 : #include "fd_sysvar.h" 3 : #include "../fd_system_ids.h" 4 : #include "fd_sysvar_base.h" 5 : #include "../../accdb/fd_accdb_sync.h" 6 : 7 : #include <assert.h> 8 : 9 : void 10 : fd_sysvar_rent_write( fd_bank_t * bank, 11 : fd_accdb_user_t * accdb, 12 : fd_funk_txn_xid_t const * xid, 13 : fd_capture_ctx_t * capture_ctx, 14 21 : fd_rent_t const * rent ) { 15 21 : fd_sysvar_account_update( bank, accdb, xid, capture_ctx, &fd_sysvar_rent_id, rent, FD_SYSVAR_RENT_BINCODE_SZ ); 16 21 : } 17 : 18 : void 19 : fd_sysvar_rent_init( fd_bank_t * bank, 20 : fd_accdb_user_t * accdb, 21 : fd_funk_txn_xid_t const * xid, 22 0 : fd_capture_ctx_t * capture_ctx ) { 23 0 : fd_rent_t const * rent = &bank->f.rent; 24 0 : fd_sysvar_rent_write( bank, accdb, xid, capture_ctx, rent ); 25 0 : } 26 : 27 : fd_rent_t const * 28 : fd_sysvar_rent_read( fd_accdb_user_t * accdb, 29 : fd_funk_txn_xid_t const * xid, 30 9 : fd_rent_t * rent ) { 31 9 : fd_accdb_ro_t ro[1]; 32 9 : if( FD_UNLIKELY( !fd_accdb_open_ro( accdb, ro, xid, &fd_sysvar_rent_id ) ) ) { 33 0 : return NULL; 34 0 : } 35 : 36 9 : if( FD_UNLIKELY( fd_accdb_ref_data_sz( ro )!=FD_SYSVAR_RENT_BINCODE_SZ ) ) { 37 0 : fd_accdb_close_ro( accdb, ro ); 38 0 : return NULL; 39 0 : } 40 : 41 9 : memcpy( rent, fd_accdb_ref_data_const( ro ), FD_SYSVAR_RENT_BINCODE_SZ ); 42 9 : fd_accdb_close_ro( accdb, ro ); 43 9 : return rent; 44 9 : }