Unit ID
NdB2gBwILBwbPNhxOLeiQ10hEvTRLTS0QeeYshvOX9w=
Received
22.12.2020 10:07:25
Confirmation delay (full node)
3 minutes 29 seconds
Confirmation delay (light node)
6 minutes 9 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $nom_AA = 'Portal'; $versio = '0.1.2'; $_AUT_000 = 'C4KIJSUWVM7BGWTLXKX3K4PNRXV7OY4W'; $adr__ = trigger.address; $args = trigger.data; $idgeto = trigger.output[[ asset != base ]].asset; $qt = trigger.output[[ asset = $args.geto ]]; $generics = var[ 'Generics' ]; $propostes = var[ 'Propostes' ]; $validacions = var[ 'Validacions' ]; $ordinals = var[ 'Ordinals' ]; $getons = var[ 'Getons' ]; $alteracions = var[ 'Alteracions' ]; $geto = $getons[ $args.id_geto ]; // Autoritzacions $_actuant_es_AUT_000 = $adr__ == $_AUT_000; $_actuant_es_AUT = $_actuant_es_AUT_000 AND ! $generics._AUT_0 OR $adr__ == $generics._AUT_A OR $adr__ == $generics._AUT_0 OR $adr__ == $generics._AUT_B OR $adr__ == $generics._AUT_C; $_actuant_es_AUT_geto = $_actuant_es_AUT AND ! $geto.variables._AUT_0 OR $adr__ == $geto.constants._AUT_A OR $adr__ == $geto.variables._AUT_0 OR $adr__ == $geto.variables._AUT_B OR $adr__ == $geto.variables._AUT_C; // Funcions $__bota = $txt => bounce ( $nom_AA || ' >>> ' || $txt ); $__ordinal = $rf => $ordinals[ $rf ] ? $ordinals[ $rf ] + 1 : 1; $__idprop = $rf => { $ordinals[ $rf ] = $__ordinal( $rf ); $rf || '_' || $ordinals[ $rf ] }; $__data_confirmacio = () => timestamp_to_string( timestamp + $generics.Lapse ); // Funció: Retorna valor argument lliurat si el troba. Altrament, s'atura $__arg = $arg => $args[ $arg ] otherwise $__bota( "Cal proporcionar el valor de: " || $arg ); // Admin if ( $args.admin ) { // Bloc Autoritzacions if ( $args.admin_geto ) { // El getó ha d'existir i constar com a actiu if ( ! $geto OR $geto.estat != 'actiu' ) { $__bota( 'Getó inexistent o inactiu' ); } if ( ! $_actuant_es_AUT_geto ) { $__bota( 'No autoritzada' ); } } else { if ( ! $_actuant_es_AUT ) { $__bota( 'No autoritzada' ); } } // Bloc Validació // _AUT_000 pot saltar-se procés validació mentre no existeixi _AUT_0 if ( ! $_actuant_es_AUT_000 OR ( $_actuant_es_AUT_000 AND $generics._AUT_0 ) OR ( $_actuant_es_AUT_000 AND $geto.variables._AUT_0 ) ) { if ( $args.tasca == 'confirmacio' ) { $proposta = $propostes[ $args.idprop ]; // La proposta ha d'existir if ( ! $proposta ) { $__bota( "No hi ha cap proposta amb aquesta ref" ); } // 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" ); } // La confirmació només es pot fer quan ha transcorregut el lapse especificat if ( $generics.Lapse > timestamp - $proposta.temps ) { $__bota( "Encara no es pot confirmar la proposta" ); } // La proposta ha de constar com a validada if ( ! $validacions[ $args.idprop ] ) { $__bota( "La proposta encara no ha estat validada" ); } $tasca = 'confirmacio'; } else { $ref = $__arg( 'ref' ); $val = $__arg( 'val' ); // El valor proporcionat no ha de coincidir amb el de la darrera proposta $sufix = $args.admin_geto ? '_' || $args.id_geto : ''; $ordinal = $ordinals[ $ref || $sufix ]; $darrera_prop = $propostes[ $ref || '_' || $ordinal || $sufix ]; if ( $darrera_prop AND $darrera_prop.val == $val ) { $__bota( "El valor proposat coincideix amb el de la darrera proposta" ); } $tasca = 'proposta'; } } else { $ref = $__arg( 'ref' ); $val = $__arg( 'val' ); $tasca = 'drecera'; } } }", "messages": { "cases": [ { "if": "{ $args.proces == 'acces' }", "init": "{ $args._Portal = this_address; $args._FOP = $generics._FOP; $args._Estels = $generics._Estels; $args.geto = $idgeto; $args.qt = $qt; }", "messages": [ { "app": "data", "payload": "{ $idgeto }" }, { "app": "payment", "payload": { "asset": "{ 'base' }", "outputs": [ { "address": "{ $generics._Acces }", "amount": "{ $args.qt }" } ] } } ] } ] } } ]
Technical information
Fees:
5,751 bytes
(452 headers, 5299 payload)
Level:1809849
Witnessed level:1809841
Main chain index:1801983
Latest included mc index:1801981
Status:stable/confirmed/final