View Issue Details

IDProjectCategoryView StatusLast Update
0010104Talerlibeufin-bank webuipublic2025-08-31 17:10
ReporterAntoine A Assigned ToAntoine A Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product Version1.0 stretch goals 
Target Version1.0 stretch goalsFixed in Version1.0 stretch goals 
Summary0010104: Conversion rate class UI
DescriptionI added conversion rate class support in libeufin branch dev/antoine/conversion-rate-class. The online documentation is already updated.
This is technically a breaking change but only for the SPA. My proposition is to merge the SPA and the branch at the same time to master to avoid any real breaking.

Previous per user min_cashout override have been removed in factor of conversion rate classes and the conversion info API have been updated to handle theses overrides.

If you think the API can be improved to make your life easier tell me, nothing is final yet
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

child of 0008614 closedAntoine A allow different fee classes for cashout [20h] 

Activities

sebasjm

2025-06-16 19:40

developer   ~0025259

Waiting for the changes in the DD

Antoine A

2025-06-17 17:29

manager   ~0025274

Updated the DD and the API

sebasjm

2025-06-25 19:49

developer   ~0025363

I'm going to summarize the changes i need to do for this

Changes in taler-util
 * upgrade http-client/bank-core.ts to match the new API spec (from 8 to 9)
 * fix all breaking api (not easy to calculate) i guess all places where currency conversion is made

Changes in the normal user UI:
 * UI should work like today
 * the information is gather from the user account field `conversion_rate_class`

Changes in the admin UI: If conversion is enabled admin should be able to
 * button to add new conversion class
 * show the list of all the conversion classes, click a row to see details
 * details should show all information about class, similar to the account details
 * should be possible to edit the conversion from the details
 * should be possible to delete
 * should be possible to see all the user affected by the class
 * under account details: should be possible to see the conversion rate class, maybe just with with the name, clicking should be possible see more details about the class
 * under account details: remove the class (leaving the default of the system)
 * under account details: should be possible to change to any other class (how? listing classes from a select? search by text?)

I think that's all, but i will keep it updated.

sebasjm

2025-07-01 14:06

developer   ~0025386

I'm getting

curl 'http://bank.taler.test:1180/conversion-info/conversion-rate' --data-raw '{"cashin_fee":"LAIA:0.02","cashin_min_amount":"EUR:0","cashin_ratio":"0.7","cashin_rounding_mode":"nearest","cashout_fee":"EUR:0.003","cashout_min_amount":"LAIA:0.1","cashout_ratio":"1.26","cashout_rounding_mode":"zero"}'

{"code":22,"hint":"Fields [cashin_tiny_amount, cashout_tiny_amount] are required for type with serial name 'tech.libeufin.bank.ConversionRate', but they were missing"}

but that's not in the spec
https://docs.taler.net/design-documents/063-libeufin-conversion-rate-classes.html#proposed-solution

sebasjm

2025-07-01 14:11

developer   ~0025387

I changed `conversion_rate_class` to `conversion_rate` in the Spec as the SPA needs the complete information to inform the user (from the class assigned to the user but also merged with default value)

sebasjm

2025-07-01 14:25

developer   ~0025388

Update

Changes in taler-util: [completed]

Changes in the normal user UI: I need that libeufin returns `convertion_rate` (merged value, on final state) of the user instead of the classId

 Changes in the admin UI:
 [completed] button to add new conversion class
 [completed] show the list of all the conversion classes, click a row to see details
 [completed] details should show all information about class, similar to the account details
 [completed] should be possible to edit the conversion from the details
 * should be possible to delete
 * should be possible to see all the user affected by the class


I think that I can leave the next features out of scope since is redundant... all the management souble be done from the `conversion details` UI. I will add a "search by username" on a new section "user associated to this conversion rate class", from there the admin can switch or remove the conversion class of the user.

 * under account details: should be possible to see the conversion rate class, maybe just with with the name, clicking should be possible see more details about the class
 * under account details: remove the class (leaving the default of the system)
 * under account details: should be possible to change to any other class (how? listing classes from a select? search by text?)

sebasjm

2025-07-03 19:16

developer   ~0025409

[completed] should be possible to see all the user affected by the class
[completed] should be possible to delete

Class can only be delete if no users are in them

sebasjm

2025-07-03 19:17

developer   ~0025410

I can merge this now, I would like to first ACK all the differences in API first. Via mattermost / mumble

Antoine A

2025-07-22 08:48

manager   ~0025551

Implemented in 3922157f6ad0a3a046f4cc1f3f7ed54d83b21094
More UI work is needed and will be documented in new issues

Issue History

Date ModifiedUsernameFieldChange
2025-06-13 17:47Antoine ANew Issue
2025-06-13 17:47Antoine AStatusnew => assigned
2025-06-13 17:47Antoine AAssigned To => sebasjm
2025-06-13 17:47Antoine ARelationship addedrelated to 0008614
2025-06-15 18:19Christian GrothoffRelationship addedchild of 0010076
2025-06-15 18:19Christian GrothoffRelationship deletedchild of 0010076
2025-06-15 18:20Christian GrothoffRelationship deletedrelated to 0008614
2025-06-15 18:20Christian GrothoffRelationship addedchild of 0008614
2025-06-16 19:40sebasjmAssigned Tosebasjm => Antoine A
2025-06-16 19:40sebasjmStatusassigned => feedback
2025-06-16 19:40sebasjmNote Added: 0025259
2025-06-17 17:29Antoine AAssigned ToAntoine A => sebasjm
2025-06-17 17:29Antoine AStatusfeedback => implementing
2025-06-17 17:29Antoine ANote Added: 0025274
2025-06-25 19:49sebasjmNote Added: 0025363
2025-07-01 14:06sebasjmNote Added: 0025386
2025-07-01 14:11sebasjmNote Added: 0025387
2025-07-01 14:25sebasjmNote Added: 0025388
2025-07-03 19:16sebasjmNote Added: 0025409
2025-07-03 19:17sebasjmNote Added: 0025410
2025-07-03 19:19sebasjmAssigned Tosebasjm => Antoine A
2025-07-03 19:19sebasjmStatusimplementing => feedback
2025-07-22 08:48Antoine AStatusfeedback => informing
2025-07-22 08:48Antoine AResolutionopen => fixed
2025-07-22 08:48Antoine ANote Added: 0025551
2025-08-31 17:09Christian GrothoffStatusinforming => closed
2025-08-31 17:10Christian GrothoffFixed in Version => 1.0 stretch goals
2026-08-23 14:18Florian DoldCategorylibeufin-bank-ui (SPA) => libeufin-bank webui