Appearance
Events
Subscribe to Coinbase lifecycle signals. Prefer reading state with getters when you only need the current value (for example getCooldown() instead of only listening to ticks).
When to use
Side effects: navigate to success, send the user back to Connect, update a countdown, toast on OAuth failure.
Methods
| Method | Event / payload | When |
|---|---|---|
onInitializationStarted | coinbase:initializationStarted | Module init begins |
onInitializationCompleted | coinbase:initializationCompleted | Init finished ({ isConnected }) |
onConnected | coinbase:connected | OAuth succeeded |
onDisconnected | coinbase:disconnected | Disconnected |
onSessionEnsured | coinbase:sessionEnsured | ensureSession() successfully validated / refreshed the token |
onSessionExpired | coinbase:sessionExpired | Token no longer valid |
onWithdrawalCompleted | coinbase:withdrawalCompleted | Withdraw finished |
onCooldownChanged | coinbase:cooldownChanged → CoinbaseCooldown | Cooldown begin / tick / end |
onPopupOpenChanged | via oauth:popupOpenChanged | Login popup open/close |
onOAuthError | via oauth:error | Popup blocked / closed / auth error |
Each returns an unsubscribe function. You can also use client.on('coinbase:…') — see Events (Core).
Example
ts
const offs = [
client.coinbase.onConnected(() => {
/* show balances */
}),
client.coinbase.onDisconnected(() => {
/* show connect */
}),
client.coinbase.onSessionExpired(() => {
/* reconnect */
}),
client.coinbase.onWithdrawalCompleted(() => {
/* success screen */
}),
client.coinbase.onCooldownChanged(({ isInCooldown, remainingMs }) => {
/* Start button countdown — or use getCooldown() snapshots */
}),
client.coinbase.onOAuthError(({ error }) => {
/* popup blocked / closed */
}),
];
// later
offs.forEach(off => off());Related
- Cooldown for Start-button state
- Connection for connect / ensureSession
- Errors for mapping failures to UI