feat(docker): add dev.sh with auto-funding and ATM app setup
- Add dev.sh script for managing regtest development environment - Implement cmd_fund to fund ATM app owner via Lightning.Pub API - Add --fund flag to cmd_up for automatic funding on startup - Update setup_atm_app to write VITE_APP_ID to machine .env - Fix Electron IPC to pass appId and extensionApiUrl to renderer - Restructure repo from nested lamassu-next/ to root The dev.sh script now supports: - ./dev.sh up --fund # Start regtest and auto-fund ATM - ./dev.sh fund # Fund existing ATM app - ./dev.sh status # Show environment status - ./dev.sh reset # Clean restart Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
30a2eb2199
commit
c98f126ba7
180 changed files with 2695 additions and 9587 deletions
50
apps/machine/electron/preload.ts
Normal file
50
apps/machine/electron/preload.ts
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/**
|
||||
* Electron Preload Script
|
||||
*
|
||||
* Exposes a secure API to the renderer process via contextBridge.
|
||||
* This is the only way for the Vue app to communicate with the main process.
|
||||
*/
|
||||
|
||||
import { contextBridge, ipcRenderer } from 'electron'
|
||||
|
||||
/**
|
||||
* Runtime configuration interface
|
||||
* These values are read from environment variables at runtime (not build time)
|
||||
*/
|
||||
export interface RuntimeConfig {
|
||||
relayUrl: string
|
||||
lightningPubPubkey: string
|
||||
lightningPubApiUrl: string
|
||||
extensionApiUrl: string
|
||||
atmPrivateKey: string
|
||||
adminToken: string
|
||||
appId: string
|
||||
machineModel: string
|
||||
fiatCode: string
|
||||
validatorDevice?: string
|
||||
dispenserDevice?: string
|
||||
cassettes?: string
|
||||
}
|
||||
|
||||
// Expose protected methods to renderer
|
||||
contextBridge.exposeInMainWorld('electronAPI', {
|
||||
// Get app version
|
||||
getVersion: (): Promise<string> => ipcRenderer.invoke('get-version'),
|
||||
|
||||
// Get runtime configuration (read from environment at runtime)
|
||||
getConfig: (): Promise<RuntimeConfig> => ipcRenderer.invoke('get-config'),
|
||||
|
||||
// Platform info
|
||||
platform: process.platform,
|
||||
})
|
||||
|
||||
// Type declaration for the exposed API
|
||||
declare global {
|
||||
interface Window {
|
||||
electronAPI: {
|
||||
getVersion: () => Promise<string>
|
||||
getConfig: () => Promise<RuntimeConfig>
|
||||
platform: NodeJS.Platform
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue