Unit ID
Z2/4rEL4nCxwXOQt+PiCrvxY0x6Q7tjBP/lOwAqSX4w=
Received
21.09.2019 09:47:13
Confirmation delay (full node)
2 minutes 43 seconds
Confirmation delay (light node)
4 minutes 57 seconds
Messages
Definition
Definition: [ "autonomous agent", { "bounce_fees": { "base": 10000 }, "init": "{ $BOUNCE_FEE = 10000; $TYPICAL_FEE = 1300; $REIMBURSEMENT = $BOUNCE_FEE - $TYPICAL_FEE; }", "messages": { "cases": [ { "if": "{ trigger.data.seller }", "init": "{ $seller = trigger.address; $start_price = trigger.data.start_price otherwise bounce ("start price is missing"); $lowest_price = trigger.data.lowest_price otherwise bounce ("lowest price is missing"); $time_steps = trigger.data.time_steps otherwise bounce ("time steps missing"); $price_steps = trigger.data.price_steps otherwise bounce ("price steps missing"); $product_description = trigger.data.product_description otherwise bounce ("product description is missing"); $product_url = trigger.data.product_url; $auction_status = 'running'; $reference = sha256($seller || $start_price || $lowest_price || $time_steps || $price_steps || $product_description || $auction_status || timestamp); }", "messages": [ { "app": "state", "state": "{ var['auction.'||$reference||'.timestamp'] = timestamp; var['auction.'||$reference||'.seller'] = $seller; var['auction.'||$reference||'.start_price'] = $start_price; var['auction.'||$reference||'.lowest_price'] = $lowest_price; var['auction.'||$reference||'.time_steps'] = $time_steps; var['auction.'||$reference||'.price_steps'] = $price_steps; var['auction.'||$reference||'.product_description'] = $product_description; //var['auction.'||$reference||'.product_url'] = $product_url; var['auction.'||$reference||'.start_time'] = $start_time; var['auction.'||$reference||'.end_time'] = $end_time; var['auction.'||$reference||'.auction_status'] = $auction_status; response['reference'] = $reference; response['status'] = $auction_status; }" } ] }, { "if": "{ trigger.data.buyer }", "init": "{ $reference = trigger.data.reference; $buyer = trigger.address; $bid = trigger.output[[asset = base]]; $start_price = var['auction.'||$reference||'.start_price']; $timestamp_saved = var['auction.'||$reference||'.timestamp']; $time_steps = var['auction.'||$reference||'.time_steps']; $price_steps = var['auction.'||$reference||'.price_steps']; $lowest_price = var['auction.'||$reference||'.lowest_price']; $price_now = $start_price-(round((timestamp - $timestamp_saved)/$time_steps) * $price_steps); $PRICE = ($price_now< $lowest_price ? $lowest_price : $price_now); }", "messages": { "cases": [ { "if": "{ $bid > $price_now AND var['auction.'||$reference||'.auction_status'] == 'running'}", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{trigger.address}", "amount": "{$bid-$PRICE-$BOUNCE_FEE}" } ] } }, { "app": "state", "state": "{ var['auction.'||$reference||'.bid'] = $bid; var['auction.'||$reference||'.buyer'] = $buyer; var['auction.'||$reference||'.auction_status'] = 'holding'; response['message'] = 'Congratulations, you have won the auction'; response['payment'] = 'You have paid more than neccessary. We have reimbursed the exceeding amount!'; }" } ] }, { "if": "{ $bid < $price_now AND var['auction.'||$reference||'.auction_status'] == 'running'}", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{trigger.address}", "amount": "{$bid-$BOUNCE_FEE}" }, { "address": "{trigger.address}", "amount": "{$REIMBURSEMENT}" } ] } }, { "app": "state", "state": "{ response['message'] = 'Sorry, the amount is too low. We have reimbursed your payment minus transaction fees. Please bid again and pay the right amount.'; }" } ] }, { "if": "{ $bid == $price_now AND var['auction.'||$reference||'.auction_status'] == 'running'}", "messages": [ { "app": "state", "state": "{ var['auction.'||$reference||'.bid'] = $bid; var['auction.'||$reference||'.buyer'] = $buyer; var['auction.'||$reference||'.auction_status'] = 'holding'; response['reference2'] = $reference2; response['message'] = 'Congratulations, you have won the auction'; }" } ] } ] } }, { "if": "{trigger.address == var['auction.'||trigger.data.reference||'.buyer'] AND trigger.data.buyer_data_confirm AND var['auction.'||trigger.data.reference||'.auction_status'] == 'holding'}", "init": "{ $reference = trigger.data.reference; $buyer = trigger.address; }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$buyer}", "amount": "{$REIMBURSEMENT}" } ] } }, { "app": "state", "state": "{ var['auction.'||$reference||'.auction_status'] = 'buyer_data_confirm'; response['message'] = 'Thank you for confirming that you have sent your data to the seller!'; }" } ] }, { "if": "{trigger.address == var['auction.'||trigger.data.reference||'.buyer'] AND trigger.data.goods_receipt AND var['auction.'||trigger.data.reference||'.auction_status'] == 'buyer_data_confirm'}", "init": "{ $reference = trigger.data.reference; $seller = var['auction.'||trigger.data.reference||'.seller']; $comment = trigger.data.comment; $voting = trigger.data.voting; //1-5 $comment_reference = sha256($reference || $seller || timestamp); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{var['auction.'||$reference||'.seller']}", "amount": "{var['auction.'||$reference||'.bid']}" } ] } }, { "app": "state", "state": "{ var['auction.'||$reference||'.auction_status'] = 'goods_receipt'; var['seller.'||$seller||'.comment.'||$comment_reference||'.comment'] = $comment; var['seller.'||$seller||'.comment.'||$comment_reference||'.voting'] = $voting; var['seller.'||$seller||'.comment.'||$comment_reference||'.auction'] = $reference; response['message'] = 'Thank you for confirming that you have received the goods! We payed the seller!'; }" } ] }, { "if": "{ trigger.address == var['auction.'||trigger.data.reference||'.buyer'] AND trigger.data.no_goods_receipt AND var['auction.'||trigger.data.reference||'.auction_status'] == 'buyer_data_confirm'}", "init": "{ $reference = trigger.data.reference; $seller = var['auction.'||trigger.data.reference||'.seller']; $comment = trigger.data.comment; $voting = trigger.data.voting; //1-5 $comment_reference = sha256($reference || $seller || timestamp); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{trigger.address}", "amount": "{$REIMBURSEMENT}" } ] } }, { "app": "state", "state": "{ var['auction.'||$reference||'.auction_status'] = 'no_goods_receipt'; var['seller.'||$seller||'.comment.'||$comment_reference||'.comment'] = $comment; var['seller.'||$seller||'.comment.'||$comment_reference||'.voting'] = $voting; var['seller.'||$seller||'.comment.'||$comment_reference||'.auction'] = $reference; response['message'] = 'Thank you for letting us know. We still hold your money as an decentralized escrow and will inform an arbiter to look into the case. After he did that you will receive your money back if the seller can´t prove that he has sent it to you.'; }" } ] }, { "init": "{ bounce("Enter buyer or seller"); }", "messages": [ { "app": "state", "state": "{ response['usage'] = 'Enter buyer or seller'; }" } ] } ] } } ]
Technical information
Fees:
8,449 bytes
(353 headers, 8096 payload)
Level:1068980
Witnessed level:1068971
Main chain index:1067745
Latest included mc index:1067744
Status:stable/confirmed/final