@@ -373,9 +373,7 @@ async def _submit(
373
373
f"WalletNotFoundError in _submit: Missing key for verkey "
374
374
f"{ sign_did .verkey } "
375
375
f"in wallet associated with profile ID "
376
- f"{ current_profile .context .settings .get ('wallet.id' )} ."
377
- f"Ledger profile ID was "
378
- f"{ self .profile .context .settings .get ('wallet.id' )} ." ,
376
+ f"{ current_profile .context .settings .get ('wallet.id' )} ." ,
379
377
exc_info = True ,
380
378
)
381
379
raise WalletNotFoundError (
@@ -1181,22 +1179,10 @@ async def send_revoc_reg_def(
1181
1179
# NOTE - issuer DID could be extracted from the revoc_reg_def ID
1182
1180
async with self .profile .session () as session :
1183
1181
wallet = session .inject (BaseWallet )
1184
- LOGGER .debug ("send_revoc_reg_def.Wallet instance: %s" , wallet )
1185
- LOGGER .debug (
1186
- "send_revoc_reg_def.Profile context: %s" , self .profile .context .settings
1187
- )
1188
1182
if issuer_did :
1189
1183
did_info = await wallet .get_local_did (issuer_did )
1190
- LOGGER .debug (
1191
- "send_revoc_reg_def.Local DID retrieved for issuer_did '%s': %s" ,
1192
- issuer_did ,
1193
- did_info ,
1194
- )
1195
1184
else :
1196
1185
did_info = await wallet .get_public_did ()
1197
- LOGGER .debug (
1198
- "send_revoc_reg_def.Public DID retrieved from wallet: %s" , did_info
1199
- )
1200
1186
del wallet
1201
1187
if not did_info :
1202
1188
raise LedgerTransactionError (
@@ -1226,7 +1212,6 @@ async def send_revoc_reg_def(
1226
1212
sign = True ,
1227
1213
sign_did = did_info ,
1228
1214
write_ledger = write_ledger ,
1229
- profile = self .profile ,
1230
1215
)
1231
1216
except LedgerError as err :
1232
1217
raise LedgerError (
@@ -1272,21 +1257,56 @@ async def send_revoc_reg_entry(
1272
1257
profile : Optional [Profile ] = None ,
1273
1258
) -> dict :
1274
1259
"""Publish a revocation registry entry to the ledger."""
1260
+ LOGGER .debug (">>> Entered send_revoc_reg_entry" )
1261
+ LOGGER .debug (
1262
+ f"Initial parameters - issuer_did: { issuer_did } , write_ledger: { write_ledger } , endorser_did: { endorser_did } " # noqa: E501
1263
+ )
1264
+
1275
1265
current_profile = profile or self .profile
1266
+ LOGGER .debug (
1267
+ f"Using profile: { 'provided profile' if profile else 'self.profile' } "
1268
+ )
1269
+
1276
1270
async with current_profile .session () as session :
1277
1271
wallet = session .inject (BaseWallet )
1278
- did_info = await wallet .get_public_did ()
1279
- del wallet
1272
+ LOGGER .debug ("Retrieved wallet instance: %s" , type (wallet ).__name__ )
1273
+
1274
+ try :
1275
+ did_info = await wallet .get_public_did ()
1276
+ LOGGER .debug (f"Public DID info: { did_info } " )
1277
+ except Exception as e :
1278
+ LOGGER .error ("Error during DID resolution: %s" , str (e ))
1279
+ raise
1280
+ finally :
1281
+ del wallet
1282
+
1280
1283
if not did_info :
1284
+ LOGGER .error ("No DID info found for revocation registry entry" )
1281
1285
raise LedgerTransactionError (
1282
1286
"No issuer DID found for revocation registry entry"
1283
1287
)
1284
1288
1285
- if current_profile .context .settings .get ("wallet.type" ) == "askar-anoncreds" :
1286
- from acapy_agent .anoncreds .default .legacy_indy .registry import (
1287
- LegacyIndyRegistry ,
1288
- )
1289
+ LOGGER .debug (f"Final DID used: { did_info .did } (verkey: { did_info .verkey } )" )
1289
1290
1291
+ # Wallet type check
1292
+ wallet_type = current_profile .context .settings .get ("wallet.type" )
1293
+ LOGGER .debug (
1294
+ f"Wallet type evaluation: { wallet_type } (comparison to 'askar-anoncreds')"
1295
+ )
1296
+
1297
+ if wallet_type == "askar-anoncreds" :
1298
+ LOGGER .debug (">>> Entering askar-anoncreds path" )
1299
+ try :
1300
+ from acapy_agent .anoncreds .default .legacy_indy .registry import ( # noqa: F401
1301
+ LegacyIndyRegistry ,
1302
+ )
1303
+
1304
+ LOGGER .debug ("Successfully imported LegacyIndyRegistry" )
1305
+ except ImportError as e :
1306
+ LOGGER .error ("Import error: %s" , str (e ))
1307
+ raise
1308
+
1309
+ LOGGER .debug ("Building revoc_reg_entry request" )
1290
1310
revoc_reg_entry_req = await self ._create_revoc_reg_entry_request (
1291
1311
did_info ,
1292
1312
revoc_reg_id ,
@@ -1295,47 +1315,80 @@ async def send_revoc_reg_entry(
1295
1315
write_ledger = write_ledger ,
1296
1316
endorser_did = endorser_did ,
1297
1317
)
1318
+ LOGGER .debug (f"Request type created: { type (revoc_reg_entry_req ).__name__ } " )
1319
+
1298
1320
if endorser_did and not write_ledger :
1321
+ LOGGER .debug ("Adding endorser to request" )
1299
1322
revoc_reg_entry_req .set_endorser (endorser_did )
1300
1323
1324
+ # Transaction submission
1325
+ LOGGER .debug ("Initializing LegacyIndyRegistry" )
1301
1326
legacy_indy_registry = LegacyIndyRegistry ()
1302
- resp = await legacy_indy_registry .txn_submit (
1303
- self ,
1304
- revoc_reg_entry_req ,
1305
- sign = True ,
1306
- sign_did = did_info ,
1307
- write_ledger = write_ledger ,
1308
- )
1327
+ try :
1328
+ LOGGER .debug ("Submitting transaction via LegacyIndyRegistry" )
1329
+ resp = await legacy_indy_registry .txn_submit (
1330
+ self ,
1331
+ revoc_reg_entry_req ,
1332
+ sign = True ,
1333
+ sign_did = did_info ,
1334
+ write_ledger = write_ledger ,
1335
+ profile = current_profile ,
1336
+ )
1337
+ LOGGER .debug ("Received response from LegacyIndyRegistry" )
1338
+ except Exception as e :
1339
+ LOGGER .error ("Error in LegacyIndyRegistry submission: %s" , str (e ))
1340
+ raise
1309
1341
1310
1342
if not write_ledger :
1343
+ LOGGER .debug ("Write ledger disabled, returning unsigned response" )
1311
1344
return revoc_reg_id , {"signed_txn" : resp }
1312
1345
1313
1346
try :
1314
1347
# parse sequence number out of response
1348
+ LOGGER .debug ("Attempting to parse sequence number" )
1315
1349
seq_no = json .loads (resp )["result" ]["txnMetadata" ]["seqNo" ]
1350
+ LOGGER .debug (f"Parsed sequence number: { seq_no } " )
1316
1351
return seq_no
1317
1352
except KeyError as err :
1353
+ LOGGER .error ("Key error parsing response: %s" , str (err ))
1354
+ LOGGER .debug ("Full response content: %s" , resp )
1318
1355
raise LedgerError (
1319
1356
"Failed to parse sequence number from ledger response"
1320
1357
) from err
1321
1358
else :
1359
+ LOGGER .debug (">>> Entering default Indy-VDR path" )
1322
1360
try :
1361
+ LOGGER .debug ("Building standard revoc_reg_entry request" )
1323
1362
request = ledger .build_revoc_reg_entry_request (
1324
1363
did_info .did ,
1325
1364
revoc_reg_id ,
1326
1365
revoc_def_type ,
1327
1366
json .dumps (revoc_reg_entry ),
1328
1367
)
1368
+ LOGGER .debug (f"Request type created: { type (request ).__name__ } " )
1369
+
1329
1370
if endorser_did and not write_ledger :
1371
+ LOGGER .debug ("Adding endorser to request" )
1330
1372
request .set_endorser (endorser_did )
1373
+
1331
1374
except VdrError as err :
1375
+ LOGGER .error ("VdrError in request building: %s" , str (err ))
1376
+ raise LedgerError (
1377
+ "Exception when sending revocation registry entry"
1378
+ ) from err
1379
+
1380
+ try :
1381
+ LOGGER .debug ("Submitting to ledger" )
1382
+ resp = await self ._submit (
1383
+ request , True , sign_did = did_info , write_ledger = write_ledger
1384
+ )
1385
+ LOGGER .debug ("Received ledger response" )
1386
+ return {"result" : resp }
1387
+ except Exception as err :
1388
+ LOGGER .error ("Error during ledger submission: %s" , str (err ))
1332
1389
raise LedgerError (
1333
1390
"Exception when sending revocation registry entry"
1334
1391
) from err
1335
- resp = await self ._submit (
1336
- request , True , sign_did = did_info , write_ledger = write_ledger
1337
- )
1338
- return {"result" : resp }
1339
1392
1340
1393
async def get_wallet_public_did (self , profile : Optional [Profile ] = None ) -> DIDInfo :
1341
1394
"""Fetch the public DID from the wallet."""
@@ -1381,13 +1434,18 @@ async def txn_submit(
1381
1434
profile : Optional [Profile ] = None ,
1382
1435
) -> str :
1383
1436
"""Write the provided (signed and possibly endorsed) transaction to the ledger."""
1384
- resp = await self ._submit (
1385
- request_json ,
1386
- sign = sign ,
1387
- taa_accept = taa_accept ,
1388
- sign_did = sign_did ,
1389
- write_ledger = write_ledger ,
1390
- )
1437
+ kwargs = {
1438
+ "sign" : sign ,
1439
+ "taa_accept" : taa_accept ,
1440
+ "sign_did" : sign_did ,
1441
+ "write_ledger" : write_ledger ,
1442
+ }
1443
+
1444
+ if profile :
1445
+ kwargs ["profile" ] = profile
1446
+
1447
+ resp = await self ._submit (request_json , ** kwargs )
1448
+
1391
1449
if write_ledger :
1392
1450
# match the format returned by indy sdk
1393
1451
resp = {"op" : "REPLY" , "result" : resp }
0 commit comments