scale apropiada para la precisión. Gestionar la precisión y el escalado es crítico para manejar transacciones y saldos con precisión.
Cada transacción se registra con dos atributos clave:
amount: Representa el valor de la transacción como un entero.scale: Especifica el número de decimales asociados con el amount.
Entender amount
El amount es el valor a debitar y acreditar desde las cuentas de origen o hacia las cuentas de destino. Se puede especificar de tres maneras:- amount: Esta es la definición directa del valor según la escala. Por ejemplo, un amount de 10 (
:amount BRL 100|2). - share: Esto indica un porcentaje del amount total que se distribuirá a una cuenta dada. Por ejemplo, si desea enviar el 90% del amount, debe formatearse como
:share 90, que significa 90%. - remaining: Esto indica que el amount total restante se enviará a una cuenta.
Entender scale
Lascale es un parámetro diseñado para definir cómo se interpreta el amount de la transacción.
ImportanteEste parámetro solo se admite en Midaz v2.x.x y versiones anteriores.
scale se puede establecer en un entero positivo para especificar el número de decimales para interpretar el valor de la transacción. Por ejemplo, si scale se establece en 2, un valor de 1000 se interpretará como 10.00.
En la siguiente tabla, puede encontrar algunos ejemplos de cómo funciona la scale.
| Activo | Amount | Scale | Interpretación |
|---|---|---|---|
| BRL | 576 | 2 | 5.76 |
| ETH | 38 | 5 | 0.00038 |
| BTC | 14 | 6 | 0.000014 |
| JPY | 154 | 0 | 154 |
Cálculo del saldo
Los saldos se ajustan dinámicamente según la escala más grande encontrada entre todas las transacciones registradas. Esto garantiza consistencia mientras preserva la precisión. Ejemplo de flujo de trabajo:- Transacción 1: BRL 0.1 usando
amount = 1000yscale = 4. - Transacción 2: BRL 0.02 usando
amount = 2000yscale = 5. - Transacción 3: BRL 10 usando
amount = 10yscale = 0. - Transacción 4: BRL 10 usando
amount = 100yscale = 1. - Transacción 5: BRL 0.03 usando
amount = 30yscale = 3.
- Después de la Transacción 1, el saldo se almacena con
scale = 4. - Después de la Transacción 2, el saldo se ajusta a
scale = 5. - Después de la Transacción 3, el saldo permanece en
scale = 5ya que no se encuentra una escala más grande.

