Unit ID
Du7Gep6pxj1lTOIRvvbt1HzvtSFO3VVfBJPj2RM1Cic=
Received
17.09.2019 22:57:40
Confirmation delay (full node)
5 minutes 18 seconds
Confirmation delay (light node)
8 minutes 38 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $OWNER = 'JBGMJI7XSKLKNHZF26BUBWHVUZSDV3P5'; $CAP = 300; $FEE = var['fee'] ? var['fee'] : 0; $base_inp = trigger.output[[asset=base]] - $FEE; $address_to_return = trigger.data.return otherwise trigger.address; if(!var['fee'] AND $OWNER != trigger.address) bounce('Not active yet'); }", "messages": { "cases": [ { "if": "{ trigger.data.total_supply }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "data", "payload": { "total_supply": "{var['total_supply']}" } }, { "app": "state", "state": "{ response['total_supply'] = var['total_supply']; }" } ] }, { "if": "{ trigger.data.balance_of }", "init": "{ $adrb = trigger.data.owner otherwise trigger.address; }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "data", "payload": { "balance": "{var['a_' || $adrb]}" } }, { "app": "state", "state": "{ response['balance'] = var['a_' || $adrb]; }" } ] }, { "if": "{ trigger.data.transfer }", "init": "{ if(!var['a_'||trigger.address]) bounce('No funds found'); if(!trigger.data.to) bounce('To param missing'); if(!trigger.data.value) bounce('Value param missing'); if(trigger.data.value > var['a_'||trigger.address]) bounce('You have max '||var['a_'||trigger.address]); }", "messages": [ { "app": "data_feed", "payload": { "event": "transfer", "from": "{trigger.address}", "to": "{trigger.data.to}", "value": "{trigger.data.value}" } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "state", "state": "{ var['a_' || trigger.data.to] += trigger.data.amount; var['a_'||trigger.address] -= trigger.data.amount; }" } ] }, { "if": "{ trigger.data.transfer_from }", "init": "{ if(!trigger.data.from) bounce('From param missing'); if(!trigger.data.to) bounce('To param missing'); if(!trigger.data.value) bounce('Value param missing'); if(!var['perm_' || trigger.data.from || '_' || trigger.address]) bounce('Not allowed to spend'); if(var['perm_' || trigger.data.from || '_' || trigger.address] < trigger.data.value) bounce('Not enough allowed to spend'); if(trigger.data.value > var['a_' || trigger.data.from]) bounce('Account have max '||var['a_' || trigger.data.from]); }", "messages": [ { "app": "data_feed", "payload": { "event": "transfer", "from": "{trigger.data.from}", "to": "{trigger.data.to}", "value": "{trigger.data.value}" } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "state", "state": "{ var['a_' || trigger.data.to] += trigger.data.value; var['a_' || trigger.data.from] -= trigger.data.value; var['perm_' || trigger.data.from || '_' || trigger.address] -= trigger.data.value; }" } ] }, { "if": "{ trigger.data.approve }", "init": "{ if(!trigger.data.spender) bounce('Spender param missing'); if(!trigger.data.value) bounce('Value param missing'); if(var['perm_' || trigger.address || '_' || trigger.data.address] AND (trigger.data.value + var['perm_' || trigger.address || '_' || trigger.data.address]) < 0) bounce('Negative value not allowed'); }", "messages": [ { "app": "data_feed", "payload": { "event": "approval", "owner": "{trigger.address}", "spender": "{trigger.data.spender}", "value": "{trigger.data.value}" } }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "state", "state": "{ var['perm_' || trigger.address || '_' || trigger.data.address] = trigger.data.value; if(var['perm_' || trigger.address || '_' || trigger.data.address] == 0) var['perm_' || trigger.address || '_' || trigger.data.address] = false; }" } ] }, { "if": "{ trigger.data.allowance }", "init": "{ if(!trigger.data.owner) bounce('Owner param missing'); if(!trigger.data.spender) bounce('Spender param missing'); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "data", "payload": { "remaining": "{var['perm_' || trigger.data.owner || '_' || trigger.data.spender]}" } }, { "app": "state", "state": "{ response['remaining'] = var['perm_' || trigger.data.owner || '_' || trigger.data.spender]; }" } ] }, { "if": "{ trigger.data.mint }", "init": "{ if($CAP) bounce('Limited asset, mint not allowed'); if(trigger.address != $OWNER) bounce('You are not owner'); if(!trigger.data.to) bounce('To param missing'); if(!trigger.data.value) bounce('Value param missing'); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "data_feed", "payload": { "event": "mint", "to": "{trigger.data.to}", "value": "{trigger.data.value}" } }, { "app": "state", "state": "{ var['a_' || trigger.data.to] += trigger.data.value; var['total_supply'] += trigger.data.value; }" } ] }, { "if": "{ trigger.data.burn }", "init": "{ if($CAP) bounce('Limited asset, burn not allowed'); if(!trigger.data.value) bounce('Value param missing'); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$address_to_return}", "amount": "{$base_inp}" } ] } }, { "app": "data_feed", "payload": { "event": "burn", "from": "{trigger.address}", "value": "{trigger.data.value}" } }, { "app": "state", "state": "{ var['a_' || trigger.address] -= trigger.data.value; var['total_supply'] -= trigger.data.value; }" } ] }, { "if": "{ if($OWNER != trigger.address) bounce('Not allowed'); trigger.data.withdraw }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{$OWNER}" } ] } } ] }, { "messages": [ { "app": "state", "state": "{ if(!var['fee'] AND !trigger.data.fee) bounce('You must set up fee for first time'); if(trigger.data.fee) var['fee'] = trigger.data.fee; if(!var['total_supply']){ if($CAP){ var['total_supply'] = $CAP; var['a_'||$OWNER] = $CAP; } else{ var['total_supply'] = 0; } response['init'] = 'coin init ok'; } response['message'] = 'amount deposited correctly'; }" } ] } ] } } ]
Technical information
Fees:
5,419 bytes
(353 headers, 5066 payload)
Level:1064642
Witnessed level:1064634
Main chain index:1063408
Latest included mc index:1063407
Status:stable/confirmed/final