šŸ“š Guia do Novo Modelo de TransaƧƵes V2

šŸŽÆ Objetivo

Suportar todas as operações de cripto: depósitos, levantamentos, compras, vendas, swaps, transferências entre contas, staking, lending, borrowing, etc.

šŸ“Š Estrutura da Transação V2

Colunas Principais

Coluna Tipo Descrição
transaction_type TEXT Tipo de operação (ver tabela abaixo)
from_asset_id INT Asset de origem (o que sai)
from_quantity DECIMAL Quantidade que sai
from_account_id INT Conta de origem (para transfers)
to_asset_id INT Asset de destino (o que entra)
to_quantity DECIMAL Quantidade que entra
to_account_id INT Conta de destino (para transfers)
account_id INT Conta principal da operação
fee_asset_id INT Asset usado para pagar fee
fee_quantity DECIMAL Quantidade de fee

šŸ”„ Tipos de Transação

1. DEPOSIT (banco → exchange)

Depositar EUR do banco para uma exchange.

{
    'transaction_type': 'deposit',
    'from_asset_id': EUR_id,
    'from_quantity': 1000.00,
    'from_account_id': conta_banco_id,
    'to_asset_id': EUR_id,
    'to_quantity': 1000.00,
    'to_account_id': binance_spot_id,
    'fee_eur': 0.00
}

Holdings Impact:

2. WITHDRAWAL (exchange → banco)

Levantar EUR da exchange para o banco.

{
    'transaction_type': 'withdrawal',
    'from_asset_id': EUR_id,
    'from_quantity': 500.00,
    'from_account_id': binance_spot_id,
    'to_asset_id': EUR_id,
    'to_quantity': 500.00,
    'to_account_id': conta_banco_id,
    'fee_eur': 0.00
}

Holdings Impact:

3. BUY (EUR → Cripto)

Comprar cripto com EUR.

{
    'transaction_type': 'buy',
    'from_asset_id': EUR_id,
    'from_quantity': 100.00,
    'to_asset_id': ADA_id,
    'to_quantity': 50.00,
    'account_id': binance_spot_id,
    'fee_asset_id': EUR_id,
    'fee_quantity': 0.50
}

Holdings Impact:

4. SELL (Cripto → EUR)

Vender cripto por EUR.

{
    'transaction_type': 'sell',
    'from_asset_id': ADA_id,
    'from_quantity': 25.00,
    'to_asset_id': EUR_id,
    'to_quantity': 49.50,
    'account_id': binance_spot_id,
    'fee_asset_id': EUR_id,
    'fee_quantity': 0.50
}

Holdings Impact:

5. SWAP (Cripto A → Cripto B)

Trocar um ativo por outro (DEX, exchange).

{
    'transaction_type': 'swap',
    'from_asset_id': ADA_id,
    'from_quantity': 50.00,
    'to_asset_id': USDC_id,
    'to_quantity': 40.00,
    'account_id': minswap_id,
    'fee_asset_id': ADA_id,
    'fee_quantity': 0.50
}

Holdings Impact:

6. TRANSFER (Conta A → Conta B)

Mover asset entre contas/wallets.

{
    'transaction_type': 'transfer',
    'from_asset_id': ADA_id,
    'from_quantity': 100.00,
    'from_account_id': binance_spot_id,
    'to_asset_id': ADA_id,
    'to_quantity': 99.50,
    'to_account_id': metamask_id,
    'fee_asset_id': ADA_id,
    'fee_quantity': 0.50
}

Holdings Impact:

7. STAKE (DisponĆ­vel → Staked)

Colocar asset em staking/earn.

{
    'transaction_type': 'stake',
    'from_asset_id': ADA_id,
    'from_quantity': 100.00,
    'from_account_id': binance_spot_id,
    'to_asset_id': ADA_id,
    'to_quantity': 100.00,
    'to_account_id': binance_earn_id,
    'fee_quantity': 0.00
}

Holdings Impact:

āš ļø Notas Importantes

1. EUR Ć© um Asset

EUR agora estĆ” na tabela t_assets como is_stablecoin=TRUE.

2. Conta "Banco"

Existe uma exchange especial "Banco" (categoria FIAT) para rastrear EUR fora de exchanges.

3. Retrocompatibilidade

Transações antigas buy/sell continuam funcionando. As colunas legacy são mantidas.

4. Fees em Qualquer Asset

Fees agora podem ser em qualquer asset (não apenas EUR):