[Bug][Contract] LoanManager refinance_loan fails to update term_ledgers and reset interest_residual
Los mantenedores suelen responder en 5 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- rust
- Área
- backend, blockchain
Línea de trabajo
Empieza en contracts/loan_manager/src/lib.rs, en LoanManager::refinance_loan, alrededor de las líneas 2284–2295; después, compáralo con approve_loan alrededor de las líneas 1244–1246 y con las rutas de acumulación de intereses de las líneas 389 y 673. Añade una prueba unitaria que refinancie el préstamo a un plazo distinto y compruebe la acumulación posterior de intereses y el momento en que se aplica el recargo por mora; el trabajo estará terminado cuando el comportamiento del nuevo plazo, el saldo residual y el período de gracia coincida con la descripción de la incidencia.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Issue #122
LoanManager refinance_loan Fails to Update term_ledgers and Reset interest_residual
- Title:
[Bug][Contract] LoanManager refinance_loan fails to update term_ledgers and reset interest_residual - Labels:
bug, contracts, smart-contract, good first issue - Location:
contracts/loan_manager/src/lib.rs:2284-2295 - Description:
InLoanManager::refinance_loan, when resetting the loan state for the new term (loan.amount = new_amount; loan.due_date = current_ledger.checked_add(new_term)...;),loan.term_ledgersis never updated tonew_term,loan.interest_residualis not reset to0, andloan.last_late_fee_ledgeris set toloan.due_dateinstead ofloan.due_date + grace_period_ledgers(compare withapprove_loanat lines 1244-1246). Becauseaccrue_interest(line 389) andaccrue_late_fee(line 673) divide byloan.term_ledgers, a loan refinanced into a different term length continues accruing interest and late fees using the oldterm_ledgersdenominator. - Impact:
Refinancing a loan to a longer or shorternew_termmiscalculates all subsequent interest and late fee accruals, and starts accruing late fees before the grace period has elapsed. - Suggested Fix:
Inrefinance_loan(around line 2290), setloan.term_ledgers = new_term;,loan.interest_residual = 0;, andloan.last_late_fee_ledger = loan.due_date.checked_add(Self::grace_period_ledgers(&env)).expect("grace period overflow");. Add a unit test refinancing a loan with a differentnew_termand verifying subsequent interest accrual.
- Lenguaje dominante
- TypeScript
- Estrellas
- 22
- Forks
- 313
- Merge medio
- 5 d 1 h
- PR fusionados (30 d)
- 78
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de LabsCrypt/remitlend
-
[Bug][Backend] scoreController.getScoreBreakdown uses CROSS JOIN with current_score_cte returning empty breakdown for users without a scores rowPosiblemente ocupada @alagbesadat208-prog la tomó hace 4 días. Abiertobackend bug database good first issue Stellar Wave
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
LabsCrypt/remitlend#2021 · 7 comentarios · 1 asignado ·
Los mantenedores suelen responder en 5 días
-
[Bug][Backend] loanController.requestLoan compares human-readable token amount against poolBalance in stroops (10^7 unit mismatch)Posiblemente ocupada @alagbesadat208-prog la tomó hace 4 días. Abiertobackend bug good first issue Stellar Wave
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
LabsCrypt/remitlend#2019 · 7 comentarios · 1 asignado ·
Los mantenedores suelen responder en 5 días
-
[Bug][Frontend] LoanDetailsPageClient does not refetch loan or events after refinance/extension and omits locale on linksPosiblemente ocupada @sksneh la tomó hace 2 días. Abiertobug frontend good first issue Stellar Wave ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
LabsCrypt/remitlend#2009 · 9 comentarios · 1 asignado ·
Los mantenedores suelen responder en 5 días
-
[Bug][Frontend] Mobile BottomNav links to non-existent /profile route (404) and hardcodes English labelsPosiblemente ocupada @sksneh la tomó hace 2 días. Abiertobug frontend good first issue Stellar Wave ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
LabsCrypt/remitlend#2007 · 10 comentarios · 1 asignado ·
Los mantenedores suelen responder en 5 días
-
[Bug][Contract] Inconsistent default fallbacks in LoanManager get_min_term_ledgers and get_max_term_ledgersPosiblemente ocupada @goodness-cpu la tomó hace 2 días. Abiertobug contracts good first issue smart-contract Stellar Wave
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
LabsCrypt/remitlend#2003 · 5 comentarios · 1 asignado ·
Los mantenedores suelen responder en 5 días
Todos los issues de LabsCrypt/remitlend
Issues similares
-
[Bug]: REST API URL starting with "http" but no scheme (e.g. httpbin.org/get) is not given an http:// prefixPosiblemente ocupada @ItsDeadlyProgrammer la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
appsmithorg/appsmith#42471 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ehmpathy/rhachet-roles-bhrain#705 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Status: Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
mermaid-js/mermaid#8546 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
braintrustdata/braintrust-sdk-javascript#2659 ·
Los mantenedores suelen responder en 1 día