Unit ID
8k4aXpLZAum+mNJ4nnEPDZL0GggY7RW8oynvXLff8+o=
Received
03.04.2022 13:17:04
Confirmation delay (full node)
7 minutes 51 seconds
Confirmation delay (light node)
9 minutes 11 seconds
Messages
Definition
Definition: [ "autonomous agent", { "doc_url": "https://counterstake.org/bridge-export-factory.json", "init": "{ $export_base_aa = 'RQ7V7KK3EN7T7BO33TKSXXZ6I4HQZFCB'; $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,863 bytes
(451 headers, 4412 payload)
Level:8990146
Witnessed level:8990130
Main chain index:8649108
Latest included mc index:8649107
Status:stable/confirmed/final