GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - BitPolito/splitsats

BranchesTags
Open more actions menu

Latest commit

 

History

12 Commits
12 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
.idea
.idea
 
 
api
api
 
 
docs
docs
 
 
public
public
 
 
server
server
 
 
src
src
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
README.md
README.md
 
 
index.html
index.html
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
vercel.json
vercel.json
 
 
vite.config.js
vite.config.js
 
 

Repository files navigation

SplitSats ⚡₿

Spese condivise su Nostr. Pagamenti in Bitcoin. Zero server.

Stack

  • Auth — Nostr NIP-07 (Alby / nos2x)
  • Dati — Relay Nostr pubblici (kind:9000, kind:30001)
  • Pagamenti — Bitcoin Lightning via WebLN + LNURL-pay
  • Frontend — React + Vite
  • State — Zustand + localStorage (cache)

Setup locale

npm install
npm run dev

Per verificare le regole dei saldi prima di una PR:

npm test
npm run build

Apri http://localhost:5173 con l'estensione Alby installata.

Deploy su Vercel

npm run build
vercel --prod

Oppure connetti il repo su vercel.com → deploy automatico ad ogni push.

Struttura

src/
├── App.jsx              # Root + routing
├── store/index.js       # Zustand store (auth, groups, expenses)
├── lib/
│   ├── nostr.js         # publishEvent, Nostr subscriptions
│   ├── relay-pool.js    # NIP-20 ACK, retry on reconnect, subscriptions
│   ├── lightning.js     # WebLN, LNURL-pay
│   ├── balances.js      # Calcolo e semplificazione debiti
│   ├── storage.js       # localStorage cache
│   └── constants.js     # Relay list, event kinds
├── views/               # Schermate principali
└── components/          # UI primitives + modals

Conferma pagamenti

Le richieste di pagamento (anche WebLN) rimangono in attesa finché il destinatario non firma una conferma Nostr. Una risposta WebLN da sola non prova la ricezione. I vecchi pagamenti non confermati non vengono più sottratti ai saldi: verifica la migrazione prima del deploy. Dettagli: docs/PAYMENT-CONFIRMATION.md.

Affidabilità della pubblicazione

La pubblicazione degli eventi attende un ACK OK da almeno un relay Nostr. In assenza di ACK entro 12 secondi l'esito è incerto, quindi bisogna controllare il gruppo prima di riprovare. Non inviare nuovamente satoshi solo perché la pubblicazione su Nostr non è stata confermata. Dettagli: docs/RELAY-PUBLICATION.md.

Nostr event kinds usati

Kind Uso
0 Profilo utente (NIP-01)
9000 Spesa
9001 Dichiarazione di pagamento (in attesa)
9002 Conferma del destinatario
30001 Definizione gruppo

About

No description, website, or topics provided.

Resources

Readme
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.