Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upd from main #305

Merged
merged 12 commits into from
Nov 1, 2024
13 changes: 5 additions & 8 deletions pages/contracts/live-client-core.mdx
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
import { PageHeadline, Callout } from 'components'
import { Callout } from 'components'

<PageHeadline
title="ClientCore (Live betting)"
subTitle="A Register Engine for the betting"
/>
# LiveCore

"LiveCore" contract is designed to accept bets on sport events in real time and reserve payouts for them.
LiveCore contract is designed to accept bets on sport events in real time and reserve payouts for them.
Bets are made according to the parameters (event, outcome, odds, amount) approved and signed by the bettor and by the Azuro backend.
Each LiveCore bet is "AzuroBet token" as in PrematchCore. The contract does not calculate odds,
it only checks the provided parameters and signatures.

"LiveCore" contract checks the states of the events: creates new ones and resolves finished events. When the event ends
LiveCore contract checks the states of the events: creates new ones and resolves finished events. When the event ends
at a certain "resolve time", bets made later than the "resolve time" are possible - these bets are considered canceled
and can be returned back to the players (players take back "LP.withdrawPayout()" canceled bets by themselves).

"LiveCore" is contract similar to PrematchCore does not store bet amounts and payments, it uses the “LP” contract:
LiveCore is contract similar to PrematchCore does not store bet amounts and payments, it uses the “LP” contract:
sends bets and reserves the amount for payments there.

A snapshot saving approach is used for canceled bets. In this way, bets are saved with time stamps and if bets are placed
Expand Down
9 changes: 3 additions & 6 deletions pages/contracts/live-host-core.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import { PageHeadline, Callout } from 'components'
import { Callout } from 'components'

<PageHeadline
title="HostCore (Live betting)"
subTitle="A Register Engine for the betting"
/>
# HostCore

The contract is responsible for registering and maintaining the life cycle of games and game conditions, and registers game conditions odds. Used to provide game information for various offchain interfaces.

<Callout type="warning">
This contract is at early development/test phase
</Callout>
</Callout>
7 changes: 2 additions & 5 deletions pages/contracts/live-relayer.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { PageHeadline, Callout } from 'components'
import { Callout } from 'components'

<PageHeadline
title="ClientCore (Live betting)"
subTitle="A Register Engine for the betting"
/>
# Relayer

"Relayer" contract is intended for execution of prepared and signed (by bettor and by oracle) bets, and payment of relayer's fee.
Any "relayer" can send prepared bets using the `Relayer.betFor()` method.
Expand Down
14 changes: 5 additions & 9 deletions pages/contracts/safe-oracle.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,21 @@ import { PageHeadline, Callout } from 'components'
This contract does not affect the logic of a Pool's contracts
</Callout>

The SafeOracle contract allows to create and resolve [Conditions](/knowledge-hub/how-azuro-works/components/conditions) on any
The SafeOracle contract allows data providers to create and resolve [Conditions](/knowledge-hub/how-azuro-works/components/conditions) on any
[PrematchCore](/contracts/prematch-core) contract, with an option for any user to dispute the result. If the result is
disputed or not provided within the specified period set at the time of Condition creation,
[Azuro DAO](/knowledge-hub/azur/azuro-dao) will provide the result.
[AzuroDAO](/knowledge-hub/azur/azuro-dao) will step in to resolve the Condition.

The SafeOracle's logic guarantees timely and accurate results for created Conditions or cancels them if the correct
result is impossible to determine. This eliminates the risk of fraud against bettors by the
[data provider](/knowledge-hub/how-azuro-works/protocol-actors/data-providers) and the possibility of their funds being locked due to the data
provider's failure to provide the result.

