@@ -122,27 +122,26 @@ fd_txn_account_init_from_funk_readonly( fd_txn_account_t * acct,
122122 fd_pubkey_t const * pubkey ,
123123 fd_funk_t const * funk ,
124124 fd_funk_txn_xid_t const * xid ) {
125+ fd_accdb_user_t accdb [1 ];
126+ fd_accdb_user_v1_init ( accdb , funk -> shmem );
125127
126- int err = FD_ACC_MGR_SUCCESS ;
127- fd_account_meta_t const * meta = fd_funk_get_acc_meta_readonly (
128- funk ,
129- xid ,
130- pubkey ,
131- NULL ,
132- & err ,
133- NULL );
134-
135- if ( FD_UNLIKELY ( err != FD_ACC_MGR_SUCCESS ) ) {
136- return err ;
128+ fd_accdb_ro_t ro [1 ];
129+ if ( FD_UNLIKELY ( !fd_accdb_open_ro ( accdb , ro , xid , pubkey ) ) ) {
130+ fd_accdb_user_fini ( accdb );
131+ return FD_ACC_MGR_ERR_UNKNOWN_ACCOUNT ;
137132 }
138133
134+ /* HACKY: Convert accdb_rw writable reference into txn_account.
135+ In the future, use fd_accdb_modify_publish instead */
136+ accdb -> base .ro_active -- ;
139137 if ( FD_UNLIKELY ( !fd_txn_account_new (
140138 acct ,
141139 pubkey ,
142- (fd_account_meta_t * )meta ,
140+ (fd_account_meta_t * )ro -> meta ,
143141 0 ) ) ) {
144142 FD_LOG_CRIT (( "Failed to join txn account" ));
145143 }
144+ fd_accdb_user_fini ( accdb );
146145
147146 return FD_ACC_MGR_SUCCESS ;
148147}
@@ -425,13 +424,3 @@ void
425424fd_txn_account_set_mutable ( fd_txn_account_t * acct ) {
426425 acct -> is_mutable = 1 ;
427426}
428-
429- fd_solana_account_meta_t
430- fd_txn_account_get_solana_meta ( fd_txn_account_t const * acct ) {
431- fd_solana_account_meta_t meta = {
432- .lamports = acct -> meta -> lamports ,
433- .executable = acct -> meta -> executable ,
434- };
435- memcpy ( meta .owner , acct -> meta -> owner , sizeof (fd_pubkey_t ) );
436- return meta ;
437- }
0 commit comments