PVNJXOJWJH4DZ6XHCONQHBT56ODDC27G
[
"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
$dades_alta = [ 'isox_000', 'isox_000', 1 ];\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 ];\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[ 'mitjana_index_baules' ] = $nova_mitjana_index_baules;\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
}\r
}\r
\r
if ( $proces == 'nou_estat_isox' ) {\r
if ( ! $__dada( 'isox_' || $args.adr ) )\r
bounce ( 'No hi consta cap isox amb aquesta adreça' );\r
\r
$estat_actual = $__dada( 'isox_' || $args.adr || '_estat' );\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];\r
response[ 'Mitjana índex baules' ] = $nova_mitjana_index_baules;\r
}\r
if ( $adr__ != $__dada( 'isox_000' ) )\r
response[ 'Nombre avals de ' || $adr__ ] = ( $nombre_avals + 1 );\r
}\r
\r
if ( $proces == 'nou_estat_isox' )\r
response[ 'Nou estat isox_' || $args.adr ] = $args.estat;\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
}"
}
]
}
]
Show transactions in assets:
No transactions found, it may be worth changing the filter
Unit ID
Date
From
Direction
To
Amount