[
"autonomous agent",
{
"bounce_fees": {
"base": 10000
},
"init": "{
$PERCENT = 0.01;
$SECOND = 1; $MINUTES = 60; $HOUR = 60 * $MINUTES; $DAY = 24 * $HOUR; $WEEK = 7 * $DAY; $YEAR = 364.25 * $DAY;
$AA_NAME = "CODAA_POOL_MANAGER";
$HOW_TO = "I'm made to be used by machine, just review my code to know more";
$AA_ONLY_USER = "";
$CAP = 1e15;
$RETURN_PERCENTAGE = 4* $PERCENT;
$RETURN_PERIOD = 10* $MINUTES;
$DEBUG = true;
if (!$DEBUG)
if ($AA_ONLY_USER !=trigger.address)
bounce ("Not owner!");
$return_time = parse_date(var["next_return_time"]) otherwise timestamp;
}",
"messages": {
"cases": [
{
"if": "{ !!trigger.data.get_return }",
"init": "{
if (timestamp <= $return_time)
bounce ("too early");
}",
"messages": [
{
"app": "payment",
"payload": {
"asset": "{ var["_id"] }",
"outputs": [
{
"address": "{trigger.address}",
"amount": "{ json_parse(var["next_return_value"]) }"
}
]
}
},
{
"app": "state",
"state": "{
var["last_return_time"] = var["next_return_time"];
var["last_return_value"] = var["next_return_value"] ;
var["balance"] -= var["next_return_value"] ;
var["next_return_time"] = $return_time + $RETURN_PERIOD;
var["next_return_value"] = round(var["balance"] * $RETURN_PERCENTAGE);
response["message"] = "return percentage sent.";
}"
}
]
},
{
"init": "{ // Create asset on first run;
if (!!var["asset_id"])
bounce ("already created, use get_return if you are owner");
}",
"messages": [
{
"app": "asset",
"payload": {
"cap": "{ $CAP }",
"is_private": false,
"is_transferrable": true,
"fixed_denominations": false,
"auto_destroy": false,
"cosigned_by_definer": false,
"issued_by_definer_only": true,
"spender_attested": false
}
},
{
"app": "state",
"state": "{
var["asset_id"] = response_unit;
var["creation_time"] = timestamp_to_string(timestamp);
var["last_return_time"] = 0;
var["last_return_value"] = 0;
var["balance"] = $CAP;
var["next_return_time"] = false;
var["next_return_value"] = round($CAP * $RETURN_PERCENTAGE);
response["message"] = "Asset created, first return available";
}"
}
]
}
]
}
}
]