Unit ID
zBFkezS9/DtGnu4RFmmIrnTE5tYp8ejNVAsOA73S4kU=
Received
01.12.2020 11:32:56
Confirmation delay (full node)
4 minutes 14 seconds
Confirmation delay (light node)
6 minutes 42 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $nom_AA = 'Portal'; $versio = '0.6'; $_AUT_000 = 'C4KIJSUWVM7BGWTLXKX3K4PNRXV7OY4W'; $adr__ = trigger.address; $args = trigger.data; // Funcions auxiliars $__bota = $txt => bounce ( $nom_AA || ' >>> ' || $txt ); // Si no s'ha lliurat l'argument especificat bota l'accés $__arg = $arg => $args[ $arg ] ? $args[ $arg ] : $__bota( 'Cal proporcionar el valor de: ' || $arg ); $__autoritzada = ( $x ) => { $aut = var[ '_AUT_' || $x ]; $aut AND $aut == $adr__ }; if ( ! $args ) { $__bota( ': Cal proporcionar-ne els arguments' ); } $args._Portal = this_address; $args._FOP = var[ '_FOP' ]; $args._Estels = var[ '_Estels' ]; $args.geto = trigger.output[[ asset != base ]].asset; $args.qt = trigger.output[[ asset = $args.geto ]]; if ( !! $args.admin ) { $_a = $__arg( 'ref' ); $_b = $__arg( 'val' ); if ( $adr__ != $_AUT_000 AND ! $__autoritzada( '0' ) AND ! $__autoritzada( 'A' ) AND ! $__autoritzada( 'B' ) AND ! $__autoritzada( 'C' ) ) { $__bota( 'No autoritzada' ); } // _AUT_000 pot saltar-se el tràmit mentre no existeixi _AUT_0 $es_AUT_000 = $adr__ == $_AUT_000; if ( ! $es_AUT_000 OR ( !! $es_AUT_000 AND !! var[ '_AUT_0' ] ) ) { // Es tracta com a confirmació si s'hi proporciona la id de la proposta if ( $args.ref == 'id_proposta' ) { $proposta = var[ $args.val ]; // La proposta existeix if ( ! $proposta ) { $__bota( 'No hi ha cap proposta amb aquesta id' ); } // El valor actual i el de la proposta no coincideixen if ( var[ $proposta.ref ] == $proposta.val ) { $__bota( 'El valor actual coincideix amb el de la proposta' ); } // L'ordinal de la proposta ha de coincidir amb el de la darrera if ( $proposta.ordinal != var[ 'ordinal_proposta_' || $proposta.ref ] ) { $__bota( 'Ref incorrecta' ); } // La confirmació l'ha de fer una AUT diferent a la proposant if ( $proposta.proposant == $adr__ ) { $__bota( 'Ja hi consta la teva proposta' ); } // La confirmació només es pot fer quan ha transcorregut el lapse especificat if ( timestamp - $proposta.temps > var[ 'Lapse' ] ) { $__bota( 'Encara no es pot confirmar la proposta' ); } // La proposta ha de constar com a validada a _Validacions if ( ! var[ $args._Validacions ][ $args.val ] ) { $__bota( 'Encara no ha estat validada' ); } $acc = 'confirmacio'; } else { $acc = 'proposta'; } } else { $acc = 'confirmacio'; } } else { $acc = 'acces'; } }", "messages": [ { "app": "data", "payload": "{ $args }" }, { "if": "{ ! $args.admin }", "app": "payment", "payload": { "asset": "{ $args.geto }", "outputs": [ { "address": "{ var[ '_Acces' ] }", "amount": "{ $args.qt }" } ] } }, { "if": "{ !! $args.admin }", "app": "state", "state": "{ if ( $acc == 'confirmacio' ) { var[ $args.ref ] = $args.val; response[ 'ref' ] = $args.ref; response[ 'val' ] = $args.val; } if ( $acc == 'proposta' ) { $ref_ordinal = 'ordinal_proposta_' || $args.ref; $ordinal = var[ $ref_ordinal ]; $nou_ordinal = ! $ordinal ? 1 : $ordinal + 1; var[ $ref_ordinal ] = $nou_ordinal; $id_proposta = 'proposta_' || $args.ref || '_' || $nou_ordinal; var[ $id_proposta ] = { ref: $args.ref, val: $args.val, ordinal: $nou_ordinal, proposant: $adr__, temps: timestamp, }; response[ 'proposta' ] = $id_proposta; response[ 'proposta ref' ] = $args.ref; response[ 'proposta val' ] = $args.val; response[ 'timestamp' ] = timestamp; response[ 'lapse' ] = var[ 'Lapse' ]; response[ 'suma' ] = timestamp + var[ 'Lapse' ]; response[ 'data' ] = timestamp_to_string( timestamp ); response[ 'data per a la confirmació'] = timestamp_to_string( timestamp + var[ 'Lapse' ] ); } response[ 'acc' ] = $acc; }" } ] } ]
Technical information
Fees:
4,684 bytes
(452 headers, 4232 payload)
Level:1783640
Witnessed level:1783632
Main chain index:1775850
Latest included mc index:1775849
Status:stable/confirmed/final