You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Updated TLVs to allow support for numeric outcome and multiple oracle DLCs
* Added threshold field to multi-oracle oracle_infos
* Responded to review
* Some more review
@@ -87,33 +97,130 @@ The following DLC-specific types are used throughout the specification. All type
87
97
88
98
### The `contract_info` Type
89
99
90
-
This type contains information about a contracts outcomes and their corresponding payouts. To save space, only one side's POV is included in this message as the other can be derived using `remote_payout = total_collateral - local_payout`.
100
+
This type contains information about a contract's outcomes, their corresponding payouts, and the oracles to be used.
91
101
92
102
#### Version 0 `contract_info`
93
103
94
-
1. type: 42768 (`contract_info_v0`)
104
+
1. type: 55342 (`contract_info_v0`)
95
105
2. data:
96
-
*[`bigsize`:`nb_outcomes`]
97
-
*[`sha256`:`outcome_1`]
98
-
*[`u64`:`outcome_1_local_payout`]
106
+
*[`u64`:`total_collateral`]
107
+
*[`contract_descriptor`:`contract_descriptor`]
108
+
*[`oracle_info`:`oracle_info`]
109
+
110
+
`total_collateral` is the Satoshi-denominated value of the sum of all party's collateral.
111
+
112
+
### The `contract_descriptor` Type
113
+
114
+
This type contains information about a contract's outcomes and their corresponding payouts.
115
+
116
+
To save space, only the offerer's payouts are included in this message as the accepter's can be derived using
This type represents an enumerated outcome contract.
102
131
103
-
This type of contract info is a simple enumeration of pairs of the hash of an outcome value with the corresponding payout for the local party.
132
+
#### Version 1 `contract_descriptor`
133
+
134
+
1. type: 42784 (`contract_descriptor_v1`)
135
+
2. data:
136
+
*[`u16`:`num_digits`]
137
+
*[`payout_function`:`payout_function`]
138
+
*[`rounding_intervals`:`rounding_intervals`]
139
+
140
+
This type represents a numeric outcome contract.
141
+
142
+
The type `payout_function` is defined [here](PayoutCurve.md#curve-serialization).
143
+
The type `rounding_intervals` is defined [here](NumericOutcome.md#rounding-interval-serialization).
104
144
105
145
### The `oracle_info` Type
106
146
107
-
This type contains information about the oracle(s) to be used in executing a DLC, and possibly the outcomes possible if these are not specified in the corresponding `contract_info`.
147
+
This type contains information about the oracles to be used in executing a DLC.
108
148
109
149
#### Version 0 `oracle_info`
110
150
111
151
1. type: 42770 (`oracle_info_v0`)
112
152
2. data:
113
-
*[`x_point`:`oracle_public_key`]
114
-
*[`x_point`:`oracle_nonce`]
153
+
*[`oracle_announcement`:`oracle_announcement`]
154
+
155
+
This type of oracle info is for single-oracle events.
0 commit comments