Unit ID
lcEcXNfoxwWHDCMJWKRVizCI0n/6jkH52vEYRWUj9u8=
Received
01.08.2019 20:26:05
Confirmation delay (full node)
3 minutes 1 second
Confirmation delay (light node)
5 minutes 22 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}", "init": "{ if (trigger.output[[asset=base]] <= 10000) bounce('You need to send more than the bouce fees'); $vestAmount = (trigger.output[[asset=base]] - 10000); }", "messages": [ { "app": "state", "state": "{ var['vested_' || trigger.address] += $vestAmount; var['vested_total'] += $vestAmount; }" } ] }, { "if": "{trigger.data.proposal AND trigger.data.amount 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'] otherwise 0) ) { 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,734 bytes
(353 headers, 3381 payload)
Level:979892
Witnessed level:979884
Main chain index:978712
Latest included mc index:978711
Status:stable/confirmed/final