Unit ID
ykT4UdqLAYr6JPxbFYMR/k77LQD+gix6UZ2tnx8My+A=
Received
08.09.2019 14:18:35
Confirmation delay (full node)
4 minutes 4 seconds
Confirmation delay (light node)
8 minutes 42 seconds
Messages
Definition
Definition: [ "autonomous agent", { "bounce_fees": { "base": 10000 }, "init": "{ $BOUNCE_FEE = 10000; $TYPICAL_FEE = 1000; $REIMBURSEMENT = $BOUNCE_FEE - $TYPICAL_FEE; }", "messages": { "cases": [ { "if": "{ trigger.data.owner }", "init": "{ $owner = trigger.data.owner otherwise bounce("owner field is missing"); $period = trigger.data.period otherwise bounce("period field is missing"); $balance = 0; $reference = sha256($owner || $period || $balance || timestamp); if (var[$reference]) bounce("pension plan already exists"); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{trigger.address}", "amount": "{$REIMBURSEMENT}" } ] } }, { "app": "state", "state": "{ var[$reference] = 'requested'; var[$reference||'.owner'] = $owner; var[$reference||'.period'] = $period; var[$reference||'.balance'] = $balance; var[$reference||'.timestamp'] = timestamp; response['reference'] = $reference; response['message'] = 'Pension plan created'; response['creation_time'] = var[$reference||'.timestamp']; response['balance'] = var[$reference||'.balance']; }" } ] }, { "if": "{trigger.data.deposit AND trigger.output[[asset = base]] > $BOUNCE_FEE}", "init": "{ $reference = trigger.data.reference otherwise bounce("pension plan reference is missing"); $deposit = trigger.output[[asset = base]]; }", "messages": [ { "app": "state", "state": "{ var[$reference||'.balance'] += $deposit; response['message'] = 'Added ' || $deposit || ' bytes to the private pension plan ' || $reference ||'.'; response['balance'] = 'The current balance of pension plan ' || $reference || 'is ' || var[$reference||'.balance']; }" } ] }, { "if": "{trigger.data.withdraw}", "init": "{ $reference = trigger.data.reference otherwise bounce("pension plan reference is missing"); $amount = trigger.data.amount otherwise var[$reference||'.balance']; if ($amount > var[$reference||'.balance']) bounce("Invalid withdrawal amount. Maximum balance is " || var[$reference||'.balance']); if ($amount <= 0) bounce("Invalid withdrawal amount. Enter a number greater than zero."); if (trigger.address != var[$reference||'.owner']) bounce("Unauthorized"); }", "messages": [ { "app": "payment", "payload": { "outputs": [ { "address": "{var[$reference||'.owner']}", "amount": "{$amount}" }, { "address": "{var[$reference||'.owner']}", "amount": "{$REIMBURSEMENT}" } ] } }, { "app": "state", "state": "{ var[$reference||'.balance'] -= $amount; }" } ] }, { "init": "{ bounce("Enter a data field: owner, deposit or withdraw"); }", "messages": [ { "app": "state", "state": "{ response['usage'] = 'Enter a data field: owner, deposit or withdraw'; }" } ] } ] } } ]
Technical information
Fees:
2,904 bytes
(353 headers, 2551 payload)
Level:1051357
Witnessed level:1051350
Main chain index:1050130
Latest included mc index:1050129
Status:stable/confirmed/final