@@ -28,19 +28,12 @@ pub async fn mint_blind_auth(
2828) -> Result < ( ) > {
2929 let mint_url = sub_command_args. mint_url . clone ( ) ;
3030
31- let wallet = match multi_mint_wallet. get_wallet ( & mint_url) . await {
32- Some ( wallet) => wallet. clone ( ) ,
33- None => {
34- multi_mint_wallet. add_mint ( mint_url. clone ( ) , None ) . await ?;
35- multi_mint_wallet
36- . get_wallet ( & mint_url)
37- . await
38- . expect ( "Wallet should exist after adding mint" )
39- . clone ( )
40- }
41- } ;
31+ // Ensure the mint exists
32+ if !multi_mint_wallet. has_mint ( & mint_url) . await {
33+ multi_mint_wallet. add_mint ( mint_url. clone ( ) ) . await ?;
34+ }
4235
43- wallet . fetch_mint_info ( ) . await ?;
36+ multi_mint_wallet . fetch_mint_info ( & mint_url ) . await ?;
4437
4538 // Try to get the token from the provided argument or from the stored file
4639 let cat = match & sub_command_args. cat {
@@ -68,15 +61,15 @@ pub async fn mint_blind_auth(
6861 } ;
6962
7063 // Try to set the access token
71- if let Err ( err) = wallet . set_cat ( cat. clone ( ) ) . await {
64+ if let Err ( err) = multi_mint_wallet . set_cat ( & mint_url , cat. clone ( ) ) . await {
7265 tracing:: error!( "Could not set cat: {}" , err) ;
7366
7467 // Try to refresh the token if we have a refresh token
7568 if let Ok ( Some ( token_data) ) = token_storage:: get_token_for_mint ( work_dir, & mint_url) . await {
7669 println ! ( "Attempting to refresh the access token..." ) ;
7770
7871 // Get the mint info to access OIDC configuration
79- if let Some ( mint_info) = wallet . fetch_mint_info ( ) . await ? {
72+ if let Some ( mint_info) = multi_mint_wallet . fetch_mint_info ( & mint_url ) . await ? {
8073 match refresh_access_token ( & mint_info, & token_data. refresh_token ) . await {
8174 Ok ( ( new_access_token, new_refresh_token) ) => {
8275 println ! ( "Successfully refreshed access token" ) ;
@@ -94,15 +87,19 @@ pub async fn mint_blind_auth(
9487 }
9588
9689 // Try setting the new access token
97- if let Err ( err) = wallet. set_cat ( new_access_token) . await {
90+ if let Err ( err) =
91+ multi_mint_wallet. set_cat ( & mint_url, new_access_token) . await
92+ {
9893 tracing:: error!( "Could not set refreshed cat: {}" , err) ;
9994 return Err ( anyhow:: anyhow!(
10095 "Authentication failed even after token refresh"
10196 ) ) ;
10297 }
10398
10499 // Set the refresh token
105- wallet. set_refresh_token ( new_refresh_token) . await ?;
100+ multi_mint_wallet
101+ . set_refresh_token ( & mint_url, new_refresh_token)
102+ . await ?;
106103 }
107104 Err ( e) => {
108105 tracing:: error!( "Failed to refresh token: {}" , e) ;
@@ -119,8 +116,10 @@ pub async fn mint_blind_auth(
119116 // If we have a refresh token, set it
120117 if let Ok ( Some ( token_data) ) = token_storage:: get_token_for_mint ( work_dir, & mint_url) . await {
121118 tracing:: info!( "Attempting to use refresh access token to refresh auth token" ) ;
122- wallet. set_refresh_token ( token_data. refresh_token ) . await ?;
123- wallet. refresh_access_token ( ) . await ?;
119+ multi_mint_wallet
120+ . set_refresh_token ( & mint_url, token_data. refresh_token )
121+ . await ?;
122+ multi_mint_wallet. refresh_access_token ( & mint_url) . await ?;
124123 }
125124 }
126125
@@ -129,8 +128,8 @@ pub async fn mint_blind_auth(
129128 let amount = match sub_command_args. amount {
130129 Some ( amount) => amount,
131130 None => {
132- let mint_info = wallet
133- . fetch_mint_info ( )
131+ let mint_info = multi_mint_wallet
132+ . fetch_mint_info ( & mint_url )
134133 . await ?
135134 . ok_or ( anyhow ! ( "Unknown mint info" ) ) ?;
136135 mint_info
@@ -139,7 +138,9 @@ pub async fn mint_blind_auth(
139138 }
140139 } ;
141140
142- let proofs = wallet. mint_blind_auth ( Amount :: from ( amount) ) . await ?;
141+ let proofs = multi_mint_wallet
142+ . mint_blind_auth ( & mint_url, Amount :: from ( amount) )
143+ . await ?;
143144
144145 println ! ( "Received {} auth proofs for mint {mint_url}" , proofs. len( ) ) ;
145146
0 commit comments