VQLTYAYYBHZSI2KJQV2R5V756QVEYUYS
[
"autonomous agent",
{
"bounce_fees": {
"base": 10000
},
"getters": "{
$get_pubkey = () => {
$unit = var['pubkey_unit'];
unit[$unit].messages[[.app='data']][0].payload.pubkey
};
}",
"init": "{
$vrf = 'IFCSZYF6SLPC7IYNEIDEHMI6SEVDJOFM';
$vrf_registry = 'F3QL3P6N4V7JGQB33ZVHFWMPPV2W2LPZ';
$pubkey_unit = var['pubkey_unit'];
$top_result = var['top_result'] OTHERWISE 0;
$top_addresses = var['top_addresses'] OTHERWISE {};
}",
"messages": {
"cases": [
{
"if": "{trigger.data.set_pubkey_unit}",
"messages": [
{
"app": "state",
"state": "{
$pk_unit = var[$vrf_registry]['pk_' || $vrf];
var['pubkey_unit'] = $pk_unit;
response['result'] = 'pubkey unit added';
}"
}
]
},
{
"if": "{trigger.data.jump}",
"messages": [
{
"app": "payment",
"payload": {
"asset": "base",
"outputs": [
{
"address": "{$vrf}",
"amount": "{1000000}"
},
{
"address": "{trigger.address}",
"amount": "{trigger.output[[asset=base]] - 1010000}"
}
]
}
},
{
"app": "state",
"state": "{
if (trigger.output[[asset=base]] < 1010000) {
bounce('Min amount: ' || 1010000 || 'bytes');
}
var['rid_' || response_unit] = trigger.address;
response['result'] = 'Random requested';
}"
}
]
},
{
"if": "{trigger.data.id AND trigger.data.proof}",
"messages": [
{
"app": "state",
"state": "{
$id = trigger.data.id;
$proof = trigger.data.proof;
$address = var['rid_' || $id];
if (!exists($address)) {
bounce('Random request not found');
}
if (!vrf_verify($id, $proof, $get_pubkey())) {
bounce('Not valid vrf');
}
$height = number_from_seed($proof, 10, 100000);
var['user_' || $address] = $height;
if ($height == $top_result) {
if (!$top_addresses[$address]) {
$top_addresses[$address] = 1;
}
} else if ($height > $top_addresses) {
$top_addresses = {};
$top_addresses[$address] = 1;
var['top_result'] = $height;
} else if($top_addresses[$address]) {
$top_addresses[$address] = false;
}
var['top_addresses'] = $top_addresses;
response['result'] = 'The user' || $address || ' jumped to' || $height;
}"
}
]
}
]
}
}
]
Show transactions in assets:
No transactions found, it may be worth changing the filter
Unit ID
Date
From
Direction
To
Amount