Unit ID
FCixQSiK37SaRoa0JYoSTFBoYTQmx6HZf7sQULPxvKY=
Received
04.12.2020 19:45:14
Confirmation delay (full node)
2 minutes 41 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $nom_AA = 'Portal'; $versio = '0.6'; $_AUT_000 = 'C4KIJSUWVM7BGWTLXKX3K4PNRXV7OY4W'; $adr__ = trigger.address; $args = trigger.data; $__bota = $txt => bounce ( $nom_AA || ' >>> ' || $txt ); if ( ! $args ) { $__bota( ': Cal proporcionar-ne els arguments' ); } $args._Portal = this_address; $args._FOP = var[ '_FOP' ]; $args._Estels = var[ '_Estels' ]; $args._Validacions = var[ '_Validacions' ]; $args.geto = trigger.output[[ asset != base ]].asset; $args.qt = trigger.output[[ asset = $args.geto ]]; }", "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": "{ // Si no s'ha lliurat l'argument especificat, s'atura $__arg = $arg => $args[ $arg ] ? $args[ $arg ] : $__bota( 'Cal proporcionar el valor de: ' || $arg ); $_a = $__arg( 'ref' ); $_b = $__arg( 'val' ); // Comprova si una adr consta com a autoritzada $__autoritzada = ( $x ) => { $aut = var[ '_AUT_' || $x ]; $aut AND $aut == $adr__ }; // Comprova si la adr__ actuant consta com a autoritzada if ( $adr__ != $_AUT_000 AND ! $__autoritzada( '0' ) AND ! $__autoritzada( 'A' ) AND ! $__autoritzada( 'B' ) AND ! $__autoritzada( 'C' ) ) { $__bota( 'No autoritzada' ); } response[ 'ref' ] = $args.ref; response[ 'val' ] = $args.val; // _AUT_000 pot saltar-se la validació mentre no existeixi _AUT_0 $es_AUT_000 = $adr__ == $_AUT_000; if ( ! $es_AUT_000 OR ( !! $es_AUT_000 AND !! var[ '_AUT_0' ] ) ) { if ( $args.ref == 'confirmacio' ) { $proposta = var[ $args.val ]; // La proposta ha d'existir if ( ! $proposta ) { $__bota( 'No hi ha cap proposta amb aquesta id' ); } // El valor actual i el de la proposta desada no han de coincir if ( !! var[ $proposta.ref ] AND 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 $ordinal_proposta = var[ 'ordinal_proposta_' || $proposta.ref ]; if ( !! $ordinal_proposta AND $ordinal_proposta != $proposta.ordinal ) { $__bota( 'Ref incorrecta' ); } // La confirmació l'ha de fer una AUT diferent a la proposant if ( $proposta.proposant == $adr__ ) { $__bota( 'La confirmació ha de ser endegada per una altra AUT' ); } $resta = timestamp - $proposta.temps; $resp = 'Lapse: ' || var[ 'Lapse' ] || ' Temps proposta: ' || $proposta.temps || ' Temps actual: ' || timestamp || ' Resta t.actual menys t.proposta: ' || $resta; response[ 'id proposta' ] = $resp; // La confirmació només es pot fer quan ha transcorregut el lapse especificat if ( var[ 'Lapse' ] > timestamp - $proposta.temps ) { $__bota( 'Encara no es pot confirmar la proposta' || $resp ); } // La proposta ha de constar com a validada a _Validacions if ( ! var[ $args._Validacions ][ $args.val ] ) { $__bota( 'Encara no ha estat validada' ); } var[ $args.ref ] = $args.val; } else { // El valor actual i el proporcionat no han de coincidir if ( !! var[ $args.ref ] AND var[ $args.ref ] == $args.val ) { $__bota( 'El valor actual coincideix amb el de la proposta' ); } // El valor proporcionat no ha de coincidir amb el de la darrera proposta $ord_darrera_prop = var[ 'ordinal_proposta_' || $args.ref ]; $darrera_prop = var[ 'proposta_' || $args.ref || '_' || $ord_darrera_prop ]; if ( !! $darrera_prop AND $darrera_prop.val == $args.val ) { $__bota( 'El valor proposat coincideix amb el de la darrera 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[ 'id proposta' ] = $id_proposta; response[ 'data proposta' ] = timestamp_to_string( timestamp ); response[ 'data inici periode confirmació'] = timestamp_to_string( timestamp + var[ 'Lapse' ] ); } } else { var[ $args.ref ] = $args.val; } }" } ] } ]
Technical information
Fees:
5,392 bytes
(452 headers, 4940 payload)
Level:1788872
Witnessed level:1788865
Main chain index:1781082
Latest included mc index:1781081
Status:stable/confirmed/final