62 Commits

Author SHA1 Message Date
conduition
e80bec45e0 v0.0.4 v0.0.4 2024-03-16 20:27:41 +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
fd603387c4 list wallet directory, not loaded wallets 2024-03-16 17:10:50 +00:00
conduition
5a310f9c00 deps should use only minimal features required 2024-03-16 17:10:30 +00:00
conduition
5308509e54 fix lockfile 2024-03-16 17:10:09 +00:00
conduition
d5839e64be v0.0.3 v0.0.3 2024-03-16 05:38:50 +00:00
conduition
2e342b12b3 crate docs todo 2024-03-16 05:38:40 +00:00
conduition
94e9f5e26c do not publish images 2024-03-16 05:37:52 +00:00
conduition
9ca48a1995 v0.0.2 v0.0.2 2024-03-16 05:35:38 +00:00
conduition
61c4be2a68 add integration test using regtest
This test validates the basic spending paths are enforceable.
It covers the split TX, followed by three different resolutions
for each individual payout contract. We test to confirm:
- a player can claim winnings using their ticket preimage
- the market maker can reclaim winnings using the payout preimage
- the market maker can reclaim winnings after the timeout
2024-03-16 01:36:14 +00:00
conduition
b32bab6c14 fix missing imports and exports 2024-03-16 01:18:00 +00:00
conduition
69d614600d oracle attestations should be valid BIP340 signatures 2024-03-16 01:17:39 +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
e109800902 add additional quality-of-life getter methods on SignedContract 2024-03-16 01:16:18 +00:00
conduition
4b380c828b implement Clone on TicketedDLC (with documented stipulations) 2024-03-14 17:22:15 +00:00
conduition
e9096c1ef4 update some deps in the lockfile 2024-03-10 22:50:38 +00:00
conduition
14061d9f6b add into_signed_contract method on SigningSession 2024-03-10 17:06:45 +00:00
conduition
1680dab1cf minor docs changes 2024-03-10 17:06:08 +00:00
conduition
93a95b16ae add Eq and PartialEq to MarketMaker 2024-03-10 16:59:11 +00:00
conduition
873d7b406a fix duplicated comment 2024-03-10 16:57:57 +00:00
conduition
0f77acfb98 remove some unused fields in spend info structs 2024-03-10 16:56:21 +00:00
conduition
91caefb989 add cooperative split closing transaction signing
This allows the market maker to cooperatively close individual payout
contracts with specific winners, if some of an outcome's winners
cooperate but others do not.
2024-03-10 16:47:49 +00:00
conduition
87ed72eae2 remove unused outcome sellback spend path 2024-03-10 16:38:05 +00:00
conduition
50ecb1be9d sellback TX sequence can be whatever the market maker wishes 2024-03-10 16:37:34 +00:00
conduition
a34146cbdd add cooperative outcome-close transaction signing for market maker 2024-03-10 16:36:52 +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
6d9bd1529e the player secret key should be ephemeral 2024-03-10 04:09:56 +00:00
conduition
8be1b23f7e add methods to sign and execute individual-controlled spending paths
These methods allow players and the market maker to execute the final
stages of a Ticketed DLC, including the forceful sellback TX, forceful
win transaction, and forceful reclaim transactions.
2024-03-09 17:46:27 +00:00
conduition
e6e8a397d3 use deterministic signatures for solo signers 2024-03-09 17:44:06 +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
882e6c4a95 add methods to construct fully signed outcome/split/expiry transactions 2024-03-08 07:15:17 +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
6a39346f4b Remove irrelevant Debug and Clone implementations 2024-03-06 00:18:55 +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
d0940e0024 u32::MAX instead of arbitrary weight 2024-03-03 21:13:36 +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
5d2fdc809e funding script pubkey doesn't need to commit to an empty taproot 2024-02-29 05:23:18 +00:00
conduition
cd681d0874 add expiry outcome branch 2024-02-21 06:19:06 +00:00
conduition
1efc577244 update cargo.lock version 2024-02-21 03:27:04 +00:00
conduition
72a83322d8 v0.0.1 v0.0.1 2024-02-19 19:36:54 +00:00
conduition
4d8ad3cc30 reduce backdrop logo size 2024-02-19 19:20:48 +00:00
conduition
ff25eb179d improve documentation 2024-02-19 19:15:40 +00:00
conduition
4c131e8606 add license and readme 2024-02-19 18:00:44 +00:00
conduition
692644a74b avoid using Into<Scalar> in internal methods 2024-02-18 21:45:46 +00:00