B6H2IXGYHDBBNZIVIOAFYPSRJNJKDZKZ
[
"autonomous agent",
{
"init": "{
$nom_AA = 'Accions';
//$_Portal_original = '0000000000';
$_Portal_original = trigger.address; //Hauria de ser fix amb adr darrer Portal
$args = trigger.data;
$adr__ = trigger.initial_address;
$idgeto = trigger.output[[ asset != base ]].asset;
$refgeto = $args.refgeto;
$dades = $args.dades otherwise {};
$__dada = $refval => var[ $args._Registre ][ $refval ];
$_Portal_actual = $__dada( 'portal_actual' ) otherwise $_Portal_original;
if ( $_Portal_actual != trigger.address )
bounce ( 'Portal no reconegut' );
// Funcions
// Si no s'ha lliurat l'argument especificat bota l'accés
$__arg = $arg =>
$args[ $arg ] otherwise
bounce( "Cal proporcionar el valor de: " || $arg );
$__param = $refparam => {
$refgeto == 'estels'?
$__dada( $refparam ) :
$__dada( $refgeto || '_' || $refparam )
};
// Comprova si qt proporcionada cobreix import especificat
$__qtSuficient = $ref, $q =>
$__param( $ref ) > $q ?
bounce( "L'" || $ref || " és de " || $__param( $ref ) )
: true;
// Comprova si adreça consta com a subscrita
$__subscrita = $adr =>
!! $__dada( 'subscripcio_' || $adr || '_en_' || $refgeto ) ?
true :
bounce( "Adreça no subscrita per a " || $refgeto );
// Comprova si la subscripció ha estat renovada per al cicle actual
$__renovada = $adr => {
$cicle_renovat = $__dada( 'renovacio_' || $adr || '_en_' || $refgeto || '_cicle' );
$cicle_renovat >= $__dada( 'cicle_actual' ) ?
true :
bounce( "Subscripció de l'adreça " || $adr || " no renovada en " || $refgeto
|| " per al cicle actual: " || $__dada( 'cicle_actual' ) )
};
// Arguments i Dades
$ACC = $__arg( 'accio' );
$qt = $__arg( 'qt_accio' );
$cicle_actual = $__dada( 'cicle_actual' ) otherwise 1;
$escala_actual = $__dada( 'escala_actual' ) otherwise 1;
// Avís
// Consulta si hi ha cap avís per a adr__
$ref_avis = $refgeto || '_avis_' || $adr__;
$rebot = $__dada( $ref_avis || '_rebot' );
$temps_avis = $__dada( $ref_avis );
$avis_es_actual =
!! $temps_avis AND
$temps_avis + ( $__dada( 'Lapse' ) * 2 ) < timestamp;
if ( $avis_es_actual AND $rebot )
bounce ( $__dada( $ref_avis || '_text' ) );
// Total acumulat
$secc_ref =
$ACC == 'Diposit' OR $ACC == 'Transfer' ?
to_lower( $ACC ) || 's' :
to_lower( $ACC ) || 'ns';
$ref_total = 'total_' || $secc_ref || '_en_' || $refgeto;
$dades[ $ref_total ] = $__dada( $ref_total ) + $qt otherwise $qt;
// Activacio
if ( $ACC == 'Activacio' ) {
$ref_Activacio = 'activacio_' || $adr__ || '_en_' || $refgeto;
if ( !! $__dada( $ref_Activacio ) )
bounce( 'Adreça ja activada' );
$condicions =
$__qtSuficient( 'Import_Activacio', $qt )
AND $__arg( 'nom' );
$dades[ $ref_Activacio ] = timestamp;
$dades[ $ref_Activacio || '_nom' ] = $args.nom;
$dades[ $ref_Activacio || '_qt' ] = $qt;
$dades[ $ref_Activacio || '_cicle' ] = $cicle_actual;
if ( $refgeto == 'estels' )
$dades[ $ref_Activacio || '_escala' ] = $escala_actual;
}
// Subscripcio
if ( $ACC == 'Subscripcio' ) {
$ref_subscripcio = 'subscripcio_' || $adr__ || '_en_' || $refgeto;
$ref_renovacio = 'renovacio_' || $adr__ || '_en_' || $refgeto;
if ( !! $__dada( $ref_subscripcio ) )
bounce( 'Adreça ja subscrita' );
$condicions =
$__qtSuficient( 'Import_Subscripcio', $qt )
AND $__arg( 'nom' )
AND $__arg( 'derivacio' );
$dades[ $ref_subscripcio ] = timestamp;
$dades[ $ref_subscripcio || '_nom' ] = $args.nom;
$dades[ $ref_subscripcio || '_derivacio' ] = $args.derivacio;
$dades[ $ref_subscripcio || '_cicle' ] = $cicle_actual;
$dades[ $ref_renovacio ] = timestamp;
$dades[ $ref_renovacio || '_cicle' ] = $cicle_actual;
}
// Renovacio
if ( $ACC == 'Renovacio' ) {
$ref_renovacio = 'renovacio_' || $adr__ || '_en_' || $refgeto;
$cicle_renovat = $__dada( $ref_renovacio || '_cicle' ) otherwise 1;
if ( $cicle_actual == $cicle_renovat )
bounce( 'Cicle actual ( ' || $cicle_actual || ' ) ja renovat' );
$condicions =
$__subscrita( $adr__ )
AND $__qtSuficient( 'Import_Renovacio', $qt );
$dades[ $ref_renovacio ] = timestamp;
$dades[ $ref_renovacio || '_cicle' ] = $cicle_actual;
}
// Diposit
if ( $ACC == 'Diposit' ) {
$ord_diposit = $__dada( 'ordinal_diposit' ) otherwise 0;
$ref_diposit = 'diposit_' || ( $ord_diposit + 1 );
if ( $qt < $__param( 'Diposit_Minim' ) )
bounce( 'El dipòsit mínim és de ' || $__param( 'Diposit_Minim' ) );
$condicions =
$__subscrita( $adr__ )
AND $__renovada( $adr__ );
$taxa_conversio = $__param( 'Taxa_Conversio' );
$cicles_diposit = $__param( 'Cicles_Diposit' );
$cicle_conversio = $cicle_actual + $cicles_diposit;
$taxa = round( $qt * $taxa_conversio / 100, 0 );
$qt_conversio = $qt - $taxa;
$dades[ 'ordinal_diposit' ] = $ord_diposit + 1;
$dades[ $ref_diposit ] = $qt;
$dades[ $ref_diposit || '_dipositant' ] = $adr__;
$dades[ $ref_diposit || '_cicle' ] = $cicle_actual;
$dades[ $ref_diposit || '_geto_diposit' ] = $refgeto;
$dades[ $ref_diposit || '_data' ] = timestamp;
$dades[ $ref_diposit || '_taxa' ] = $taxa_conversio;
$dades[ $ref_diposit || '_qt_conversio' ] = $qt_conversio;
$dades[ $ref_diposit || '_cicle_conversio' ] = $cicle_conversio;
}
// Contribucio
if ( $ACC == 'Contribucio' ) {
$ord_contribucio = $__dada( 'ordinal_contribucio' ) otherwise 0;
$ref_contribucio = 'contribucio_' || ( $ord_contribucio + 1 );
$escala_act = $__dada( 'escala_actual' );
$interval = timestamp - $__dada( 'data_escala_' || $escala_act );
$dades[ 'ordinal_contribucio' ] = $ord_contribucio + 1;
$dades[ $ref_contribucio ] = $qt;
$dades[ $ref_contribucio || '_contribuidora' ] = $adr__;
$dades[ $ref_contribucio || '_cicle' ] = $cicle_actual;
$dades[ $ref_contribucio || '_escala' ] = $escala_actual;
$dades[ $ref_contribucio || '_interval' ] = $interval;
$dades[ $ref_contribucio || '_data' ] = timestamp;
}
if ( $ACC == 'Transfer' ) {
$derivacio = $args.derivacio;
if ( !! $derivacio ) {
$ref_total_FOP = 'total_FOP_en_' || $refgeto;
$ref_total_derivacions = 'total_derivacions_en_' || $refgeto;
$ref_total_particular = 'total_derivacions_' || $args.receptora || '_en_' || $refgeto;
$dades[ $ref_total_FOP ] = $__dada( $ref_total_FOP ) + $derivacio;
$dades[ $ref_total_derivacions ] = $__dada( $ref_total_derivacions ) + $derivacio;
$dades[ $ref_total_particular ] = $__dada( $ref_total_particular ) + $derivacio;
}
// Gestió Cicles i Escales
$data_cicle_actual = $__dada( 'data_cicle_actual' ) otherwise timestamp;
$salt_cicle = timestamp - $data_cicle_actual > $__dada( 'Interval' );
$nou_cicle =
! $__dada( 'cicle_actual' ) ?
1 :
$salt_cicle ?
$cicle_actual + 1 :
$cicle_actual;
$total_FOP = $__dada( 'total_FOP_en_estels' ) otherwise 0;
$nova_escala = length( $total_FOP );
$salt_escala = $nova_escala > $escala_actual;
if ( !! $salt_cicle OR ! $__dada( 'cicle_actual' ) ) {
$dades[ 'cicle_actual' ] = $nou_cicle;
$dades[ 'data_cicle_' || $nou_cicle ] = timestamp;
$dades[ 'escala_cicle_' || $nou_cicle ] = $escala_actual;
}
if ( !! $salt_escala OR ! $__dada( 'cicle_actual' ) ) {
$dades[ 'escala_actual' ] = $nova_escala;
$dades[ 'data_escala_' || $nova_escala ] = timestamp;
$dades[ 'cicle_escala_' || $nova_escala ] = $cicle_actual;
}
}
if ( $ACC != 'Transfer' ) {
$ref_total_FOP = 'total_FOP_en_' || $refgeto;
$total_FOP_actual = $__dada( $ref_total_FOP ) otherwise 0;
$dades[ $ref_total_FOP ] = $total_FOP_actual + $qt;
}
$ref_total_unitat = 'total_en_' || $refgeto;
$total_unitat = $__dada( $ref_total_unitat ) otherwise 0;
$dades[ $ref_total_unitat ] = $total_unitat + $qt;
$qt_registre =
balance[ base ] > 20000 ?
balance[ base ] - 10000 :
3000;
$args.dades = $dades;
}",
"messages": [
{
"app": "data",
"payload": "{ $args }"
},
{
"app": "payment",
"payload": {
"asset": "base",
"outputs": [
{
"address": "{ $args._Registre }",
"amount": "{ $qt_registre }"
}
]
}
},
{
"app": "state",
"state": "{
// Avis
//if ( $_avis AND $avis_es_actual )
if ( $avis_es_actual )
response[ 'AVÍS !' ] = $__dada( $ref_avis || '_text' );
// Transfer
if ( !! $derivacio ) {
response[ 'Receptora deriva a FOP'] = $derivacio || ' ' || $refgeto;
response[ 'Total Derivacions en ' || $refgeto ] =
$__dada( $ref_total_derivacions ) + $derivacio;
response[ 'Total Derivacions de ' || $args.receptora || '_en_' || $refgeto ] =
$__dada( $ref_total_particular ) + $derivacio;
}
// Activació
if ( $ACC == 'Activacio' )
response[ 'Activació' ] =
"Amb nom: " || $args.nom || " de l'adr " || $adr__ || " per operar amb " || $refgeto;
// Subscripció
if ( $ACC == 'Subscripcio' )
response[ 'Subscripció' ] =
"Amb nom: " || $args.nom || " de l'adr " || $adr__ ||
" per al cicle " || $cicle_actual || " per operar amb " || $refgeto;
// Renovació
if ( $ACC == 'Renovacio' )
response[ 'Renovació' ] =
"De la subscripció per al cicle " || $cicle_actual
|| " de l'adr " || $adr__ || " en " || $refgeto;
// Dipòsit
if ( $ACC == 'Diposit' ) {
response[ 'Dipòsit' ] = $ref_diposit;
response[ 'Dipositant' ] = $adr__;
response[ 'Qt dipòsit' ] = $qt;
response[ 'Qt conversió' ] = $qt_conversio;
response[ 'Taxa' ] = $taxa_conversio;
response[ 'Data dipòsit' ] = timestamp_to_string( timestamp, 'date' );
response[ 'Hora dipòsit' ] = timestamp_to_string( timestamp, 'time' );
response[ 'Cicle dipòsit' ] = $cicle_actual;
response[ 'Cicle conversió' ] = $cicle_actual + $cicle_conversio;
}
// Contribució
if ( $ACC == 'Contribucio' ) {
response[ 'Contribució' ] = $ref_contribucio;
response[ 'Contribuïdora' ] = $adr__;
response[ 'Quantitat' ] = $qt;
response[ 'Escala actual' ] = $nova_escala;
}
// Info general
response[ 'Cicle actual' ] =
$salt_cicle ? 'Nou cicle: ' || $nou_cicle : $cicle_actual;
response[ 'Escala actual' ] =
$salt_escala ? 'Nova Escala: ' || $nova_escala : $escala_actual;
response[ 'Acció realitzada' ] = $ACC;
response[ 'Romanent Accions' ] = balance[ base ] || ' bytes';
response[ 'Transferits a Registre' ] = $qt_registre || ' bytes';
}"
}
]
}
]
- MCI: 1899830
- Not bounced
- Response unit:
- Response: {
"responseVars": {
"Cicle actual": 1,
"Escala actual": 2,
"Acció realitzada": "Transfer",
"Romanent Accions": "8129 bytes",
"Transferits a Registre": "3000 bytes"
}
}
- MCI: 1899823
- Not bounced
- Response unit:
- Response: {
"responseVars": {
"Cicle actual": 1,
"Escala actual": 2,
"Acció realitzada": "Transfer",
"Romanent Accions": "7185 bytes",
"Transferits a Registre": "3000 bytes"
}
}
- MCI: 1899819
- Not bounced
- Response unit:
- Response: {
"responseVars": {
"Cicle actual": 1,
"Escala actual": "Nova Escala: 2",
"Acció realitzada": "Transfer",
"Romanent Accions": "6367 bytes",
"Transferits a Registre": "3000 bytes"
}
}
- MCI: 1899784
- Not bounced
- Response unit:
- Response: {
"responseVars": {
"Activació": "Amb nom: Deri de l'adr JUSMFQHMBASVPCZTZW5ULYOWVK3DHJMK per operar amb estels",
"Cicle actual": 1,
"Escala actual": 1,
"Acció realitzada": "Activacio",
"Romanent Accions": "5725 bytes",
"Transferits a Registre": "3000 bytes"
}
}
- MCI: 1899747
- Not bounced
- Response unit:
- Response: {
"responseVars": {
"Activació": "Amb nom: Testori de l'adr XD7FVUM442NPIIMLRIT2FYWJEDQ4ILLJ per operar amb estels",
"Cicle actual": 1,
"Escala actual": 1,
"Acció realitzada": "Activacio",
"Romanent Accions": "5000 bytes",
"Transferits a Registre": "3000 bytes"
}
}
Show transactions in assets:
No transactions found, it may be worth changing the filter
Unit ID
Date
From
Direction
To
Amount
05.03.2021 19:08:13
B6H2IXGYHDBBNZIVIOAFYPSRJNJKDZKZ
out
05.03.2021 19:08:13
in
B6H2IXGYHDBBNZIVIOAFYPSRJNJKDZKZ
05.03.2021 19:07:39
B6H2IXGYHDBBNZIVIOAFYPSRJNJKDZKZ
out
05.03.2021 19:07:39
in
B6H2IXGYHDBBNZIVIOAFYPSRJNJKDZKZ
05.03.2021 19:06:45
B6H2IXGYHDBBNZIVIOAFYPSRJNJKDZKZ
out