Migración de 0.5.x a 1.0.0
Esta guía cubre los cambios incompatibles introducidos en v1.0.0 y cómo actualizar tu código.
Cambio en la firma de create_invoice()
El parámetro asset ya no es el primer argumento posicional y ahora es opcional. amount es el primer argumento posicional.
Antes (0.5.x):
::
Después (1.0.0):
::
Si ya estabas usando asset= y amount= como argumentos con nombre, el único cambio es que asset ahora es opcional (requerido solo para facturas de criptomonedas).
Facturas en moneda fiat
El cambio en la firma habilita el nuevo soporte para facturas en moneda fiat. Para crear una factura fiat, omite asset y pasa currency_type, fiat y accepted_assets en su lugar:
invoice = client.create_invoice(
amount=10.00,
currency_type="fiat",
fiat="USD",
accepted_assets="USDT,TON,BTC",
)
ExchangeRate.source ahora es un str
ExchangeRate.source cambió del enum Asset a un str simple porque la API puede devolver códigos de moneda fiat que no son miembros de Asset.
Antes (0.5.x):
rates = client.get_exchange_rates()
btc_usd = next(r for r in rates if r.source == Asset.BTC and r.target == "USD")
Después (1.0.0):
rates = client.get_exchange_rates()
btc_usd = next(r for r in rates if r.source == "BTC" and r.target == "USD")
Mensajes de error de validación
La validación interna se generalizó para soportar cheques y transferencias. Si tu código compara mensajes de excepción de create_invoice o get_invoices, actualízalo de la siguiente manera:
Mensaje en 0.5.x |
Mensaje en 1.0.0 |
|---|---|
|
|
|
|
|
|
|
|
|
|
Nuevos endpoints
Estos son aditivos y no rompen el código existente, pero vale la pena mencionarlos:
delete_invoice(invoice_id)create_check(asset, amount, ...)/delete_check(check_id)get_checks(...)con paginación medianteiter_checks()eiter_check_pages()get_transfers(...)con paginación medianteiter_transfers()eiter_transfer_pages()get_stats(start_at, end_at)Parámetro de filtro
fiatenget_invoices()
Todos los nuevos endpoints están disponibles tanto en CryptoBotClient como en AsyncCryptoBotClient.