Skip to content

Instantly share code, notes, and snippets.

@pleiades-s
Forked from thtl1999/bet.vy
Created January 12, 2020 02:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pleiades-s/011a4a01a76241c3c374990e0c2c1e28 to your computer and use it in GitHub Desktop.
Save pleiades-s/011a4a01a76241c3c374990e0c2c1e28 to your computer and use it in GitHub Desktop.
vyper betting app
a_addr: public(address)
b_addr: public(address)
oracle_addr: public(address)
bet_price: public(wei_value)
a_stake: public(wei_value)
b_stake: public(wei_value)
@public
def __init__(user_a: address, user_b: address, oracle: address, require_wei: wei_value):
self.a_addr = user_a
self.b_addr = user_b
self.oracle_addr = oracle
self.bet_price = require_wei
self.a_stake = 0
self.b_stake = 0
@public
@payable
def __default__():
if (msg.sender == self.a_addr):
self.a_stake = self.a_stake + msg.value
if (msg.sender == self.b_addr):
self.b_stake = self.b_stake + msg.value
@private
def send_stake(winner: address):
send(winner, self.a_stake + self.b_stake)
self.a_stake = 0
self.b_stake = 0
@public
def execute_oracle(winner: address):
assert msg.sender == self.oracle_addr
if (self.bet_price <= self.a_stake and self.bet_price <= self.b_stake):
if (winner == self.a_addr):
self.send_stake(winner)
if (winner == self.b_addr):
self.send_stake(winner)
return
if (self.bet_price <= self.a_stake):
self.send_stake(self.a_addr)
if (self.bet_price <= self.b_stake):
self.send_stake(self.b_addr)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment