Hello function (compatibilidade com credit-demand-contract usando String)
fn hello(
env: soroban_sdk::Env,
to: soroban_sdk::String,
) -> soroban_sdk::Vec
Storage básico que funciona
fn set_value(
env: soroban_sdk::Env,
key: soroban_sdk::Symbol,
value: soroban_sdk::Symbol,
)
fn get_value(
env: soroban_sdk::Env,
key: soroban_sdk::Symbol,
) -> Option
Upgrade que sabemos que funciona
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
Inicializa o contrato com dados básicos
fn initialize(
env: soroban_sdk::Env,
id: soroban_sdk::Symbol,
issuer: soroban_sdk::Symbol,
volume: i128,
) -> soroban_sdk::Symbol
Inicializa o contrato com sistema de roles (OpenZeppelin Stellar)
fn initialize_with_roles(
env: soroban_sdk::Env,
id: soroban_sdk::Symbol,
issuer: soroban_sdk::Symbol,
volume: i128,
operator: soroban_sdk::Address,
admin: soroban_sdk::Address,
) -> soroban_sdk::Symbol
Verificar se o contrato foi inicializado OTIMIZAÇÃO: Flag de inicialização usa Instance Storage
fn is_initialized(env: soroban_sdk::Env) -> bool
Obtém o ID da demanda de crédito
fn get_id(env: soroban_sdk::Env) -> Option
Obtém o issuer da demanda de crédito
fn get_issuer(env: soroban_sdk::Env) -> Option
Obtém o volume da demanda de crédito (compatibilidade com credit-demand-contract)
fn get_volume(env: soroban_sdk::Env) -> i128
Função protegida por OPERATOR role para testes
fn operator_only_function(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
message: soroban_sdk::String,
) -> soroban_sdk::String
Adicionar débito com detalhes financeiros completos Equivalente ao addDebit do Solidity com onlyRole(OPERATOR_ROLE)
fn add_debit_detailed(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
debit_id: soroban_sdk::Symbol,
total_debit: i128,
amortization: i128,
fee: i128,
success_fee: i128,
due_date: u64,
) -> soroban_sdk::Symbol
Editar débito existente Equivalente ao editDebit do Solidity com onlyRole(OPERATOR_ROLE)
fn edit_debit_detailed(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
debit_id: soroban_sdk::Symbol,
total_debit: i128,
amortization: i128,
fee: i128,
success_fee: i128,
due_date: u64,
) -> soroban_sdk::Symbol
Obter valor de um débito
fn get_debit_amount(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> i128
Verificar se débito existe
fn debit_exists(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> bool
Verificar se há pagamentos em atraso (equivalente ao hasPaymentLate do Solidity)
fn has_payment_late(
env: soroban_sdk::Env,
current_time: u64,
) -> Option
Deletar todos os débitos do contrato Equivalente ao deleteAllDebits do Solidity com onlyRole(OPERATOR_ROLE)
fn delete_all_debits(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> soroban_sdk::Symbol
Obter total de débitos
fn get_total_debit(env: soroban_sdk::Env) -> i128
Obter total pago
fn get_total_paid(env: soroban_sdk::Env) -> i128
Obter saldo restante
fn get_remaining_balance(env: soroban_sdk::Env) -> i128
Obter contagem de débitos
fn get_debit_count(env: soroban_sdk::Env) -> i128
Obter amortização de um débito específico
fn get_debit_amortization(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> i128
Obter fee de um débito específico
fn get_debit_fee(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> i128
Obter success fee de um débito específico
fn get_debit_success_fee(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> i128
Obter data de vencimento de um débito (versão Option como no contract)
fn get_debit_due_date(
env: soroban_sdk::Env,
debit_id: soroban_sdk::Symbol,
) -> Option
Verificar se débito foi pago
fn is_debit_paid(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> bool
Pagar débito com detalhes financeiros Equivalente ao payDebit do Solidity com onlyRole(OPERATOR_ROLE)
fn pay_debit_detailed(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
debit_id: soroban_sdk::Symbol,
amortization_payment: i128,
fee_payment: i128,
success_fee_payment: i128,
payment_date: u64,
) -> soroban_sdk::Symbol
Verificar se débito está atrasado
fn is_debit_overdue(
env: soroban_sdk::Env,
debit_id: soroban_sdk::Symbol,
current_time: u64,
) -> soroban_sdk::Symbol
Obter detalhes completos do débito (versão Vec como no contract)
fn get_debit_detailed(
env: soroban_sdk::Env,
debit_id: soroban_sdk::Symbol,
) -> soroban_sdk::Vec
Versão original que retorna tupla (mantida para compatibilidade)
fn get_debit_detailed_tuple(
env: soroban_sdk::Env,
debit_id: soroban_sdk::Symbol,
) -> (i128, i128, i128, i128, u64, bool)
Adicionar relatório financeiro Equivalente ao addFinantialReport do Solidity com onlyRole(OPERATOR_ROLE)
fn add_financial_report(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
report: soroban_sdk::String,
) -> soroban_sdk::Symbol
Adicionar relatório de monitoramento Equivalente ao addMonitorReport do Solidity com onlyRole(OPERATOR_ROLE)
fn add_monitor_report(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
report: soroban_sdk::String,
) -> soroban_sdk::Symbol
Obter último relatório financeiro
fn get_last_financial_report(env: soroban_sdk::Env) -> Option
Obter último relatório de monitoramento
fn get_last_monitor_report(env: soroban_sdk::Env) -> Option
Obter relatório financeiro por índice
fn get_financial_report(
env: soroban_sdk::Env,
index: i128,
) -> Option
Obter relatório de monitoramento por índice
fn get_monitor_report(
env: soroban_sdk::Env,
index: i128,
) -> Option
Obter contagem de relatórios financeiros
fn get_financial_reports_count(env: soroban_sdk::Env) -> i128
Obter contagem de relatórios de monitoramento
fn get_monitor_reports_count(env: soroban_sdk::Env) -> i128
Definir links de documentos (análise de risco, garantia, contrato) Equivalente ao Solidity - deveria ter proteção de role para consistência
fn set_document_links(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
risk_analysis_link: soroban_sdk::String,
collateral_link: soroban_sdk::String,
contract_link: soroban_sdk::String,
) -> soroban_sdk::Symbol
Obter link de análise de risco
fn get_risk_analysis_link(env: soroban_sdk::Env) -> Option
Obter link de garantia
fn get_collateral_link(env: soroban_sdk::Env) -> Option
Obter link do contrato
fn get_contract_link(env: soroban_sdk::Env) -> Option
Definir último pagamento
fn set_last_payment(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
payment_id: soroban_sdk::String,
) -> soroban_sdk::Symbol
Obter último pagamento
fn get_last_payment(env: soroban_sdk::Env) -> Option
Atualizar endereço do pool proxy
fn update_proxy_pool_address(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
pool_proxy_address: soroban_sdk::Address,
) -> soroban_sdk::Symbol
Obter endereço do pool proxy
fn get_proxy_pool_address(env: soroban_sdk::Env) -> Option
Verificar se pool proxy foi configurado
fn has_pool_proxy_configured(env: soroban_sdk::Env) -> bool
Definir informações do pool
fn set_pool_info(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
pool_name: soroban_sdk::String,
) -> soroban_sdk::Symbol
Obter informações do pool
fn get_pool_info(env: soroban_sdk::Env) -> Option
Obter nome do emissor
fn get_issuer_name(env: soroban_sdk::Env) -> Option
Obter débitos em aberto
fn get_open_debits(env: soroban_sdk::Env) -> i128
Obter valor acumulado total
fn get_accumulate(env: soroban_sdk::Env) -> i128
Obter amortização acumulada total
fn get_amortization_accumulate(env: soroban_sdk::Env) -> i128
Obter taxas acumuladas total
fn get_fee_accumulate(env: soroban_sdk::Env) -> i128
Obter total de taxas pagas
fn get_total_fee_paid(env: soroban_sdk::Env) -> i128
Obter total de amortização paga
fn get_total_amortization_paid(env: soroban_sdk::Env) -> i128
Obter total pago de um débito específico
fn get_debit_total_paid(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> i128
Obter data de pagamento de um débito específico
fn get_debit_paid_date(env: soroban_sdk::Env, debit_id: soroban_sdk::Symbol) -> u64
Configurar endereço da pool para distribuição de rendimentos Deve ser chamada após o deploy para conectar credit-demand à pool
fn set_pool_address(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
pool_address: soroban_sdk::Address,
) -> soroban_sdk::Symbol
Obter endereço da pool configurada
fn get_pool_address(env: soroban_sdk::Env) -> Option
Verificar se pool foi configurada
fn is_pool_configured(env: soroban_sdk::Env) -> bool
fn has_role(
env: soroban_sdk::Env,
account: soroban_sdk::Address,
role: soroban_sdk::Symbol,
) -> Option
fn get_role_member_count(env: soroban_sdk::Env, role: soroban_sdk::Symbol) -> u32
fn get_role_member(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
index: u32,
) -> soroban_sdk::Address
fn get_role_admin(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
) -> Option
fn get_admin(env: soroban_sdk::Env) -> Option
fn grant_role(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
account: soroban_sdk::Address,
role: soroban_sdk::Symbol,
)
fn revoke_role(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
account: soroban_sdk::Address,
role: soroban_sdk::Symbol,
)
fn renounce_role(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
role: soroban_sdk::Symbol,
)
fn renounce_admin(env: soroban_sdk::Env)
fn transfer_admin_role(
env: soroban_sdk::Env,
new_admin: soroban_sdk::Address,
live_until_ledger: u32,
)
fn accept_admin_transfer(env: soroban_sdk::Env)
fn set_role_admin(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
admin_role: soroban_sdk::Symbol,
)