38 lines
891 B
TypeScript
38 lines
891 B
TypeScript
import { Electroview } from 'electrobun/view'
|
|
import type { RPC } from './rpc-schema'
|
|
export type {
|
|
MoneroBalance,
|
|
MoneroTxEntry,
|
|
MoneroBinaryStatus,
|
|
MoneroWalletStatus,
|
|
MoneroSubaddressEntry,
|
|
MoneroAccountEntry,
|
|
MoneroSendResult,
|
|
MoneroTransferDetails,
|
|
XrpWalletInfo,
|
|
XrpBalance,
|
|
XrpTxEntry,
|
|
XrpTxDetails,
|
|
XrpSendResult,
|
|
} from './rpc-schema'
|
|
|
|
const rpc = Electroview.defineRPC<RPC>({
|
|
maxRequestTime: 120000,
|
|
handlers: {
|
|
requests: {},
|
|
messages: {},
|
|
},
|
|
})
|
|
export const electrobun = new Electroview({ rpc })
|
|
|
|
export async function frontendLog(message: string) {
|
|
try {
|
|
await electrobun.rpc?.request.logToFile({ message: `[FE] ${message}` })
|
|
} catch {}
|
|
}
|
|
|
|
export async function frontendLogError(message: string, err?: unknown) {
|
|
const detail = err instanceof Error ? err.stack || err.message : String(err ?? '')
|
|
await frontendLog(`[ERROR] ${message} — ${detail}`)
|
|
}
|