E' possibile creare una transazione con una condizione più elaborata? Con diverse somme e diversi indirizzi di output a seconda del verificarsi di una condizione?
Ad esempio: se la tale partita finisce con la vittoria della squadra di casa, invia 5 btc all'indirizzo 1,
se finisce con un pareggio invia 7 btc all'indirizzo 2,
se finisce con una vittoria della squadra ospite invia 10 btc all'indirizzo 3.
Oppure sarebbe necessario impostare 3 transazioni separate con condizione semplice, e in tal caso bisognerebbe avere 5+7+10 btc sull'indirizzo di partenza o è possibile sugli stessi fondi (ad esempio sempre sugli stessi 10 btc) creare più transazioni "partially-signed"?
Si' certo che e' possibile, nel video di presentazione del progetto spiego come, provo a riassumerlo brevemente qui per il caso "2 eventi distinti sullo stesso input" (ma e' piu' semplice a farsi che a dirsi):
- inizi la creazione di un nuovo evento in una ipotetica sessione (tab) che chiamiamo A
- procedi allo step 2 del wizard form, il servizio ha generato client-side 2 chiavi
- inizi in un'altra sessione B un nuovo evento, anche qui vai allo step 2
- copi da B la pubkey1, in A clicchi su "edit" (il pulsante con la matitina) del campo pubkey2 e incolli l'hash copiato in precedenza
- ripeti il passo precedente al contrario: copia da A la pubkey1 e la incolli in pubkey2 di B
- da A e/o B mandi fondi all'indirizzo multisig generato (che a questo punto, se tutto e' corretto, in A e B dovrebbe coincidere)
- procedi ora indipendentemente in A e B creando le 2 diverse transazioni (su 2 eventi distinti, se lo fai sullo stesso avra' effetto solo la transazione dell'evento verificato per primo)
La procedura non e' esattamente intuitiva e funziona solo con un massimo di 2 transazioni distinte, sto lavorando per rendere il tutto molto piu' semplice oltre che generico (N transazioni distinte).
Quello che si sta facendo e', proprio come supponevi tu, quello di creare diverse "partially-signed" txns che spendano gli stessi input. L'unica transazione valida sara' quella che per prima otterra' la seconda firma (+broadcasting).