Unit ID
2Bd6b2i7dEwTTH+UI6Dl7MW5mQyZZiqtFVJl0/a9Xuc=
Received
05.04.2021 18:41:02
Confirmation delay (full node)
3 minutes 17 seconds
Confirmation delay (light node)
22 minutes 49 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{\r $nom_AA = 'Validadores';\r \r // Portal\r //$_Portal = '5WVBJQHTEP54AEYUJGTQKWTXTXZSJQWA';\r $_Portal = trigger.address; // * només x tests\r if ( $_Portal != trigger.address ) bounce ( 'Portal no reconegut' );\r \r $args = trigger.data;\r $adr__ = trigger.initial_address;\r $proces = $args.proces;\r $dades = $args.dades otherwise {};\r \r $__dada = $refval => {\r data_feed[[ oracles = $args._Registre, feed_name = $refval, ifnone = false ]]\r };\r \r // Retorna ordinal\r $__ordinal = $rf => {\r $ord = $__dada( 'ordinal_' || $rf );\r $ord ? $ord + 1 : 1\r };\r \r $_actuant_es_isox_000 = $__dada( 'isox_000' ) == $adr__ ;\r $_estat_isox_actuant = $__dada( 'isox_' || $adr__ || '_estat' ) otherwise '';\r $autoritzacio = $_actuant_es_isox_000 OR $_estat_isox_actuant == 'habilitat';\r \r if ( ! $autoritzacio ) bounce ( 'No autoritzada per a no isox' );\r \r $index_baules_isox = $__dada( 'isox_' || $adr__ || '_index_baules' ) otherwise 1;\r $mitjana_index_baules = $__dada( 'mitjana_index_baules' ) otherwise 1;\r $factor_topall_index_baules = $__dada( 'Factor_Topall_Index_Baules' ) otherwise 1.5;\r if ( $index_baules_isox > $mitjana_index_baules * $factor_topall_index_baules )\r bounce ( 'No autoritzada per massa baules' );\r \r \r // Admin isox\r if ( $proces == 'nou_isox' ) {\r $estat_isox = $__dada( 'isox_' || $args.adr || '_estat') otherwise '';\r if ( $estat_isox == 'habilitat' )\r bounce ( 'Ja hi consta una isox habilitada amb aquesta adreça' );\r \r $_aspirant = $__dada( 'aspirant_' || $args.adr );\r $ord_isox = $__ordinal( 'isox' );\r \r if ( $_actuant_es_isox_000 ) {\r $index_baules_nou_isox = $args.index_baules otherwise $mitjana_index_baules;\r $dades_alta = [ 'isox_000', 'isox_000', 1, $index_baules_nou_isox ];\r \r } else {\r $nombre_avals =\r $__dada( 'isox_' || $adr__ || '_aval_2' ) ? 2 :\r $__dada( 'isox_' || $adr__ || '_aval_1' ) ? 1 :\r 0;\r \r if ( $nombre_avals == 2 ) bounce ( "Ja n'has avalat 2" );\r \r if ( !! $_aspirant ) {\r $_proposant = $__dada( 'aspirant_' || $args.adr || '_proposant' );\r \r if ( $_proposant == $adr__ )\r bounce ( "Els dos avals han de provenir d'adreces diferents" );\r \r $index_baules_proposant =\r $__dada( 'isox_' || $_proposant || '_index_baules' ) otherwise 1;\r $index_baules_nouisox = 1 + round( ( $index_baules_proposant + $index_baules_isox ) / 2 );\r \r $index_absolut = $index_baules_nouisox + ( $mitjana_index_baules * ( $ord_isox - 1 ) );\r $nova_mitjana_index_baules = round( $index_absolut / $ord_isox );\r \r $dades[ 'isox_' || $adr__ || '_aval_' || ( $nombre_avals + 1 ) ] = $args.adr;\r $dades_alta = [ $_proposant, $adr__, $index_baules_nouisox, $nova_mitjana_index_baules ];\r \r } else {\r $dades[ 'aspirant_' || $args.adr ] = timestamp;\r $dades[ 'aspirant_' || $args.adr || '_proposant' ] = $adr__;\r $dades[ 'isox_' || $adr__ || '_aval_' || ( $nombre_avals + 1 ) ] = $args.adr;\r }\r }\r \r if ( !! $dades_alta[0] ) {\r $dades[ 'ordinal_isox' ] = $ord_isox;\r $dades[ 'isox_' || $ord_isox ] = $args.adr;\r $dades[ 'isox_' || $args.adr || '_ordinal' ] = 'isox_' || $ord_isox;\r $dades[ 'isox_' || $args.adr || '_proposant' ] = $dades_alta[0];\r $dades[ 'isox_' || $args.adr || '_confirmant' ] = $dades_alta[1];\r $dades[ 'isox_' || $args.adr || '_data' ] = timestamp;\r $dades[ 'isox_' || $args.adr || '_estat' ] = 'habilitat';\r $dades[ 'isox_' || $args.adr || '_index_baules' ] = $dades_alta[2];\r $dades[ 'mitjana_index_baules' ] = $dades_alta[3];\r }\r }\r \r if ( $proces == 'esmena_estat_isox' ) {\r \r $estat_actual = $__dada( 'isox_' || $args.adr || '_estat' );\r \r if ( ! $estat_actual )\r bounce ( 'No hi consta cap isox amb aquesta adreça' );\r \r if ( $estat_actual == $args.estat )\r bounce ( "L'estat actual és el mateix que el proposat" );\r \r $index_baules = $__dada( 'isox_' || $args.adr || '_index_baules' );\r \r if ( $args.estat == 'habilitat' )\r $nova_mitjana_index_baules =\r ( ( $mitjana_index_baules * ( $ord_isox - 1 ) ) + $index_baules ) / $ord_isox;\r else\r $nova_mitjana_index_baules =\r ( ( $mitjana_index_baules * ( $ord_isox - 1 ) ) - $index_baules ) / $ord_isox;\r \r $dades[ 'isox_' || $args.adr || '_estat' ] = $args.estat;\r $dades[ 'mitjana_index_baules' ] = $nova_mitjana_index_baules;\r }\r \r // Admin delegacions\r if ( $proces == 'nova_delegacio' OR $proces == 'final_delegacio' ) {\r $_entitat = $__dada( 'entitat_' || $args.ord_entitat );\r $semiref_delegada = 'entitat_' || $_entitat || '_delegada_';\r \r if ( ! $_entitat ) bounce ( 'Entitat inexistent');\r \r if ( $_entitat != $adr__ )\r bounce ( "L'adreça actuant no és la de l'entitat" );\r \r $ords = [ "1", "2", "3", "4", "5" ];\r \r $ord_delegada_trobada = [];\r $__troba_delegada = $o => {\r if (\r $__dada( $semiref_delegada || $o ) == $args.adr AND\r ! $ord_delegada_trobada[0]\r )\r $ord_delegada_trobada[0] = $o;\r };\r \r $troba_delegada = map( $ords, 5, $__troba_delegada );\r \r if ( $proces == 'nova_delegacio' ) {\r if ( !! $ord_delegada_trobada[0] )\r bounce ( 'Ja hi consta una delegada amb aquesta adreça' );\r \r $lloc_trobat = [];\r $__troba_lloc_lliure = $o => {\r if (\r ! $__dada( $semiref_delegada || $o ) AND\r ! $lloc_trobat[0]\r )\r $dades[ $semiref_delegada || $o ] = $args.adr;\r $lloc_trobat[0] = true;\r };\r \r $troba_lloc_lliure = map( $ords, 5, $__troba_lloc_lliure );\r \r if ( ! $lloc_trobat[0] )\r bounce( 'Ja hi consten 5 delegacions habilitades' );\r }\r \r if ( $proces == 'final_delegacio' ) {\r if ( ! $ord_delegada_trobada[0] )\r bounce ( 'No hi consta cap delegada amb aquesta adreça' );\r \r $dades[ $semiref_delegada || $ord_delegada_trobada[0] ] = '';\r }\r }\r \r $registre = {};\r $registre.dades = $dades;\r }", "messages": [ { "app": "data", "payload": "{ $registre }" }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $args._Registre }", "amount": "{ $__dada( 'Provisio' ) }" } ] } }, { "app": "state", "state": "{\r response[ 'procés' ] = $proces;\r if ( $proces == 'nou_isox' ) {\r if ( !! $_aspirant ) {\r response[ 'Isox_' || $ord_isox ] = $args.adr;\r response[ 'Confirmant' ] = $dades_alta[1];\r response[ 'Estat' ] = 'habilitat';\r response[ 'Index_baules' ] = $dades_alta[2];\r } else {\r response[ 'Proposant' ] = $dades_alta[0] otherwise $adr__;\r response[ 'Mitjana índex baules' ] = $dades_alta[3];\r }\r if ( $adr__ != $__dada( 'isox_000' ) )\r response[ 'Nombre avals de ' || $adr__ ] = ( $nombre_avals + 1 );\r }\r \r if ( $proces == 'esmena_estat_isox' ) {\r response[ 'Nou estat isox ' || $args.adr ] = $args.estat;\r response[ 'Mitjana índex baules anterior' ] = $mitjana_index_baules;\r response[ 'Mitjana índex baules actual' ] = $nova_mitjana_index_baules;\r }\r \r if ( $proces == 'nova_delegacio' )\r response[ 'Nova delegació' ] = \r 'entitat_' || $adr__ || '_delegada_' || $lloc_trobat[0];\r \r if ( $proces == 'final_delegacio' )\r response[ 'Final delegació' ] =\r 'entitat_' || $adr__ || '_delegada_' || $ord_delegada_trobada[0];\r }" } ] } ]
Technical information
Fees:
8,123 bytes
(452 headers, 7671 payload)
Level:1955897
Witnessed level:1955890
Main chain index:1947932
Latest included mc index:1947931
Status:stable/confirmed/final