Unit ID
3MWHs5JamZafE08UxSNBLvYbThSSDjhS07hul0+jVMo=
Received
24.06.2020 09:21:56
Confirmation delay (full node)
16 minutes 29 seconds
Confirmation delay (light node)
24 minutes 37 seconds
Messages
Definition
Definition: [ "autonomous agent", { "bounce_fees": { "base": 10000 }, "init": "{ $type = trigger.data.type; if(!exists($type)){ bounce("'type' required"); } $owner = params.owner; $asset = params.asset; $goal = params.goal; $days = params.days; $unit = params.unit; $start_timestamp = params.timestamp; $balance = var['balance'] OTHERWISE 0; }", "messages": { "cases": [ { "if": "{$type == 'addReward'}", "init": "{ if($owner != trigger.address){ bounce("you are not admin"); } $unit_data = unit[$unit].messages[[.app='data']].payload; $amount = trigger.data.amount; if(exists($unit_data['reward_' || $amount]) OR exists(var['reward_' || $amount])){ bounce('reward already exists'); } }", "messages": [ { "app": "state", "state": "{ var['reward_' || $amount] = 1; response['result'] = 'new_reward:' || $amount; }" } ] }, { "if": "{$type == 'buy'}", "init": "{ $amount = trigger.output[[asset=$asset]]; if(!exists($amount)){ if(exists(var['O6H6ZIFI57X3PLTYHOCVYPP5A553CYFQ']['a2s_' || $asset])) { $name = var['O6H6ZIFI57X3PLTYHOCVYPP5A553CYFQ']['a2s_' || $asset]; } else { $name = $asset; } bounce("Donations can only occur in " || $name); } $unit_data = unit[$unit].messages[[.app='data']].payload; $unit_reward = $unit_data['reward_' || $amount]; $local_reward = var['reward_' || $amount]; $finish_timestamp = (86400 * $days) + $start_timestamp; if(timestamp > $finish_timestamp){ bounce("project finished"); } }", "messages": [ { "app": "state", "state": "{ if(!exists($unit_reward) AND !exists($local_reward)){ response['result'] = 'gratuitous donation'; } else { response['result'] = 'reward_amount'; } var['balance'] += $amount; var['amount_' || trigger.address] += $amount; response['amount'] = $amount; }" } ] }, { "if": "{$type == 'withdraw'}", "init": "{ if($owner != trigger.address){ bounce("you are not admin"); } if($balance < $goal){ bounce("goal not reached"); } $withdrawn = var['withdrawn'] OTHERWISE 0; if($balance - $withdrawn <= 0){ bounce('not enough money'); } }", "messages": [ { "app": "payment", "payload": { "asset": "{$asset}", "outputs": [ { "address": "{trigger.address}", "amount": "{$balance - $withdrawn}" } ] } }, { "app": "state", "state": "{ var['withdrawn'] += $balance - $withdrawn; }" } ] }, { "if": "{$type == 'refund'}", "init": "{ $finish_timestamp = (86400 * $days) + $start_timestamp; if(timestamp < $finish_timestamp){ bounce("project didn't finish"); } if($balance >= $goal){ bounce("goal achieved"); } $peer_amount = var['amount_' || trigger.address] OTHERWISE 0; if($peer_amount > 0){ bounce("I do not have your money"); } }", "messages": [ { "app": "payment", "payload": { "asset": "{$asset}", "outputs": [ { "address": "{trigger.address}", "amount": "{$peer_amount}" } ] } }, { "app": "state", "state": "{ var['amount_' || trigger.address] = false; response['result'] = 'done'; }" } ] } ] } } ]
Technical information
Fees:
3,336 bytes
(352 headers, 2984 payload)
Level:5626066
Witnessed level:5626057
Main chain index:5482825
Latest included mc index:5482824
Status:stable/confirmed/final