Unit ID
1lS0cxsKXzwmD8EIZQ9f5jRiLTjT/iGE8sOamMe/3Do=
Received
01.08.2019 17:50:51
Confirmation delay (full node)
2 minutes 44 seconds
Confirmation delay (light node)
7 minutes 56 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $expiration = 60 * 20; $threshold = ceil(var['vested_total'] / 2); $senderVest = var['vested_' || trigger.address]; }", "bounce_fees": { "base": 10000 }, "messages": { "cases": [ { "if": "{trigger.data.vest}", "messages": [ { "app": "state", "state": "{ var['vested_' || trigger.address] += trigger.output[[asset=base]]; var['vested_total'] += trigger.output[[asset=base]]; }" } ] }, { "if": "{trigger.data.proposal AND trigger.data.amount > 1}", "init": "{ $nextProposal = (var['last_proposal'] + 1); }", "messages": [ { "app": "state", "state": "{ var['proposal_' || $nextProposal] = true; var['proposal_' || $nextProposal || '_url'] = trigger.data.proposal; var['proposal_' || $nextProposal || '_expiration'] = timestamp + $expiration; var['proposal_' || $nextProposal || '_amount'] = trigger.data.amount; var['proposal_' || $nextProposal || '_author'] = trigger.address; var['last_proposal'] = $nextProposal; }" } ] }, { "if": "{trigger.data.vote AND trigger.data.proposal}", "init": "{ if (!var['proposal_' || trigger.data.proposal]) bounce('This proposal does not exist'); if (var['proposal_' || trigger.data.proposal || '_vote_' || trigger.address]) bounce('You already voted for this proposal'); }", "messages": [ { "app": "state", "state": "{ var['proposal_' || trigger.data.proposal || '_vote_' || trigger.address] = true; var['proposal_' || trigger.data.proposal || '_vest'] += $senderVest; if ( var['proposal_' || trigger.data.proposal || '_expiration'] > var['vested_' || trigger.address || '_expiration'] ) { var['vested_' || trigger.address || '_expiration'] = var['proposal_' || trigger.data.proposal || '_expiration']; } }" } ] }, { "if": "{trigger.data.claim AND trigger.data.proposal}", "init": "{ if (var['proposal_' || trigger.data.proposal || '_author'] != trigger.address) bounce('You can not claim funds from someone else proposal'); if (var['proposal_' || trigger.data.proposal || '_vest'] < $threshold) bounce('You can not claim funds if your proposal has not reached the threshold'); if (var['proposal_' || trigger.data.proposal || '_paid']) bounce('You already claimed the fund from this proposal'); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{trigger.address}", "amount": "{var['proposal_' || trigger.data.proposal || '_amount']}" } ] } }, { "app": "state", "state": "{ var['proposal_' || trigger.data.proposal || '_paid'] = true; }" } ] }, { "if": "{trigger.data.profit AND trigger.data.proposal}", "init": "{ if (!var['proposal_' || trigger.data.proposal]) bounce('This proposal does not exist'); }", "messages": [ { "app": "state", "state": "{ var['proposal_' || trigger.data.proposal || '_profit'] += trigger.output[[asset=base]]; }" } ] }, { "if": "{trigger.data.unvest}", "init": "{ if (var['vested_' || trigger.address] == 0) bounce('Your vesting balance is empty'); if (timestamp < var['vested_' || trigger.address || '_expiration']) bounce('You need to wait proposal to expire to unvest'); $amount = ceil((var['vested_' || trigger.address] / var['vested_total']) * balance[base]); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{trigger.address}", "amount": "{$amount}" } ] } }, { "app": "state", "state": "{ var['vested_' || trigger.address] = 0; }" } ] } ] } } ]
Technical information
Fees:
3,559 bytes
(353 headers, 3206 payload)
Level:979395
Witnessed level:979387
Main chain index:978215
Latest included mc index:978214
Status:stable/confirmed/final