Commit Graph

29 Commits

Author SHA1 Message Date
conduition
8e337ccb8b allow the caller to choose player indexes 2024-03-20 19:33:17 +00:00
conduition
29c7a8a16b improve documentation 2024-03-20 01:43:59 +00:00
conduition
2e1ba446ba add test coverage for expiry outcomes 2024-03-19 15:06:32 +00:00
conduition
fc29bd27b6 reusable method to check if an outcome is valid 2024-03-18 00:32:24 +00:00
conduition
71334d99f9 event expiry is optional 2024-03-17 21:27:34 +00:00
conduition
3eb37c4d51 add serde serialization trait implementations
This allows players and the market maker to transact network sockets,
or other transport channels, by passing nonces, sigmaps, etc, back
and forth to each other. It also allows parties to store their signed
contract data locally, and enforce the contract even after a restart.
2024-03-16 20:27:09 +00:00
conduition
d2b545fa8c remove unused payout_value field from SplitSpendInfo 2024-03-16 01:17:23 +00:00
conduition
644bd160ff conceptually separate claimable win conditions from controlled win conditions 2024-03-16 01:16:56 +00:00
conduition
4b380c828b implement Clone on TicketedDLC (with documented stipulations) 2024-03-14 17:22:15 +00:00
conduition
873d7b406a fix duplicated comment 2024-03-10 16:57:57 +00:00
conduition
dbce9fc0d5 add OutcomeIndex alias for outcome indexes 2024-03-10 06:05:10 +00:00
conduition
296cfaae66 improve memory overhead by referring to players by index
We were using btrees indexed by players, which required each
btree to store the player in memory. This was inefficient.
Instead, we now index by usize, which is a player index in the
sorted set of players in ContractParameters.
2024-03-10 06:04:51 +00:00
conduition
050b1bda8a check for unregistered players 2024-03-09 16:28:26 +00:00
conduition
8d99ec6f6c perf: verify only signatures relevant to specific players
Each player only cares about the signatures which are needed
to enforce outcomes in which they receive money. Other outcomes
are entirely optional. The market maker must verify all signatures.
2024-03-09 02:10:23 +00:00
conduition
b8ad44c357 represent finished contract state as separate struct 2024-03-09 02:08:18 +00:00
conduition
042754bfd8 add validation for contract parameters 2024-03-08 06:10:14 +00:00
conduition
423da8f486 fix misspelling of EventAnnouncement 2024-03-06 22:27:00 +00:00
conduition
482521a1e9 add second round of state machine for finalizing and verifying signatures
This adds additional states to the SigningSession state machine
which encapsulate the 2nd round of signing, and the final state
after signing is completed. Once all signatures have been received,
the Ticketed DLC is active and enforceable. Players can begin
buying ticket preimages from the market maker.
2024-03-06 00:17:43 +00:00
conduition
595c930b85 initial work on high-level state machine for musig signing
This is my first go at a higher level API which signers will
use to construct and sign the numerous transactions needed
for executing a Ticketed DLC. It revolves around the
SigningSession struct type, which has an API constrainted by
its current state.
2024-03-02 02:31:47 +00:00
conduition
74bb611851 reusable method for computing funding output 2024-02-29 05:23:55 +00:00
conduition
cd681d0874 add expiry outcome branch 2024-02-21 06:19:06 +00:00
conduition
692644a74b avoid using Into<Scalar> in internal methods 2024-02-18 21:45:46 +00:00
conduition
741a64085d reusable shared fee computation 2024-02-18 21:18:07 +00:00
conduition
e3180febc6 move ContractParameters to contract/mod.rs 2024-02-18 20:14:08 +00:00
conduition
ef52fa3870 unilateral spending paths should have witness-adding methods 2024-02-18 17:53:12 +00:00
conduition
0bd6bf0012 provide prevout with TxIn 2024-02-18 17:19:45 +00:00
conduition
6bfd1e60b3 add sighash methods for sweep transactions 2024-02-18 17:11:20 +00:00
conduition
73c8db227d documentation improvements 2024-02-18 17:00:36 +00:00
conduition
bc606be476 refactor into multifile layout using functions 2024-02-16 03:52:16 +00:00