When creating a Condition through SafeOracle, the data provider places a fixed amount as collateral, which will be
returned to them if their result is timely and accurate. Otherwise, the collateral will be used as a reward for Azuro DAO
and optionally the disputant.
Each data provider will have a certain amount of fixed collateral placed to the protocol, depending on the amount of [Reinforcement](/knowledge-hub/how-azuro-works/components/reinforcement) that they intend to draw upon from the singleton LP at any one time. This collateral doubles as slashable assets in the case of false resolutions, if deemed by AzuroDAO.

A dispute can be opened by a disputant only within a limited timeframe after the data providers result for the Condition.
After this period, the result will be accepted and executed on the LP contract. When opening a dispute,
the disputant also places a collateral, which is half of the data provider's collateral. If the DAO determines that
the result is incorrect, the disputant will double their collateral; otherwise, they will lose their funds.
Each market's settlement will have a short delay post-resolution to allow for members of AzuroDAO to raise a dispute if necessary. Disputants will be required to place a small bond to deter griefing attacks to the protocol's dispute mechanism.

If the data provider's original resolution is determined to be accurate, the disputant will lose their bond to the data provider. Conversely, a portion of the data provider's collateral will be slashed and redistributed to the disputant, while the AzuroDAO resolves the market to the correct outcome and renounces the data provider's ownership of the associated [Pool](/knowledge-hub/how-azuro-works/components/pools ownership) (ejected from the set). Amount of slashed collateral will scale relative to the amount at risk of the disputed market.

### Reference

Expand Down
4 changes: 2 additions & 2 deletions pages/knowledge-hub/azur/azuro-dao.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { PageHeadline, Image, Callout } from 'components'

AzuroDAO is the protocol’s decentralized autonomous organization, with the mandate of safeguarding smart contract functions and ensuring the protocol’s continual going-concern. In contracts infrastructure, AzuroDAO is the owner of the Factory contract to which a part of the profit share is credited by LP after the completion of each Condition.

In the context of Azuro prediction markets, AzuroDAO plays a critical role of being the arbiter of last resort for disputed event resolutions, as well as to elect qualified data providers into the set. Decisions are congregated and made via onchain voting, where voting power corresponds the amount of staked AZUR and staking duration, specified under vsAZUR tokenomics.
In the context of Azuro prediction markets, AzuroDAO plays a critical role of being the arbiter of last resort for disputed event resolutions, as well as to elect qualified data providers into the set. Decisions are congregated and made via onchain voting, where voting power corresponds the amount of staked AZUR and staking duration, specified under [redacted].

As the project scales to steady-state, expect more features to be enshrined into the protocol. AzuroDAO will form the governance backbone of all these features — exact specifications to be disclosed closer to each feature’s release.

Expand All @@ -14,4 +14,4 @@ The Schelling point token of AzuroDAO will always be AZUR. There will not be ano

## Become a contributor

We are excited to welcome new contributors to Azuro. You can submit your application via this link → https://azuro.typeform.com/contribute
We are excited to welcome new contributors to Azuro. You can submit your application via this link → https://azuro.typeform.com/contribute
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ In contracts infrastructure, the Data Provider is represented as an address to w

Currently, the Data Provider is also responsible for resolving Conditions in good-faith, with AzuroDAO acting as the arbiter of last resort in case of disputes. For instance, Pinnacle (one of Azuro’s Data Providers) has published an extensive document outlining the general rules to which it intends to use as a basis to resolve markets (https://www.pinnacle.com/en/future/betting-rules).

Data Providers are required to put up collateral up to the total Reinforcement amount that they expect to use for the pricing of sell-side odds across involved prediction markets.
Data Providers are required to put up collateral up to the total [Reinforcement](/knowledge-hub/how-azuro-works/components/reinforcement) amount that they expect to use for the pricing of sell-side odds across all of their active markets.


<Callout type="feature">
Currently, data providers are still permissioned due to the critical nature of the role. Once the protocol reaches a certain level of maturity, we aim to open up the data provider role to the free market — permissionless data providers elected via AzuroDAO.
</Callout>
</Callout>