[
"autonomous agent",
{
"init": "{
$my_address = 'DP5NGWPVIQY6X5CBMXQ3L57EMZFYKDGS';
}",
"messages": {
"cases": [
{
"if": "{trigger.data.update_all AND trigger.address == $my_address}",
"messages": [
{
"app": "state",
"state": "{
var['rate1'] = trigger.data.rate1;
var['rate2'] = trigger.data.rate2;
var['rate3'] = trigger.data.rate3;
response['message'] = 'set rates to ' || var['rate1'] ||', '|| var['rate2'] ||', ' || var['rate3'];
}"
}
]
},
{
"if": "{trigger.data.show_rate}",
"messages": [
{
"app": "state",
"state": "{
response['message'] = 'current rates ' || var['rate1'] ||', '|| var['rate2'] ||', ' || var['rate3'];
}"
}
]
},
{
"if": "{trigger.data.withdraw AND trigger.data.asset AND trigger.data.amount AND trigger.address == $my_address}",
"messages": [
{
"app": "payment",
"payload": {
"asset": "{trigger.data.asset}",
"outputs": [
{
"address": "{trigger.address}",
"amount": "{trigger.data.amount}"
}
]
}
}
]
},
{
"if": "{trigger.data.exchange_rate AND trigger.address == $my_address}",
"messages": [
{
"app": "state",
"state": "{ var['rate'] = trigger.data.exchange_rate; response['message'] = 'set exchange rate to '||var['rate']||' tokens/byte'; }"
}
]
},
{
"if": "{trigger.output[[asset=base]] > 100000}",
"init": "{ $bytes_amount = trigger.output[[asset=base]]; $asset_amount = round($bytes_amount * var['rate']); response['message'] = 'exchanged '||$bytes_amount||' bytes for '||$asset_amount||' asset.'; }",
"messages": [
{
"app": "payment",
"payload": {
"asset": "NmEwGLg6VsRNZKuEY3OgThNZUiwfA0ipRsUMblSmMHs=",
"outputs": [
{
"address": "{trigger.address}",
"amount": "{ $asset_amount }"
}
]
}
}
]
},
{
"messages": [
{
"app": "state",
"state": "{ response['message'] = 'accepted coins: '||trigger.output[[asset=base]]||' bytes and '||trigger.output[[asset='NmEwGLg6VsRNZKuEY3OgThNZUiwfA0ipRsUMblSmMHs=']]||' tokens.'; }"
}
]
}
]
}
}
]