[
"autonomous agent",
{
"init": "{
$fee = 4000;
$addr = trigger.address;
$inp = trigger.output[[asset=base]];
$time_btw_draw = 3600;
$buyin = 10000;
}",
"messages": {
"cases": [
{
"if": "{
var['Last draw'] AND var[$addr||var['Last draw']] AND timestamp > (var['Last draw']+$time_btw_draw)
}",
"messages": [
{
"init": "{
$number = var['Number'];
$num1 = data_feed[[oracles='F4KHJUCLJKY4JV7M5F754LAJX4EB7M4N', feed_name='TOTAL_CAP']];
$num2 = data_feed[[oracles='F4KHJUCLJKY4JV7M5F754LAJX4EB7M4N', feed_name='GBYTE_USD']];
$num3 = $num1 + $num2 + var['Last draw'];
$last_lucky = number_from_seed($num3||mc_unit,var['Number']-1);
$winner_addr = var[$last_lucky||var['Last draw']];
$winner_amount = var['Total pot']-$buyin-$fee;
$trigger_amount = $buyin+$inp;
}",
"app": "payment",
"payload": {
"asset": "base",
"outputs": [
{
"if": "{$winner_amount > 0}",
"address": "{$winner_addr}",
"amount": "{$winner_amount}"
},
{
"if": "{$trigger_amount > 0}",
"address": "{$addr}",
"amount": "{$trigger_amount}"
}
]
}
},
{
"app": "state",
"state": "{
var['Last draw'] = false;
var['Total pot']= 0;
var['Number'] = 0;
response['message'] = 'You triggered draw calculation!';
}"
}
]
},
{
"if": "{
$inp == $buyin AND (!var['Last draw'] OR timestamp < (var['Last draw']+$time_btw_draw))
}",
"messages": [
{
"app": "state",
"state": "{
if(!var['Last draw']){
var['Number'] = 0;
var['Last draw'] = timestamp;
}
$num = var['Number'];
var[$num||var['Last draw']] = $addr;
var[$addr||var['Last draw']] = true;
var['Number'] += 1;
var['Total pot'] += $inp;
response['message'] = 'you bought one participation, your number: '|| $num ;
}"
}
]
},
{
"messages": [
{
"app": "payment",
"payload": {
"asset": "base",
"outputs": [
{
"address": "{$addr}",
"amount": "{$inp-1000}"
}
]
}
}
]
}
]
}
}
]