Unit ID
cfLmwOiRzjqqewoD5HCyVQbOtHKgs1JAxs41AA6iFnY=
Received
09.12.2020 18:06:02
Confirmation delay (full node)
3 minutes 0 seconds
Confirmation delay (light node)
5 minutes 47 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $nom_AA = 'Perfils'; $versio = '0.1'; $_AUT_000 = 'C4KIJSUWVM7BGWTLXKX3K4PNRXV7OY4W'; $adr__ = trigger.address; $args = trigger.data; $__bota = $txt => bounce ( $nom_AA || ' >>> ' || $txt ); if ( ! $args ) { $__bota( ": Cal proporcionar-ne els arguments" ); } $idgeto = trigger.output[[ asset != base ]].asset; }", "messages": [ { "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 ); // Comprova si una adr consta com a autoritzada $__autoritzada = ( $x ) => { $aut = var[ '_AUT_' || $x || '_' || $idgeto ]; $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' ); } $ref = $__arg( 'ref' ); $val = $__arg( 'val' ); if ( $ref == 'creacio' ) { $id = $__arg( 'id' ); var[ 'geto_' || $id ] = { id : $id, _FOG : $__arg( '_FOG' ), _AUT_A : $__arg( '_AUT_A' ), factor_conversio : $__arg( 'factor_conversio' ), import_activacio : $__arg( 'import_activacio' ), import_subscripcio : $__arg( 'import_subscripcio' ), import_renovacio : $__arg( 'import_renovacio' ), taxa_conversio : $__arg( 'taxa_conversio' ), derivacio_aFOG : $__arg( 'derivacio_aFOG' ), activacions_restringides : $__arg( 'activacions_restringides' ), subscripcions_restringides : $__arg( 'subscripcions_restringides' ), recepcions_restringides : $__arg( 'recepcions_restringides' ), conversions_restringides : $__arg( 'conversions_restringides' ), valors_esmenables : $__arg( 'valors_esmenables' ), llistats_editables : $__arg( 'llistats_editables' ), bloqueig_possible : $__arg( 'bloqueig_possible' ), }; response[ 'Desat el perfil del getó' ] = 'geto_' || $id; } else { $perfil = var[ 'geto_' || $idgeto ]; // _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 !! $perfil._AUT_0 ) ) { if ( $ref == 'confirmacio' ) { $proposta = var[ $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( "El procés de confirmació l'ha d'endegar una altra AUT" ); } $resta = timestamp - $proposta.temps; $resp = ' Temps proposta: ' || $proposta.temps || ' Temps actual: ' || timestamp || ' Temps transcorregut: ' || $resta || ' Lapse mínim: ' || var[ 'Lapse' ] ; response[ 'Temps' ] = $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[ $__arg( '_Validacions' ) ][ $val ] ) { $__bota( "La proposta encara no ha estat validada" ); } // Desa en el perfil del getó el param funcional amb la ref i el val de la proposta $perfil[ $proposta.ref ] = $proposta.val; response[ 'proposta' ] = $ref; response[ 'nova ref' ] = $proposta.ref; response[ 'nou val' ] = $proposta.val; } else { // El valor actual i el proporcionat no han de coincidir if ( !! $perfil[ $ref ] AND $perfil[ $ref ] == $val ) { $__bota( "El valor proposat coincideix amb l'actual" ); } // El valor proporcionat no ha de coincidir amb el de la darrera proposta $ord_darrera_prop = var[ 'ordinal_proposta_' || $ref || '_' || $idgeto ]; $darrera_prop = var[ 'proposta_' || $ref || '_' || $ord_darrera_prop || '_' || $idgeto ]; if ( !! $darrera_prop AND $darrera_prop.val == $val ) { $__bota( "El valor proposat coincideix amb el de la darrera proposta" ); } $ref_ordinal = 'ordinal_proposta_' || $ref || '_' || $idgeto; $ordinal = var[ $ref_ordinal ]; $nou_ordinal = ! $ordinal ? 1 : $ordinal + 1; var[ $ref_ordinal ] = $nou_ordinal; $id_proposta = 'proposta_' || $ref || '_' || $nou_ordinal || '_' || $idgeto; var[ $id_proposta ] = { ref: $ref, val: $val, ordinal: $nou_ordinal, proposant: $adr__, temps: timestamp, }; response[ 'proposta' ] = $id_proposta; response[ 'nova ref' ] = $ref; response[ 'nou val' ] = $val; response[ 'data proposta' ] = timestamp_to_string( timestamp ); response[ 'data inici periode confirmació'] = timestamp_to_string( timestamp + var[ 'Lapse' ] ); } } else { $perfil[ $ref ] = $val; response[ 'nova ref' ] = $ref; response[ 'nou val' ] = $val; } } }" } ] } ]
Technical information
Fees:
6,546 bytes
(452 headers, 6094 payload)
Level:1799154
Witnessed level:1799147
Main chain index:1791289
Latest included mc index:1791288
Status:stable/confirmed/final