Unit ID
qGdbFGRX1o8b69d9RyUzvLn4+lkIHKRnrpneYxa+BEE=
Received
06.09.2019 08:36:05
Confirmation delay (full node)
4 minutes 33 seconds
Confirmation delay (light node)
6 minutes 3 seconds
Messages
Definition
Definition: [ "autonomous agent", { "bounce_fees": { "base": 10000 }, "init": "{ $OWNER = "O7NYCFUL5XIJTYE3O4MKGMGMTN6ATQAJ"; $DANAA = var["BH5DTBSUYTT2JRB4P3CRGUTGVWSJQHH7"]["DANAA_address"]; // for asset short names; $i = trigger.data; }", "messages": { "cases": [ { "if": "{ !!$i.help }", "init": "{ $aa = trigger.address; $non_bytes = trigger.output[[asset!=base]]; $bytes = trigger.output[[asset=base]]; $reward_asset = $non_bytes.asset != "none" ? $non_bytes.asset : "base"; $reward = $non_bytes.amount otherwise $bytes.amount otherwise 0; $asset_nice_name = var[$DANAA][$reward_asset||"_shortName"] otherwise $reward_asset; $time = $i.time otherwise !!$i.delay ? timestamp : false; // message creation $m_reward = "Get "||$reward||" "||$asset_nice_name||" if you are first to reply to me"; $m_time = (!!$time) ? " at "||timestamp_to_string($time, 'datetime') : ""; $m_delay = (!!$i.delay) ? " (delay max = "||$i.delay ||")" : ""; // identify helper if (!$i.helper) { $good_guys_count = var["good_guys_count"] otherwise 0; if ($good_guys_count == 0 ) bounce ("No 'helper' registered !"); $helper = var["good_guys_"||number_from_seed(timestamp,1,$good_guys_count)]; $key = $aa; } else { $helper = $i.helper; $key = !!$i.private ? sha256($i.helper||"_"||$aa) : $aa; } }", "messages": [ { "app": "data", "payload": { "message": "{ $m_reward||$m_time||$m_delay||$asset_nice_name||" with data: 'aa' = < helped_aa >" }", "me": "{this_address}", "helped_aa": "{$aa}" } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $helper }", "amount": "{ 1000 }" } ] } }, { "app": "state", "state": "{ var[$key||"_reward"] = $reward; var[$key||"_asset"] = $reward_asset; var[$key||"_time"] = $time; var[$key||"_delay"] = $i.delay; response['message'] = $helper||" has been asked for help ^^"; }" } ] }, { "if": "{ !!$i.aa }", "init": "{ $helper = trigger.address; $aa = $i.aa; // been overtaken? $key = !!var[$aa||"_reward"] ? $aa : sha256($helper||"_"||$aa); if (!var[$key||"_reward"]) bounce ("Reward not available, you have been overtaken or you specified the wrong 'aa'!"); // too early ? if (!!var[$key||"_time"]) if (var[$key||"_time"] > timestamp) bounce ("Too early, try in "||(var[$key||"_time"] - timestamp)); // too late ? if (!!var[$key||"_delay"]) if (var[$key||"_time"] + var[$key||"_delay"] > timestamp) bounce ("Too late, sorry !"); // prepare rewards ! $bytes = trigger.output[[asset=base]].amount - 2000; // to post this TX and to give 1000 to AA $reward_in_bytes = var[$key||"_asset"] == "base" ? var[$key||"_reward"] + $bytes: $bytes; $reward_in_other = var[$key||"_asset"] != "base" ? var[$key||"_reward"] : false; }", "messages": [ { "app": "data", "payload": { "help_from": "{ $helper }" } }, { "if": "{ !!$reward_in_other }", "app": "payment", "payload": { "asset": "{ var[$key||"_asset"] }", "outputs": [ { "address": "{ $helper }", "amount": "{ $reward_in_other }" } ] } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $helper }", "amount": "{ $reward_in_bytes }" }, { "address": "{ $aa }", "amount": "{ 1000 }" } ] } }, { "app": "state", "state": "{ var[$key||"_reward"] = false; var[$key||"_asset"] = false; var[$key||"_time"] = false; var[$key||"_delay"] = false; response['message'] = trigger.address||" has been rewarded ^^"; }" } ] }, { "if": "{ $i.subscribe}", "init": "{ $helper = trigger.address; if (var[$helper]) bounce ("You are motivated, but once is enough!"); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $helper }", "amount": "{ $bytes.amount - 1000 }" } ] } }, { "app": "state", "state": "{ var["good_guys_count"] += 1; var[$helper] = var["good_guys_count"]; var["good_guys_"||var["good_guys_count"]] = $helper; response['message'] = "Subscribed"; }" } ] }, { "if": "{ $i.unsubscribe }", "init": "{ $helper = trigger.address; if (!(var[$helper])) bounce ("You were not subscribed at the first place !"); }", "messages": [ { "app": "state", "state": "{ var["good_guys_count"] -=1; $good_guy_number = var[$helper]; var["good_guys_"||$good_guy_number] = false; var[$helper] = false; response['message'] = "Unsubscribed"; }" } ] }, { "messages": [ { "app": "state", "state": "{ bounce ("Input not expected, please read the doc at https://github.com/pascalSAINVITU/THAANKS"); }" } ] } ] } } ]
Technical information
Fees:
4,390 bytes
(353 headers, 4037 payload)
Level:1048685
Witnessed level:1048678
Main chain index:1047458
Latest included mc index:1047457
Status:stable/confirmed/final