Unit ID
XVmxh8mhNOuTsa9o85t8+CLRvlhoAE+8lLhcIMOPiag=
Received
01.07.2021 12:12:01
Confirmation delay (full node)
2 minutes 26 seconds
Confirmation delay (light node)
4 minutes 40 seconds
Messages
Definition
Definition: [ "autonomous agent", { "init": "{ $nom_AA = 'Implicacions'; // Portal //$_Portal = '5WVBJQHTEP54AEYUJGTQKWTXTXZSJQWA'; $_Portal = trigger.address; //Hauria de ser fix amb adr Portal original if ( $_Portal != trigger.address ) bounce( 'Portal no reconegut' ); // Principals $args = trigger.data; $adr__ = trigger.initial_address; $idgeto = trigger.output[[ asset != base ]].asset; $dades = $args.dades otherwise {}; $__dada = $refval => { data_feed[[ oracles = $args._Registre, feed_name = $refval, ifnone = false ]] }; // Abreviacions $proces = $args.proces; $operacio = $args.operacio; $idprop = $args.idprop; $nova_idprop = $args.nova_idprop; $ref = $args.ref; $val = $args.val; // Si no s'ha lliurat l'argument especificat bota l'accés $__arg = $arg => $args[ $arg ] otherwise bounce( "Cal proporcionar el valor de: " || $arg ); // Admin isox if ( $proces == 'nova_isox' OR $proces == 'nou_estat_isox' ) { $ord_isox = $__dada( 'ordinal_isox' ) + 1; $_actuant_es_isox_000 = $__dada( 'isox_000' ) == $adr__ ; $_estat_isox_actuant = $__dada( 'isox_' || $adr__ || '_estat' ) otherwise ''; $autoritzacio = $_actuant_es_isox_000 OR $_estat_isox_actuant == 'habilitat'; if ( ! $autoritzacio ) bounce( 'No autoritzada per a no isox' ); $index_baules_isox = $__dada( 'isox_' || $adr__ || '_index_baules' ) otherwise 1; $mitjana_index_baules = $__dada( 'mitjana_index_baules' ) otherwise 1; $factor_topall_index_baules = $__dada( 'Factor_Topall_Index_Baules' ) otherwise 1.5; if ( $index_baules_isox > $mitjana_index_baules * $factor_topall_index_baules ) bounce( 'No autoritzada per massa baules' ); } if ( $proces == 'nova_isox' ) { $estat_isox = $__dada( 'isox_' || $args.adr || '_estat') otherwise ''; if ( $estat_isox == 'habilitat' ) bounce( 'Ja hi consta una isox habilitada amb aquesta adreça' ); $_aspirant = $__dada( 'aspirant_' || $args.adr ); if ( $_actuant_es_isox_000 ) { $index_baules_nou_isox = $args.index_baules otherwise $mitjana_index_baules; $dades_alta = [ 'isox_000', 'isox_000', 1, $index_baules_nou_isox ]; } else { $nombre_avals = $__dada( 'isox_' || $adr__ || '_aval_2' ) ? 2 : $__dada( 'isox_' || $adr__ || '_aval_1' ) ? 1 : 0; if ( $nombre_avals == 2 ) bounce( "Ja n'has avalat 2" ); if ( !! $_aspirant ) { $_proposant = $__dada( 'aspirant_' || $args.adr || '_proposant' ); if ( $_proposant == $adr__ ) bounce( "Els dos avals han de provenir d'adreces diferents" ); $index_baules_proposant = $__dada( 'isox_' || $_proposant || '_index_baules' ) otherwise 1; $index_baules_nouisox = 1 + round( ( $index_baules_proposant + $index_baules_isox ) / 2 ); $index_absolut = $index_baules_nouisox + ( $mitjana_index_baules * ( $ord_isox - 1 ) ); $nova_mitjana_index_baules = round( $index_absolut / $ord_isox ); $dades[ 'isox_' || $adr__ || '_aval_' || ( $nombre_avals + 1 ) ] = $args.adr; $dades_alta = [ $_proposant, $adr__, $index_baules_nouisox, $nova_mitjana_index_baules ]; } else { $dades[ 'aspirant_' || $args.adr ] = timestamp; $dades[ 'aspirant_' || $args.adr || '_proposant' ] = $adr__; $dades[ 'isox_' || $adr__ || '_aval_' || ( $nombre_avals + 1 ) ] = $args.adr; } } if ( !! $dades_alta[0] ) { $dades[ 'ordinal_isox' ] = $ord_isox; $dades[ 'isox_' || $ord_isox ] = $args.adr; $dades[ 'isox_' || $args.adr || '_ordinal' ] = 'isox_' || $ord_isox; $dades[ 'isox_' || $args.adr || '_proposant' ] = $dades_alta[0]; $dades[ 'isox_' || $args.adr || '_confirmant' ] = $dades_alta[1]; $dades[ 'isox_' || $args.adr || '_data' ] = timestamp; $dades[ 'isox_' || $args.adr || '_estat' ] = 'habilitat'; $dades[ 'isox_' || $args.adr || '_index_baules' ] = $dades_alta[2]; $dades[ 'mitjana_index_baules' ] = $dades_alta[3]; } } if ( $proces == 'nou_estat_isox' ) { $estat_actual = $__dada( 'isox_' || $args.adr || '_estat' ); if ( ! $estat_actual ) bounce( 'No hi consta cap isox amb aquesta adreça' ); if ( $estat_actual == $args.estat ) bounce( "L'estat actual és el mateix que el proposat" ); $index_baules = $__dada( 'isox_' || $args.adr || '_index_baules' ); if ( $args.estat == 'habilitat' ) $nova_mitjana_index_baules = round( ( ( $mitjana_index_baules * ( $ord_isox - 1 ) ) + $index_baules ) / $ord_isox ); else $nova_mitjana_index_baules = round( ( ( $mitjana_index_baules * ( $ord_isox - 1 ) ) - $index_baules ) / $ord_isox ); $dades[ 'isox_' || $args.adr || '_estat' ] = $args.estat; $dades[ 'mitjana_index_baules' ] = $nova_mitjana_index_baules; } // Admin delegacions if ( $proces == 'nova_delegacio' OR $proces == 'final_delegacio' ) { $ref_entitat = 'Entitat_' || $__arg( 'nom' ); $estat_entitat = $__dada( $ref_entitat || '_estat' ) otherwise ''; $adr_entitat = $__dada( $ref_entitat || '_adr' ) otherwise ''; if ( $estat_entitat != 'operatiu' ) bounce( 'Entitat inexistent o no operativa' ); if ( $adr_entitat != $adr__ ) bounce( 'Adreça equivocada' ); // $ords = [ "1", "2", "3", "4", "5" ]; $ords = [ "1", "2", "3" ]; // per als TESTS $ord_delegada_trobada = []; $semiref_delegada = $ref_entitat || '_delegada_'; $__troba_delegada = $o => { $adr_delegada = $__dada( $semiref_delegada || $o ) otherwise ''; if ( ! $ord_delegada_trobada[0] AND $adr_delegada == $args.adr ) $ord_delegada_trobada[0] = $o; }; //foreach( $ords, 5, $__troba_delegada ); foreach( $ords, 3, $__troba_delegada ); // per als TESTS if ( $proces == 'nova_delegacio' ) { if ( !! $ord_delegada_trobada[0] ) bounce( 'Ja hi consta una delegada amb aquesta adreça' ); $lloc_trobat = []; $__troba_lloc_lliure = $o => { if ( ! $__dada( $semiref_delegada || $o ) AND ! $lloc_trobat[0] ) { $dades[ $semiref_delegada || $o ] = $args.adr; $lloc_trobat[0] = $o; } }; //$troba_lloc_lliure = map( $ords, 5, $__troba_lloc_lliure ); $troba_lloc_lliure = map( $ords, 3, $__troba_lloc_lliure ); // per als TESTS if ( ! $lloc_trobat[0] ) bounce( 'Ja consten com a habilitades totes les delegacions possibles' ); } if ( $proces == 'final_delegacio' ) { if ( ! $ord_delegada_trobada[0] ) bounce( 'No hi consta cap delegada amb aquesta adreça' ); $dades[ $semiref_delegada || $ord_delegada_trobada[0] ] = ''; } } // Admin vincles if ( $args.admin_vincles ) { $tipus_vincle = $__dada( $idprop || '_tipus' ) otherwise $__arg( 'tipus' ); $nom_vincle = $__dada( $idprop || '_nom' ) otherwise $__arg( 'nom' ); $ref_vincle = $tipus_vincle || '_' || $nom_vincle; $registrat = !! $__dada( $ref_vincle ); if ( $proces == 'nou_vincle' ) { $_vincle = $__dada( $idprop || '_adr' ) otherwise $__arg( 'adr' ); // No ha d'estar registrat if ( $registrat ) bounce( "Ja n'hi ha un amb aquest nom" ); // Adreça única $adr_registrada = $__dada( $ref_vincle || '_adr' ); if ( !! $adr_registrada ) bounce( "Ja n'hi ha un amb aquesta adreça" ); //... if ( $operacio == 'proposta' ) { $dades[ $nova_idprop || '_adr' ] = $args.adr; $dades[ $nova_idprop || '_nom' ] = $args.nom; } else { $ord_vincle = $__dada( 'ordinal_' || $tipus_vincle ) + 1; $dades[ $ref_vincle ] = $ord_vincle; $dades[ $ref_vincle || '_adr' ] = $_vincle; $dades[ $ref_vincle || '_estat' ] = 'operatiu'; $dades[ $tipus_vincle || '_' || $ord_vincle ] = $ref_vincle; $dades[ 'ordinal_' || $tipus_vincle ] = $ord_vincle; } } if ( $proces == 'nou_estat_vincle' ) { // Ha d'estar registrat if ( ! $registrat ) bounce( "No n'hi ha cap amb aquesta adreça" ); //... if ( $operacio == 'proposta' ) { $dades[ $nova_idprop || '_adr' ] = $args.adr; $dades[ $nova_idprop || '_estat' ] = $args.estat; } else { $nou_estat = $__dada( $idprop || '_estat' ) otherwise $args.estat; $dades[ $ref_vincle || '_estat' ] = $nou_estat; $dades[ $tipus_vincle || '_' || $nom_vincle ] = $nou_estat == 'opereatiu' ? $ref_vincle : '---'; } } } $registre = {}; $registre.dades = $dades; }", "messages": [ { "app": "data", "payload": "{ $registre }" }, { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $args._Registre }", "amount": "{ $__dada( 'Provisio' ) }" } ] } }, { "app": "state", "state": "{ if ( !! $nou_estat ) response[ 'Nou estat ' || $ref_vincle ] = $nou_estat; if ( $args.admin_vincles ) { response[ 'Proposta' ] = $nova_idprop otherwise $ref otherwise 'drecera'; response[ 'operacio' ] = $operacio; } response[ 'proces' ] = $proces; }" } ] } ]
Technical information
Fees:
9,605 bytes
(452 headers, 9153 payload)
Level:2059041
Witnessed level:2059034
Main chain index:2051042
Latest included mc index:2051041
Status:stable/confirmed/final