Unit ID
XI0UcKJZJBe0u0ANoYXkXZoIOJZO/oV5pn74HES8PJ4=
Received
21.05.2020 08:39:01
Confirmation delay (full node)
27 minutes 8 seconds
Confirmation delay (light node)
40 minutes 21 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $timeout = params.timeout OTHERWISE 5; }", "messages": { "cases": [ { "if": "{ $define_home_winner = trigger.data.define_home_winner AND !var['home_winner_asset']; $define_away_winner = trigger.data.define_away_winner AND !var['away_winner_asset']; $define_draw = trigger.data.define_draw AND !var['draw_asset']; $define_canceled = trigger.data.define_canceled AND !var['canceled_asset']; if ($define_home_winner + $define_away_winner + $define_draw + $define_canceled > 1) bounce("Can't define more than 1 asset at the same time!"); if($define_draw AND params.no_draw) bounce("The fixture cannot have draw result"); $define_home_winner OR $define_away_winner OR $define_draw OR $define_canceled }", "init": "{ if (typeof(params.championship) != 'string') bounce("championship parameter must be a string"); if (typeof(params.home_team) != 'string') bounce("home_team parameter must be a string"); if (typeof(params.away_team) != 'string') bounce("away_team parameter must be a string"); if (contains(params.championship, '_') OR contains(params.championship, '|')) bounce("championship parameter cannot contain '|' or '_'"); if (contains(params.home_team, '_') OR contains(params.home_team, '|')) bounce("home_team parameter cannot contain '|' or '_'"); if (contains(params.away_team, '_') OR contains(params.away_team, '|')) bounce("away_team parameter cannot contain '|' or '_'"); if (!parse_date(params.expiry_date)) bounce("expiry_date parameter is not a valid date"); if ($timeout < 1) bounce("timeout must be at least 1 day"); $symbol_left_part = params.championship || '_' || params.home_team || '_' || params.away_team || '_' || params.expiry_date; if (!is_valid_address(params.oracle)) bounce("oracle parameter is not a valid address"); if ($define_home_winner){ $symbol_right_part = params.home_team; $asset = 'home_winner_asset'; } if ($define_away_winner){ $symbol_right_part = params.away_team; $asset = 'away_winner_asset'; } if ($define_draw){ $symbol_right_part = 'draw'; $asset = 'draw_asset'; } if ($define_canceled){ $symbol_right_part = 'canceled'; $asset = 'canceled_asset'; } $symbol = $symbol_left_part || '=' || $symbol_right_part; if (length($symbol) > 50) bounce("resulting symbol length cannot be superior to 50"); }", "messages": [ { "app": "asset", "payload": { "is_private": false, "is_transferrable": true, "auto_destroy": false, "fixed_denominations": false, "issued_by_definer_only": true, "cosigned_by_definer": false, "spender_attested": false } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "5J5KVHIOKLRKOQOAKOOCOGNZPBKFKWDB", "amount": "{length($asset_symbol)*2 + 268}" } ] } }, { "app": "data", "payload": { "oracle": "{params.oracle}", "asset_symbol": "{$symbol}" } }, { "app": "state", "state": "{ var[$asset] = response_unit; response[$asset] = response_unit; }" } ] }, { "if": "{trigger.output[[asset=base]] >= 1e5 AND var['home_winner_asset'] AND var['away_winner_asset'] AND (var['draw_asset'] OR params.no_draw)}", "messages": [ { "app": "payment", "payload": { "asset": "{var['home_winner_asset']}", "outputs": [ { "address": "{trigger.address}", "amount": "{ trigger.output[[asset=base]] }" } ] } }, { "app": "payment", "payload": { "asset": "{var['away_winner_asset']}", "outputs": [ { "address": "{trigger.address}", "amount": "{ trigger.output[[asset=base]] }" } ] } }, { "if": "{!params.no_draw}", "app": "payment", "payload": { "asset": "{var['draw_asset']}", "outputs": [ { "address": "{trigger.address}", "amount": "{ trigger.output[[asset=base]] }" } ] } } ] }, { "if": "{trigger.output[[asset!=base]] > 1000 AND trigger.output[[asset!=base]].asset != 'ambiguous'}", "init": "{ $asset = trigger.output[[asset!=base]].asset; if ($asset != var['home_winner_asset'] AND $asset != var['away_winner_asset'] AND $asset != var['draw_asset'] AND $asset != var['canceled_asset']) bounce("foreign asset"); $amount = trigger.output[[asset!=base]]; $feedname = params.championship || '_' || params.home_team || '_' || params.away_team || '_' || params.expiry_date; $datafeed_value = data_feed[[oracles=params.oracle_address, feed_name=$feedname]]; if ($asset == var['home_winner_asset'] AND $datafeed_value != params.home_team) bounce("home team didn't win"); if ($asset == var['away_winner_asset'] AND $datafeed_value != params.away_team) bounce("away team didn't win"); if ($asset == var['draw_asset'] AND $datafeed_value != 'draw') bounce("there wasn't a draw"); if ($asset == var['canceled_asset']){ if ($datafeed_value AND $datafeed_value != 'canceled') bounce("there wasn't a cancelation or postponement"); if (timestamp < parse_date(params.expiry_date) + $timeout * 24 * 3600) bounce("timeout not reached yet"); } }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{trigger.address}", "amount": "{ $amount == balance[$asset] ? balance[base] : $amount}" } ] } } ] } ] } } ]
Technical information
Fees:
5,077 bytes
(353 headers, 4724 payload)
Level:1344526
Witnessed level:1344489
Main chain index:1339030
Latest included mc index:1339029
Status:stable/confirmed/final