IBPZHH5MMPHSTRVMAL472VIOMA5PMU6T
[
"autonomous agent",
{
"getters": "{
$is_unlocked = () => timestamp_to_string(timestamp, 'date') >= params.unlock_date;
}",
"messages": {
"cases": [
{
"if": "{ trigger.data.withdraw }",
"init": "{
require(params.owner, "owner not set in params");
require(params.unlock_date, "unlock_date not set in params");
// Nur der Owner darf abheben
require(trigger.address == params.owner, "only owner can withdraw");
// Datum prüfen
require($is_unlocked(), "balance unlocks on " || params.unlock_date);
// Asset frei wählbar, Standard: base
$asset = trigger.data.asset OTHERWISE 'base';
// Betrag: leer = alles
$requested = trigger.data.amount OTHERWISE '';
if (!$requested) {
$bal = balance[$asset];
require($bal > 0, "nothing to withdraw");
$amount_to_send = $bal;
} else {
require(is_valid_amount($requested), "invalid amount");
$amount_to_send = $requested;
require(balance[$asset] >= $amount_to_send, "insufficient balance");
}
}",
"messages": [
{
"app": "payment",
"payload": {
"asset": "{ $asset }",
"outputs": [
{
"address": "{ params.owner }",
"amount": "{ $amount_to_send }"
}
]
}
},
{
"app": "state",
"state": "{
response['message'] = 'withdrawn';
response['asset'] = $asset;
response['amount'] = $amount_to_send;
}"
}
]
},
{
"messages": [
{
"app": "state",
"state": "{ response['message'] = 'deposit accepted'; }"
}
]
}
]
}
}
]
AAs based on this template Show transactions in assets:
No transactions found, it may be worth changing the filter
Unit ID
Date
From
Direction
To
Amount