Unit ID
PijZXmXtBQDFoCoC6+0qTLBJB1Axcj51xhxtXr6gnhM=
Received
27.06.2021 00:42:33
Confirmation delay (full node)
1 minute 58 seconds
Confirmation delay (light node)
2 minutes 55 seconds
Messages
Definition
Definition: [ "autonomous agent", { "doc_url": "https://counterstake.org/bridge-export-factory.json", "init": "{ $export_base_aa = 'DAN6VZNKNZBKJP7GYJST5FMONZOY4FNT'; $governance_base_aa = 'HLNWXGGHGXWMZN27W2722MNJCHH2IVAO'; }", "messages": { "cases": [ { "init": "{ if (!trigger.data.asset) bounce("no asset"); if (!asset[trigger.data.asset].exists) bounce("no such asset: " || trigger.data.asset); if (!is_integer(trigger.data.asset_decimals) OR trigger.data.asset_decimals < 0 OR trigger.data.asset_decimals > 15) bounce("bad asset_decimals" || trigger.data.asset_decimals); if (!trigger.data.foreign_network) bounce("no foreign network"); if (!trigger.data.foreign_asset) bounce("no foreign asset"); // if we deploy a new factory in the future, it should check the old factory's registry too if (var['aa_' || trigger.data.foreign_network || '_' || trigger.data.foreign_asset]) bounce('export AA already exists for this foreign network and asset'); $params = { asset: trigger.data.asset, asset_decimals: trigger.data.asset_decimals, foreign_network: trigger.data.foreign_network, foreign_asset: trigger.data.foreign_asset, }; // ratio of the initial stake to the amount claimed if (trigger.data.ratio){ if (typeof(trigger.data.ratio) != 'number' OR trigger.data.ratio <= 0) bounce("bad ratio: " || trigger.data.ratio); $params.ratio = trigger.data.ratio; } // challenging periods in hours foreach(['challenging_periods', 'large_challenging_periods'], 2, $p => { $value = trigger.data[$p]; if (exists($value)) { $params[$p] = $governance_base_aa.$get_challenging_periods($value); } }); // the counterstake must be that larger than the current stake if (trigger.data.counterstake_coef){ if (typeof(trigger.data.counterstake_coef) != 'number' OR trigger.data.counterstake_coef <= 1) bounce("bad counterstake_coef: " || trigger.data.counterstake_coef); $params.counterstake_coef = trigger.data.counterstake_coef; } // minimum amount of stake - to make sure that even small claims are properly monitored and challenged if necessary if (trigger.data.min_stake){ if (!is_integer(trigger.data.min_stake) OR trigger.data.min_stake < 0) bounce("bad min_stake: " || trigger.data.min_stake); $params.min_stake = trigger.data.min_stake; } // the repatriated tx must be old enough before it is allowed to claim it if (trigger.data.min_tx_age){ if (!is_integer(trigger.data.min_tx_age) OR trigger.data.min_tx_age < 0) bounce("bad min_tx_age: " || trigger.data.min_tx_age); $params.min_tx_age = trigger.data.min_tx_age; } // transfers that are deemed large and trigger a different schedule of challenging periods if (trigger.data.large_threshold){ if (!is_integer(trigger.data.large_threshold) OR trigger.data.large_threshold <= 0) bounce("bad large_threshold: " || trigger.data.large_threshold); $params.large_threshold = trigger.data.large_threshold; } // governance AA params foreach(['governance_challenging_period', 'freeze_period'], 2, $p => { $value = trigger.data[$p]; if (exists($value)) { if (!is_integer($value) OR $value <= 0) bounce("bad " || $p); $params[$p] = $value; } }); $export_aa = [ 'autonomous agent', { base_aa: $export_base_aa, params: $params } ]; $export_aa_address = chash160($export_aa); }", "messages": [ { "app": "payment", "payload": { "asset": "base", "outputs": [ { "address": "{ $export_aa_address }", "amount": 4000 } ] } }, { "app": "data", "payload": { "define": 1, "factory": "{this_address}" } }, { "app": "definition", "payload": { "definition": "{$export_aa}" } }, { "app": "state", "state": "{ var['export_' || $export_aa_address] = $params; var['aa_' || trigger.data.foreign_network || '_' || trigger.data.foreign_asset] = $export_aa_address; response['address'] = $export_aa_address; }" } ] } ] } } ]
Technical information
Fees:
4,864 bytes
(452 headers, 4412 payload)
Level:2053927
Witnessed level:2053917
Main chain index:2045934
Latest included mc index:2045932
Status:stable/confirmed/final