Skip to Content

Event Handling

Actions emit events throughout their lifecycle. These events can be used to update application UI and track progress.


Available Events

EventPayloadDescription
status-changestringTriggered when status updates
progressStrategyProgressDetailed progress metrics
completednoneOperation completed successfully
failednoneOperation failed
errorLombardErrorError details

Subscribing to Events

import { StakeEvent } from '@lombard.finance/sdk'; const stake = sdk.chain.btc.stake({ /* ... */ }); stake.on(StakeEvent.StatusChange, (status) => { console.log('Status:', status); }); stake.on(StakeEvent.Progress, (progress) => { console.log('Progress:', progress); console.log('Confirmations:', progress.confirmations); }); stake.on(StakeEvent.Completed, () => { console.log('Staking completed!'); }); stake.on(StakeEvent.Error, (error) => { console.error('Error:', error.code, error.message); });

Progress Tracking

The StrategyProgress interface provides detailed tracking:

interface StrategyProgress<TStatus extends string> { status: TStatus; steps: Record<string, StepStatus>; confirmations?: number; requiredConfirmations?: number; metadata?: Record<string, unknown>; } const StepStatus = { IDLE: 'idle', PENDING: 'pending', COMPLETE: 'complete', FAILED: 'failed', } as const;

Cleanup

Remove event listeners to prevent memory leaks:

const handler = (status) => console.log(status); stake.on(StakeEvent.StatusChange, handler); // Later, when done: stake.off(StakeEvent.StatusChange, handler);

Event Constants

All action types share identical event structures:

  • StakeEvent
  • DepositEvent
  • UnstakeEvent
  • DeployEvent
  • RedeemEvent
  • BridgeEvent
  • StakeAndDeployEvent
  • DepositAndDeployEvent

Each provides: Progress, StatusChange, Completed, Failed, and Error.

Last updated on