[
"autonomous agent",
{
"bounce_fees": {
"base": 10000
},
"init": "{
$asset = var['asset'];
$supply = var['supply'];
$cascading_donations_aa = "
2QVJOY3BRRGWP7IOYL64O5BU3WLUJ4TZ"; // D3B42CWMY3A6I6GHC6KUJJSUKOCBE77U - livenet; ARJGCY7F33YB2HONUYQJ2FH6JK2AUJDM - testnet
}",
"getters": "{
$asset_to_base = ($asset, $amount) => {
$oracle_address = "
F4KHJUCLJKY4JV7M5F754LAJX4EB7M4N";
if ($asset == 'base') {
$amount_in_base = $amount;
} else if ($asset == 'tZgXWTAv+1v1Ow4pMEVFFNlZAobGxMm2kIcr2dVR68c=') { // ETH on testnet (decimals 8)
$btc_to_gbyte = 1 / data_feed[[oracles=$oracle_address, feed_name="GBYTE_BTC", ifnone=false]];
$eth_to_btc = data_feed[[oracles=$oracle_address, feed_name="ETH_BTC", ifnone=false]];
$amount_in_base = floor($amount * $eth_to_btc * $btc_to_gbyte / 10^(9 - 8));
} else if ($asset == '4F9/dJkFPrsOjH/QGWRKLJIXnnGOzq8YFRzrkciQMG8=') { // MATIC on testnet (decimals 5)
$usd_to_gbyte = 1 / data_feed[[oracles=$oracle_address, feed_name="GBYTE_USD", ifnone=false]];
$matic_to_usd = data_feed[[oracles=$oracle_address, feed_name="MATIC_USD", ifnone=false]];
$amount_in_base = floor($amount * $matic_to_usd * $usd_to_gbyte / 10^(9 - 5));
} else {
$amount_in_base = 0;
}
$amount_in_base
};
}",
"messages": {
"cases": [
{
"if": "{ trigger.data.define AND !$asset }",
"messages": [
{
"app": "asset",
"payload": {
"is_private": false,
"is_transferrable": true,
"auto_destroy": false,
"fixed_denominations": false,
"issued_by_definer_only": true,
"cosigned_by_definer": false,
"spender_attested": false
}
},
{
"app": "state",
"state": "{
var['asset'] = response_unit;
var['supply'] = 0;
response['asset'] = response_unit;
}"
}
]
},
{
"if": "{ trigger.data.repo AND trigger.data.donor AND trigger.address == $cascading_donations_aa }",
"init": "{
$donor = trigger.data.donor;
$repo = trigger.data.repo;
$asset_amount = trigger.data.asset_amount;
$donation_asset = trigger.data.asset;
$base_amount = trigger.data.base_amount;
if ($asset_amount AND $asset_amount > 0 AND $donation_asset) {
$asset_amount_in_base = $asset_to_base($donation_asset, $asset_amount);
} else {
$asset_amount_in_base = 0;
}
}",
"messages": [
{
"if": "{ $base_amount }",
"app": "payment",
"payload": {
"asset": "{ $asset }",
"outputs": [
{
"address": "{ $donor }",
"amount": "{ $base_amount + $asset_amount_in_base }"
}
]
}
},
{
"app": "state",
"state": "{
if ($base_amount) {
var['supply'] += $base_amount;
}
if ($asset_amount_in_base > 0) {
var['supply'] += $asset_amount_in_base;
}
}"
}
]
}
]
}
}
]