@deeeed/metamask-harness 0.34.0 → 0.34.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/adapters/manifest.json +0 -8
- package/adapters/mobile/bridge-runtime/cdp-bridge.cjs +236 -3
- package/adapters/mobile/bridge-runtime/console-forwarder.cjs +22 -1
- package/adapters/mobile/bridge-runtime/lib/target-discovery.cjs +22 -15
- package/adapters/mobile/bridge-runtime/lib/ws-client.cjs +18 -0
- package/adapters/mobile/launch-metro.cjs +6 -4
- package/adapters/mobile/open-device.sh +170 -19
- package/adapters/mobile/start-metro.sh +165 -93
- package/adapters/mobile/stop-metro.sh +1 -0
- package/dist/adapters/mobile/prepare.js +1 -4
- package/dist/adapters/mobile/video-recorder.js +12 -10
- package/dist/adapters.js +134 -6
- package/dist/commands/launch/index.js +9 -0
- package/dist/commands/launch/mobile.js +17 -3
- package/dist/live-adapter-contract.js +10 -3
- package/dist/recipe-security.js +2 -0
- package/dist/runner.js +53 -8
- package/dist/runtime-context.js +1 -0
- package/library/actions/mobile/perps/measure_homepage_visible.mjs +4 -0
- package/library/actions/mobile/perps/performance-capture.mjs +579 -111
- package/library/actions/mobile/perps/perps.mjs +221 -38
- package/library/actions/mobile/perps/prepare_local_snapshot_endpoint.mjs +58 -0
- package/library/actions/mobile/platform/bridge.mjs +102 -8
- package/library/actions/mobile/wallet/ensure_unlocked.mjs +35 -8
- package/library/manifests/mobile.action-manifest.json +243 -511
- package/library/recipes/mobile/perps/performance.homepage.android-cold-disk-cache.recipe.json +20 -2
- package/library/recipes/mobile/perps/performance.homepage.android-cold-no-cache.recipe.json +2 -0
- package/library/recipes/mobile/perps/performance.homepage.cold-position-sample.recipe.json +120 -0
- package/library/recipes/mobile/perps/performance.homepage.ios-background-reconnect.recipe.json +7 -6
- package/library/recipes/mobile/perps/performance.homepage.ios-cold-no-cache.recipe.json +5 -5
- package/package.json +1 -1
- package/adapters/mobile/metro-config.cjs +0 -93
|
@@ -77,9 +77,7 @@
|
|
|
77
77
|
"type": "string"
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
|
-
"required": [
|
|
81
|
-
"path"
|
|
82
|
-
],
|
|
80
|
+
"required": ["path"],
|
|
83
81
|
"additionalProperties": false
|
|
84
82
|
}
|
|
85
83
|
},
|
|
@@ -123,13 +121,7 @@
|
|
|
123
121
|
"array"
|
|
124
122
|
],
|
|
125
123
|
"items": {
|
|
126
|
-
"type": [
|
|
127
|
-
"string",
|
|
128
|
-
"number",
|
|
129
|
-
"integer",
|
|
130
|
-
"boolean",
|
|
131
|
-
"object"
|
|
132
|
-
]
|
|
124
|
+
"type": ["string", "number", "integer", "boolean", "object"]
|
|
133
125
|
}
|
|
134
126
|
},
|
|
135
127
|
"all": {
|
|
@@ -154,10 +146,7 @@
|
|
|
154
146
|
"additionalProperties": false
|
|
155
147
|
}
|
|
156
148
|
},
|
|
157
|
-
"required": [
|
|
158
|
-
"path",
|
|
159
|
-
"assert"
|
|
160
|
-
],
|
|
149
|
+
"required": ["path", "assert"],
|
|
161
150
|
"additionalProperties": false
|
|
162
151
|
}
|
|
163
152
|
},
|
|
@@ -237,13 +226,7 @@
|
|
|
237
226
|
"array"
|
|
238
227
|
],
|
|
239
228
|
"items": {
|
|
240
|
-
"type": [
|
|
241
|
-
"string",
|
|
242
|
-
"number",
|
|
243
|
-
"integer",
|
|
244
|
-
"boolean",
|
|
245
|
-
"object"
|
|
246
|
-
]
|
|
229
|
+
"type": ["string", "number", "integer", "boolean", "object"]
|
|
247
230
|
}
|
|
248
231
|
},
|
|
249
232
|
"all": {
|
|
@@ -292,15 +275,10 @@
|
|
|
292
275
|
},
|
|
293
276
|
"scope": {
|
|
294
277
|
"type": "string",
|
|
295
|
-
"enum": [
|
|
296
|
-
"run",
|
|
297
|
-
"file"
|
|
298
|
-
]
|
|
278
|
+
"enum": ["run", "file"]
|
|
299
279
|
}
|
|
300
280
|
},
|
|
301
|
-
"required": [
|
|
302
|
-
"path"
|
|
303
|
-
],
|
|
281
|
+
"required": ["path"],
|
|
304
282
|
"additionalProperties": false
|
|
305
283
|
}
|
|
306
284
|
},
|
|
@@ -327,10 +305,7 @@
|
|
|
327
305
|
"artifacts": {
|
|
328
306
|
"type": "array",
|
|
329
307
|
"items": {
|
|
330
|
-
"type": [
|
|
331
|
-
"string",
|
|
332
|
-
"object"
|
|
333
|
-
],
|
|
308
|
+
"type": ["string", "object"],
|
|
334
309
|
"properties": {
|
|
335
310
|
"path": {
|
|
336
311
|
"type": "string"
|
|
@@ -364,9 +339,7 @@
|
|
|
364
339
|
}
|
|
365
340
|
}
|
|
366
341
|
},
|
|
367
|
-
"required": [
|
|
368
|
-
"artifacts"
|
|
369
|
-
],
|
|
342
|
+
"required": ["artifacts"],
|
|
370
343
|
"additionalProperties": false
|
|
371
344
|
}
|
|
372
345
|
},
|
|
@@ -414,15 +387,10 @@
|
|
|
414
387
|
"type": "string"
|
|
415
388
|
}
|
|
416
389
|
},
|
|
417
|
-
"required": [
|
|
418
|
-
"value",
|
|
419
|
-
"equals"
|
|
420
|
-
],
|
|
390
|
+
"required": ["value", "equals"],
|
|
421
391
|
"additionalProperties": false
|
|
422
392
|
},
|
|
423
|
-
"result_cases": [
|
|
424
|
-
"match"
|
|
425
|
-
]
|
|
393
|
+
"result_cases": ["match"]
|
|
426
394
|
},
|
|
427
395
|
"ui.navigate": {
|
|
428
396
|
"description": "Navigate by semantic page intent through the adapter-owned current route mapping, then verify the live destination. Route drift fails loudly; raw route/screen params must be verified against the current app first.",
|
|
@@ -431,11 +399,7 @@
|
|
|
431
399
|
"properties": {
|
|
432
400
|
"page": {
|
|
433
401
|
"type": "string",
|
|
434
|
-
"enum": [
|
|
435
|
-
"home",
|
|
436
|
-
"perps",
|
|
437
|
-
"perps-market"
|
|
438
|
-
]
|
|
402
|
+
"enum": ["home", "perps", "perps-market"]
|
|
439
403
|
},
|
|
440
404
|
"market": {
|
|
441
405
|
"type": "string"
|
|
@@ -559,9 +523,7 @@
|
|
|
559
523
|
"type": "boolean"
|
|
560
524
|
}
|
|
561
525
|
},
|
|
562
|
-
"required": [
|
|
563
|
-
"key"
|
|
564
|
-
],
|
|
526
|
+
"required": ["key"],
|
|
565
527
|
"additionalProperties": false
|
|
566
528
|
},
|
|
567
529
|
"examples": [
|
|
@@ -656,6 +618,22 @@
|
|
|
656
618
|
"offset": {
|
|
657
619
|
"type": "number"
|
|
658
620
|
},
|
|
621
|
+
"measure_from_test_id": {
|
|
622
|
+
"type": "string",
|
|
623
|
+
"description": "Visible start target sampled inside the app immediately before scrolling. Requires exactly one measurement target."
|
|
624
|
+
},
|
|
625
|
+
"measure_target_test_id": {
|
|
626
|
+
"type": "string",
|
|
627
|
+
"description": "Visible testID whose first in-app observation ends the measured scroll transition. Mutually exclusive with measure_target_text."
|
|
628
|
+
},
|
|
629
|
+
"measure_target_text": {
|
|
630
|
+
"type": "string",
|
|
631
|
+
"description": "Visible text whose first in-app observation ends the measured scroll transition. Mutually exclusive with measure_target_test_id."
|
|
632
|
+
},
|
|
633
|
+
"measure_required_present_test_id": {
|
|
634
|
+
"type": "string",
|
|
635
|
+
"description": "Optional React-tree testID that must be present at the same observation as the visible measurement target."
|
|
636
|
+
},
|
|
659
637
|
"scroll_into_view": {
|
|
660
638
|
"type": "boolean"
|
|
661
639
|
},
|
|
@@ -879,13 +857,7 @@
|
|
|
879
857
|
},
|
|
880
858
|
"expected": {
|
|
881
859
|
"type": "string",
|
|
882
|
-
"enum": [
|
|
883
|
-
"present",
|
|
884
|
-
"visible",
|
|
885
|
-
"absent",
|
|
886
|
-
"hidden",
|
|
887
|
-
"not_present"
|
|
888
|
-
]
|
|
860
|
+
"enum": ["present", "visible", "absent", "hidden", "not_present"]
|
|
889
861
|
},
|
|
890
862
|
"visible": {
|
|
891
863
|
"type": "boolean"
|
|
@@ -922,9 +894,7 @@
|
|
|
922
894
|
},
|
|
923
895
|
"ui.locators": {
|
|
924
896
|
"description": "List ranked, copy-pasteable ui.press targets from the current ui.visible observation. Prefer high-confidence test IDs when updating durable recipe source after exploratory interaction.",
|
|
925
|
-
"execution_capabilities": [
|
|
926
|
-
"host-read-export"
|
|
927
|
-
],
|
|
897
|
+
"execution_capabilities": ["host-read-export"],
|
|
928
898
|
"schema": {
|
|
929
899
|
"type": "object",
|
|
930
900
|
"properties": {},
|
|
@@ -1045,12 +1015,12 @@
|
|
|
1045
1015
|
"runtime_ready_timeout_ms": {
|
|
1046
1016
|
"type": "integer"
|
|
1047
1017
|
},
|
|
1018
|
+
"require_process_continuity": {
|
|
1019
|
+
"type": "boolean"
|
|
1020
|
+
},
|
|
1048
1021
|
"platform": {
|
|
1049
1022
|
"type": "string",
|
|
1050
|
-
"enum": [
|
|
1051
|
-
"ios",
|
|
1052
|
-
"android"
|
|
1053
|
-
]
|
|
1023
|
+
"enum": ["ios", "android"]
|
|
1054
1024
|
},
|
|
1055
1025
|
"watcher_port": {
|
|
1056
1026
|
"type": "number"
|
|
@@ -1174,11 +1144,7 @@
|
|
|
1174
1144
|
},
|
|
1175
1145
|
"status": {
|
|
1176
1146
|
"type": "string",
|
|
1177
|
-
"enum": [
|
|
1178
|
-
"running",
|
|
1179
|
-
"pass",
|
|
1180
|
-
"fail"
|
|
1181
|
-
]
|
|
1147
|
+
"enum": ["running", "pass", "fail"]
|
|
1182
1148
|
},
|
|
1183
1149
|
"node_id": {
|
|
1184
1150
|
"type": "string"
|
|
@@ -1285,9 +1251,7 @@
|
|
|
1285
1251
|
"next": "done"
|
|
1286
1252
|
}
|
|
1287
1253
|
],
|
|
1288
|
-
"execution_capabilities": [
|
|
1289
|
-
"app-mutation"
|
|
1290
|
-
]
|
|
1254
|
+
"execution_capabilities": ["app-mutation"]
|
|
1291
1255
|
},
|
|
1292
1256
|
"metamask.wallet.ensure_unlocked": {
|
|
1293
1257
|
"description": "Unlock the wallet with the fixture password when it is currently locked.",
|
|
@@ -1310,9 +1274,7 @@
|
|
|
1310
1274
|
"next": "done"
|
|
1311
1275
|
}
|
|
1312
1276
|
],
|
|
1313
|
-
"execution_capabilities": [
|
|
1314
|
-
"app-mutation"
|
|
1315
|
-
]
|
|
1277
|
+
"execution_capabilities": ["app-mutation"]
|
|
1316
1278
|
},
|
|
1317
1279
|
"metamask.wallet.select_account": {
|
|
1318
1280
|
"description": "mobile action to select a wallet account by address, id, or display name.",
|
|
@@ -1353,9 +1315,7 @@
|
|
|
1353
1315
|
"next": "done"
|
|
1354
1316
|
}
|
|
1355
1317
|
],
|
|
1356
|
-
"execution_capabilities": [
|
|
1357
|
-
"app-mutation"
|
|
1358
|
-
]
|
|
1318
|
+
"execution_capabilities": ["app-mutation"]
|
|
1359
1319
|
},
|
|
1360
1320
|
"metamask.wallet.list_accounts": {
|
|
1361
1321
|
"description": "List redacted wallet accounts and identify the selected account without mutating the app.",
|
|
@@ -1365,12 +1325,7 @@
|
|
|
1365
1325
|
"scope": {
|
|
1366
1326
|
"type": "string",
|
|
1367
1327
|
"default": "named",
|
|
1368
|
-
"enum": [
|
|
1369
|
-
"selected",
|
|
1370
|
-
"named",
|
|
1371
|
-
"evm",
|
|
1372
|
-
"all"
|
|
1373
|
-
],
|
|
1328
|
+
"enum": ["selected", "named", "evm", "all"],
|
|
1374
1329
|
"description": "Account scope. Defaults to named human-visible accounts; use selected for the active account, evm for EVM accounts, or all for the full inventory."
|
|
1375
1330
|
}
|
|
1376
1331
|
},
|
|
@@ -1430,10 +1385,7 @@
|
|
|
1430
1385
|
},
|
|
1431
1386
|
"mode": {
|
|
1432
1387
|
"type": "string",
|
|
1433
|
-
"enum": [
|
|
1434
|
-
"matching",
|
|
1435
|
-
"all"
|
|
1436
|
-
],
|
|
1388
|
+
"enum": ["matching", "all"],
|
|
1437
1389
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
1438
1390
|
},
|
|
1439
1391
|
"selector": {
|
|
@@ -1441,10 +1393,7 @@
|
|
|
1441
1393
|
"properties": {
|
|
1442
1394
|
"mode": {
|
|
1443
1395
|
"type": "string",
|
|
1444
|
-
"enum": [
|
|
1445
|
-
"matching",
|
|
1446
|
-
"all"
|
|
1447
|
-
]
|
|
1396
|
+
"enum": ["matching", "all"]
|
|
1448
1397
|
},
|
|
1449
1398
|
"market": {
|
|
1450
1399
|
"type": "string"
|
|
@@ -1466,20 +1415,14 @@
|
|
|
1466
1415
|
},
|
|
1467
1416
|
"side": {
|
|
1468
1417
|
"type": "string",
|
|
1469
|
-
"enum": [
|
|
1470
|
-
"long",
|
|
1471
|
-
"short"
|
|
1472
|
-
]
|
|
1418
|
+
"enum": ["long", "short"]
|
|
1473
1419
|
}
|
|
1474
1420
|
},
|
|
1475
1421
|
"additionalProperties": false
|
|
1476
1422
|
},
|
|
1477
1423
|
"side": {
|
|
1478
1424
|
"type": "string",
|
|
1479
|
-
"enum": [
|
|
1480
|
-
"long",
|
|
1481
|
-
"short"
|
|
1482
|
-
],
|
|
1425
|
+
"enum": ["long", "short"],
|
|
1483
1426
|
"description": "Optional position/order side filter."
|
|
1484
1427
|
},
|
|
1485
1428
|
"timeout_ms": {
|
|
@@ -1527,10 +1470,7 @@
|
|
|
1527
1470
|
},
|
|
1528
1471
|
"mode": {
|
|
1529
1472
|
"type": "string",
|
|
1530
|
-
"enum": [
|
|
1531
|
-
"matching",
|
|
1532
|
-
"all"
|
|
1533
|
-
],
|
|
1473
|
+
"enum": ["matching", "all"],
|
|
1534
1474
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
1535
1475
|
},
|
|
1536
1476
|
"selector": {
|
|
@@ -1538,10 +1478,7 @@
|
|
|
1538
1478
|
"properties": {
|
|
1539
1479
|
"mode": {
|
|
1540
1480
|
"type": "string",
|
|
1541
|
-
"enum": [
|
|
1542
|
-
"matching",
|
|
1543
|
-
"all"
|
|
1544
|
-
]
|
|
1481
|
+
"enum": ["matching", "all"]
|
|
1545
1482
|
},
|
|
1546
1483
|
"market": {
|
|
1547
1484
|
"type": "string"
|
|
@@ -1563,20 +1500,14 @@
|
|
|
1563
1500
|
},
|
|
1564
1501
|
"side": {
|
|
1565
1502
|
"type": "string",
|
|
1566
|
-
"enum": [
|
|
1567
|
-
"long",
|
|
1568
|
-
"short"
|
|
1569
|
-
]
|
|
1503
|
+
"enum": ["long", "short"]
|
|
1570
1504
|
}
|
|
1571
1505
|
},
|
|
1572
1506
|
"additionalProperties": false
|
|
1573
1507
|
},
|
|
1574
1508
|
"side": {
|
|
1575
1509
|
"type": "string",
|
|
1576
|
-
"enum": [
|
|
1577
|
-
"long",
|
|
1578
|
-
"short"
|
|
1579
|
-
],
|
|
1510
|
+
"enum": ["long", "short"],
|
|
1580
1511
|
"description": "Optional position/order side filter."
|
|
1581
1512
|
},
|
|
1582
1513
|
"timeout_ms": {
|
|
@@ -1624,10 +1555,7 @@
|
|
|
1624
1555
|
},
|
|
1625
1556
|
"mode": {
|
|
1626
1557
|
"type": "string",
|
|
1627
|
-
"enum": [
|
|
1628
|
-
"matching",
|
|
1629
|
-
"all"
|
|
1630
|
-
],
|
|
1558
|
+
"enum": ["matching", "all"],
|
|
1631
1559
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
1632
1560
|
},
|
|
1633
1561
|
"selector": {
|
|
@@ -1635,10 +1563,7 @@
|
|
|
1635
1563
|
"properties": {
|
|
1636
1564
|
"mode": {
|
|
1637
1565
|
"type": "string",
|
|
1638
|
-
"enum": [
|
|
1639
|
-
"matching",
|
|
1640
|
-
"all"
|
|
1641
|
-
]
|
|
1566
|
+
"enum": ["matching", "all"]
|
|
1642
1567
|
},
|
|
1643
1568
|
"market": {
|
|
1644
1569
|
"type": "string"
|
|
@@ -1660,20 +1585,14 @@
|
|
|
1660
1585
|
},
|
|
1661
1586
|
"side": {
|
|
1662
1587
|
"type": "string",
|
|
1663
|
-
"enum": [
|
|
1664
|
-
"long",
|
|
1665
|
-
"short"
|
|
1666
|
-
]
|
|
1588
|
+
"enum": ["long", "short"]
|
|
1667
1589
|
}
|
|
1668
1590
|
},
|
|
1669
1591
|
"additionalProperties": false
|
|
1670
1592
|
},
|
|
1671
1593
|
"side": {
|
|
1672
1594
|
"type": "string",
|
|
1673
|
-
"enum": [
|
|
1674
|
-
"long",
|
|
1675
|
-
"short"
|
|
1676
|
-
],
|
|
1595
|
+
"enum": ["long", "short"],
|
|
1677
1596
|
"description": "Optional position/order side filter."
|
|
1678
1597
|
},
|
|
1679
1598
|
"timeout_ms": {
|
|
@@ -1691,18 +1610,12 @@
|
|
|
1691
1610
|
},
|
|
1692
1611
|
{
|
|
1693
1612
|
"action": "metamask.perps.close_positions",
|
|
1694
|
-
"markets": [
|
|
1695
|
-
"BTC",
|
|
1696
|
-
"ETH"
|
|
1697
|
-
],
|
|
1613
|
+
"markets": ["BTC", "ETH"],
|
|
1698
1614
|
"intent": "Close selected Perps positions before continuing",
|
|
1699
1615
|
"next": "done"
|
|
1700
1616
|
}
|
|
1701
1617
|
],
|
|
1702
|
-
"execution_capabilities": [
|
|
1703
|
-
"app-mutation",
|
|
1704
|
-
"external-mutation"
|
|
1705
|
-
]
|
|
1618
|
+
"execution_capabilities": ["app-mutation", "external-mutation"]
|
|
1706
1619
|
},
|
|
1707
1620
|
"metamask.perps.close_orders": {
|
|
1708
1621
|
"description": "mobile Default to testnet for Perps mutations; mainnet is read-only unless explicitly requested. Cancel selected live Perps open orders. Use selector/mode params to cancel matching symbols or all orders.",
|
|
@@ -1733,10 +1646,7 @@
|
|
|
1733
1646
|
},
|
|
1734
1647
|
"mode": {
|
|
1735
1648
|
"type": "string",
|
|
1736
|
-
"enum": [
|
|
1737
|
-
"matching",
|
|
1738
|
-
"all"
|
|
1739
|
-
],
|
|
1649
|
+
"enum": ["matching", "all"],
|
|
1740
1650
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
1741
1651
|
},
|
|
1742
1652
|
"selector": {
|
|
@@ -1744,10 +1654,7 @@
|
|
|
1744
1654
|
"properties": {
|
|
1745
1655
|
"mode": {
|
|
1746
1656
|
"type": "string",
|
|
1747
|
-
"enum": [
|
|
1748
|
-
"matching",
|
|
1749
|
-
"all"
|
|
1750
|
-
]
|
|
1657
|
+
"enum": ["matching", "all"]
|
|
1751
1658
|
},
|
|
1752
1659
|
"market": {
|
|
1753
1660
|
"type": "string"
|
|
@@ -1769,20 +1676,14 @@
|
|
|
1769
1676
|
},
|
|
1770
1677
|
"side": {
|
|
1771
1678
|
"type": "string",
|
|
1772
|
-
"enum": [
|
|
1773
|
-
"long",
|
|
1774
|
-
"short"
|
|
1775
|
-
]
|
|
1679
|
+
"enum": ["long", "short"]
|
|
1776
1680
|
}
|
|
1777
1681
|
},
|
|
1778
1682
|
"additionalProperties": false
|
|
1779
1683
|
},
|
|
1780
1684
|
"side": {
|
|
1781
1685
|
"type": "string",
|
|
1782
|
-
"enum": [
|
|
1783
|
-
"long",
|
|
1784
|
-
"short"
|
|
1785
|
-
],
|
|
1686
|
+
"enum": ["long", "short"],
|
|
1786
1687
|
"description": "Optional position/order side filter."
|
|
1787
1688
|
},
|
|
1788
1689
|
"timeout_ms": {
|
|
@@ -1805,10 +1706,7 @@
|
|
|
1805
1706
|
"next": "done"
|
|
1806
1707
|
}
|
|
1807
1708
|
],
|
|
1808
|
-
"execution_capabilities": [
|
|
1809
|
-
"app-mutation",
|
|
1810
|
-
"external-mutation"
|
|
1811
|
-
]
|
|
1709
|
+
"execution_capabilities": ["app-mutation", "external-mutation"]
|
|
1812
1710
|
},
|
|
1813
1711
|
"metamask.perps.place_order": {
|
|
1814
1712
|
"description": "mobile Place a Perps order through a supported app/API path. Default to testnet; mainnet order placement requires an explicit user request.",
|
|
@@ -1839,10 +1737,7 @@
|
|
|
1839
1737
|
},
|
|
1840
1738
|
"mode": {
|
|
1841
1739
|
"type": "string",
|
|
1842
|
-
"enum": [
|
|
1843
|
-
"matching",
|
|
1844
|
-
"all"
|
|
1845
|
-
],
|
|
1740
|
+
"enum": ["matching", "all"],
|
|
1846
1741
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
1847
1742
|
},
|
|
1848
1743
|
"selector": {
|
|
@@ -1850,10 +1745,7 @@
|
|
|
1850
1745
|
"properties": {
|
|
1851
1746
|
"mode": {
|
|
1852
1747
|
"type": "string",
|
|
1853
|
-
"enum": [
|
|
1854
|
-
"matching",
|
|
1855
|
-
"all"
|
|
1856
|
-
]
|
|
1748
|
+
"enum": ["matching", "all"]
|
|
1857
1749
|
},
|
|
1858
1750
|
"market": {
|
|
1859
1751
|
"type": "string"
|
|
@@ -1875,37 +1767,25 @@
|
|
|
1875
1767
|
},
|
|
1876
1768
|
"side": {
|
|
1877
1769
|
"type": "string",
|
|
1878
|
-
"enum": [
|
|
1879
|
-
"long",
|
|
1880
|
-
"short"
|
|
1881
|
-
]
|
|
1770
|
+
"enum": ["long", "short"]
|
|
1882
1771
|
}
|
|
1883
1772
|
},
|
|
1884
1773
|
"additionalProperties": false
|
|
1885
1774
|
},
|
|
1886
1775
|
"side": {
|
|
1887
1776
|
"type": "string",
|
|
1888
|
-
"enum": [
|
|
1889
|
-
"long",
|
|
1890
|
-
"short"
|
|
1891
|
-
],
|
|
1777
|
+
"enum": ["long", "short"],
|
|
1892
1778
|
"description": "Required order direction."
|
|
1893
1779
|
},
|
|
1894
1780
|
"timeout_ms": {
|
|
1895
1781
|
"type": "number"
|
|
1896
1782
|
},
|
|
1897
1783
|
"amount": {
|
|
1898
|
-
"type": [
|
|
1899
|
-
"string",
|
|
1900
|
-
"number"
|
|
1901
|
-
],
|
|
1784
|
+
"type": ["string", "number"],
|
|
1902
1785
|
"description": "USD amount/notional alias."
|
|
1903
1786
|
},
|
|
1904
1787
|
"notional": {
|
|
1905
|
-
"type": [
|
|
1906
|
-
"string",
|
|
1907
|
-
"number"
|
|
1908
|
-
],
|
|
1788
|
+
"type": ["string", "number"],
|
|
1909
1789
|
"description": "USD notional alias."
|
|
1910
1790
|
},
|
|
1911
1791
|
"size": {
|
|
@@ -1930,10 +1810,7 @@
|
|
|
1930
1810
|
"next": "done"
|
|
1931
1811
|
}
|
|
1932
1812
|
],
|
|
1933
|
-
"execution_capabilities": [
|
|
1934
|
-
"app-mutation",
|
|
1935
|
-
"external-mutation"
|
|
1936
|
-
]
|
|
1813
|
+
"execution_capabilities": ["app-mutation", "external-mutation"]
|
|
1937
1814
|
},
|
|
1938
1815
|
"metamask.perps.assert_positions": {
|
|
1939
1816
|
"description": "mobile Assert live Perps positions are present or absent for an explicit market selection or mode=all.",
|
|
@@ -1964,10 +1841,7 @@
|
|
|
1964
1841
|
},
|
|
1965
1842
|
"mode": {
|
|
1966
1843
|
"type": "string",
|
|
1967
|
-
"enum": [
|
|
1968
|
-
"matching",
|
|
1969
|
-
"all"
|
|
1970
|
-
],
|
|
1844
|
+
"enum": ["matching", "all"],
|
|
1971
1845
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
1972
1846
|
},
|
|
1973
1847
|
"selector": {
|
|
@@ -1975,10 +1849,7 @@
|
|
|
1975
1849
|
"properties": {
|
|
1976
1850
|
"mode": {
|
|
1977
1851
|
"type": "string",
|
|
1978
|
-
"enum": [
|
|
1979
|
-
"matching",
|
|
1980
|
-
"all"
|
|
1981
|
-
]
|
|
1852
|
+
"enum": ["matching", "all"]
|
|
1982
1853
|
},
|
|
1983
1854
|
"market": {
|
|
1984
1855
|
"type": "string"
|
|
@@ -2000,20 +1871,14 @@
|
|
|
2000
1871
|
},
|
|
2001
1872
|
"side": {
|
|
2002
1873
|
"type": "string",
|
|
2003
|
-
"enum": [
|
|
2004
|
-
"long",
|
|
2005
|
-
"short"
|
|
2006
|
-
]
|
|
1874
|
+
"enum": ["long", "short"]
|
|
2007
1875
|
}
|
|
2008
1876
|
},
|
|
2009
1877
|
"additionalProperties": false
|
|
2010
1878
|
},
|
|
2011
1879
|
"side": {
|
|
2012
1880
|
"type": "string",
|
|
2013
|
-
"enum": [
|
|
2014
|
-
"long",
|
|
2015
|
-
"short"
|
|
2016
|
-
],
|
|
1881
|
+
"enum": ["long", "short"],
|
|
2017
1882
|
"description": "Optional position/order side filter."
|
|
2018
1883
|
},
|
|
2019
1884
|
"timeout_ms": {
|
|
@@ -2021,19 +1886,11 @@
|
|
|
2021
1886
|
},
|
|
2022
1887
|
"state": {
|
|
2023
1888
|
"type": "string",
|
|
2024
|
-
"enum": [
|
|
2025
|
-
"none",
|
|
2026
|
-
"absent",
|
|
2027
|
-
"closed",
|
|
2028
|
-
"open",
|
|
2029
|
-
"present"
|
|
2030
|
-
],
|
|
1889
|
+
"enum": ["none", "absent", "closed", "open", "present"],
|
|
2031
1890
|
"description": "Desired/expected selected collection state."
|
|
2032
1891
|
}
|
|
2033
1892
|
},
|
|
2034
|
-
"required": [
|
|
2035
|
-
"state"
|
|
2036
|
-
],
|
|
1893
|
+
"required": ["state"],
|
|
2037
1894
|
"additionalProperties": false
|
|
2038
1895
|
},
|
|
2039
1896
|
"examples": [
|
|
@@ -2076,10 +1933,7 @@
|
|
|
2076
1933
|
},
|
|
2077
1934
|
"mode": {
|
|
2078
1935
|
"type": "string",
|
|
2079
|
-
"enum": [
|
|
2080
|
-
"matching",
|
|
2081
|
-
"all"
|
|
2082
|
-
],
|
|
1936
|
+
"enum": ["matching", "all"],
|
|
2083
1937
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
2084
1938
|
},
|
|
2085
1939
|
"selector": {
|
|
@@ -2087,10 +1941,7 @@
|
|
|
2087
1941
|
"properties": {
|
|
2088
1942
|
"mode": {
|
|
2089
1943
|
"type": "string",
|
|
2090
|
-
"enum": [
|
|
2091
|
-
"matching",
|
|
2092
|
-
"all"
|
|
2093
|
-
]
|
|
1944
|
+
"enum": ["matching", "all"]
|
|
2094
1945
|
},
|
|
2095
1946
|
"market": {
|
|
2096
1947
|
"type": "string"
|
|
@@ -2112,20 +1963,14 @@
|
|
|
2112
1963
|
},
|
|
2113
1964
|
"side": {
|
|
2114
1965
|
"type": "string",
|
|
2115
|
-
"enum": [
|
|
2116
|
-
"long",
|
|
2117
|
-
"short"
|
|
2118
|
-
]
|
|
1966
|
+
"enum": ["long", "short"]
|
|
2119
1967
|
}
|
|
2120
1968
|
},
|
|
2121
1969
|
"additionalProperties": false
|
|
2122
1970
|
},
|
|
2123
1971
|
"side": {
|
|
2124
1972
|
"type": "string",
|
|
2125
|
-
"enum": [
|
|
2126
|
-
"long",
|
|
2127
|
-
"short"
|
|
2128
|
-
],
|
|
1973
|
+
"enum": ["long", "short"],
|
|
2129
1974
|
"description": "Optional position/order side filter."
|
|
2130
1975
|
},
|
|
2131
1976
|
"timeout_ms": {
|
|
@@ -2133,19 +1978,11 @@
|
|
|
2133
1978
|
},
|
|
2134
1979
|
"state": {
|
|
2135
1980
|
"type": "string",
|
|
2136
|
-
"enum": [
|
|
2137
|
-
"none",
|
|
2138
|
-
"absent",
|
|
2139
|
-
"closed",
|
|
2140
|
-
"open",
|
|
2141
|
-
"present"
|
|
2142
|
-
],
|
|
1981
|
+
"enum": ["none", "absent", "closed", "open", "present"],
|
|
2143
1982
|
"description": "Desired/expected selected collection state."
|
|
2144
1983
|
}
|
|
2145
1984
|
},
|
|
2146
|
-
"required": [
|
|
2147
|
-
"state"
|
|
2148
|
-
],
|
|
1985
|
+
"required": ["state"],
|
|
2149
1986
|
"additionalProperties": false
|
|
2150
1987
|
},
|
|
2151
1988
|
"examples": [
|
|
@@ -2188,10 +2025,7 @@
|
|
|
2188
2025
|
},
|
|
2189
2026
|
"mode": {
|
|
2190
2027
|
"type": "string",
|
|
2191
|
-
"enum": [
|
|
2192
|
-
"matching",
|
|
2193
|
-
"all"
|
|
2194
|
-
],
|
|
2028
|
+
"enum": ["matching", "all"],
|
|
2195
2029
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
2196
2030
|
},
|
|
2197
2031
|
"selector": {
|
|
@@ -2199,10 +2033,7 @@
|
|
|
2199
2033
|
"properties": {
|
|
2200
2034
|
"mode": {
|
|
2201
2035
|
"type": "string",
|
|
2202
|
-
"enum": [
|
|
2203
|
-
"matching",
|
|
2204
|
-
"all"
|
|
2205
|
-
]
|
|
2036
|
+
"enum": ["matching", "all"]
|
|
2206
2037
|
},
|
|
2207
2038
|
"market": {
|
|
2208
2039
|
"type": "string"
|
|
@@ -2224,54 +2055,34 @@
|
|
|
2224
2055
|
},
|
|
2225
2056
|
"side": {
|
|
2226
2057
|
"type": "string",
|
|
2227
|
-
"enum": [
|
|
2228
|
-
"long",
|
|
2229
|
-
"short"
|
|
2230
|
-
]
|
|
2058
|
+
"enum": ["long", "short"]
|
|
2231
2059
|
}
|
|
2232
2060
|
},
|
|
2233
2061
|
"additionalProperties": false
|
|
2234
2062
|
},
|
|
2235
2063
|
"side": {
|
|
2236
2064
|
"type": "string",
|
|
2237
|
-
"enum": [
|
|
2238
|
-
"long",
|
|
2239
|
-
"short"
|
|
2240
|
-
],
|
|
2065
|
+
"enum": ["long", "short"],
|
|
2241
2066
|
"description": "Required when state=open/present; otherwise filters selected positions."
|
|
2242
2067
|
},
|
|
2243
2068
|
"timeout_ms": {
|
|
2244
2069
|
"type": "number"
|
|
2245
2070
|
},
|
|
2246
2071
|
"amount": {
|
|
2247
|
-
"type": [
|
|
2248
|
-
"string",
|
|
2249
|
-
"number"
|
|
2250
|
-
],
|
|
2072
|
+
"type": ["string", "number"],
|
|
2251
2073
|
"description": "Explicit USD notional used only when creating a missing open position. Alias: notional."
|
|
2252
2074
|
},
|
|
2253
2075
|
"notional": {
|
|
2254
|
-
"type": [
|
|
2255
|
-
"string",
|
|
2256
|
-
"number"
|
|
2257
|
-
],
|
|
2076
|
+
"type": ["string", "number"],
|
|
2258
2077
|
"description": "Alias for amount."
|
|
2259
2078
|
},
|
|
2260
2079
|
"state": {
|
|
2261
2080
|
"type": "string",
|
|
2262
|
-
"enum": [
|
|
2263
|
-
"none",
|
|
2264
|
-
"absent",
|
|
2265
|
-
"closed",
|
|
2266
|
-
"open",
|
|
2267
|
-
"present"
|
|
2268
|
-
],
|
|
2081
|
+
"enum": ["none", "absent", "closed", "open", "present"],
|
|
2269
2082
|
"description": "Desired/expected selected collection state."
|
|
2270
2083
|
}
|
|
2271
2084
|
},
|
|
2272
|
-
"required": [
|
|
2273
|
-
"state"
|
|
2274
|
-
],
|
|
2085
|
+
"required": ["state"],
|
|
2275
2086
|
"additionalProperties": false
|
|
2276
2087
|
},
|
|
2277
2088
|
"examples": [
|
|
@@ -2299,10 +2110,7 @@
|
|
|
2299
2110
|
"next": "done"
|
|
2300
2111
|
}
|
|
2301
2112
|
],
|
|
2302
|
-
"execution_capabilities": [
|
|
2303
|
-
"app-mutation",
|
|
2304
|
-
"external-mutation"
|
|
2305
|
-
]
|
|
2113
|
+
"execution_capabilities": ["app-mutation", "external-mutation"]
|
|
2306
2114
|
},
|
|
2307
2115
|
"metamask.perps.ensure_orders": {
|
|
2308
2116
|
"description": "mobile Converge selected testnet orders to open or absent, then independently assert the final state. Creating an open state uses a resting limit order.",
|
|
@@ -2333,10 +2141,7 @@
|
|
|
2333
2141
|
},
|
|
2334
2142
|
"mode": {
|
|
2335
2143
|
"type": "string",
|
|
2336
|
-
"enum": [
|
|
2337
|
-
"matching",
|
|
2338
|
-
"all"
|
|
2339
|
-
],
|
|
2144
|
+
"enum": ["matching", "all"],
|
|
2340
2145
|
"description": "matching selects requested symbols; all selects every live item returned by the product."
|
|
2341
2146
|
},
|
|
2342
2147
|
"selector": {
|
|
@@ -2344,10 +2149,7 @@
|
|
|
2344
2149
|
"properties": {
|
|
2345
2150
|
"mode": {
|
|
2346
2151
|
"type": "string",
|
|
2347
|
-
"enum": [
|
|
2348
|
-
"matching",
|
|
2349
|
-
"all"
|
|
2350
|
-
]
|
|
2152
|
+
"enum": ["matching", "all"]
|
|
2351
2153
|
},
|
|
2352
2154
|
"market": {
|
|
2353
2155
|
"type": "string"
|
|
@@ -2369,37 +2171,25 @@
|
|
|
2369
2171
|
},
|
|
2370
2172
|
"side": {
|
|
2371
2173
|
"type": "string",
|
|
2372
|
-
"enum": [
|
|
2373
|
-
"long",
|
|
2374
|
-
"short"
|
|
2375
|
-
]
|
|
2174
|
+
"enum": ["long", "short"]
|
|
2376
2175
|
}
|
|
2377
2176
|
},
|
|
2378
2177
|
"additionalProperties": false
|
|
2379
2178
|
},
|
|
2380
2179
|
"side": {
|
|
2381
2180
|
"type": "string",
|
|
2382
|
-
"enum": [
|
|
2383
|
-
"long",
|
|
2384
|
-
"short"
|
|
2385
|
-
],
|
|
2181
|
+
"enum": ["long", "short"],
|
|
2386
2182
|
"description": "Required when state=open/present; otherwise filters selected orders."
|
|
2387
2183
|
},
|
|
2388
2184
|
"timeout_ms": {
|
|
2389
2185
|
"type": "number"
|
|
2390
2186
|
},
|
|
2391
2187
|
"amount": {
|
|
2392
|
-
"type": [
|
|
2393
|
-
"string",
|
|
2394
|
-
"number"
|
|
2395
|
-
],
|
|
2188
|
+
"type": ["string", "number"],
|
|
2396
2189
|
"description": "Explicit USD notional used only when creating a missing open order. Alias: notional."
|
|
2397
2190
|
},
|
|
2398
2191
|
"notional": {
|
|
2399
|
-
"type": [
|
|
2400
|
-
"string",
|
|
2401
|
-
"number"
|
|
2402
|
-
],
|
|
2192
|
+
"type": ["string", "number"],
|
|
2403
2193
|
"description": "Alias for amount."
|
|
2404
2194
|
},
|
|
2405
2195
|
"leverage": {
|
|
@@ -2409,19 +2199,11 @@
|
|
|
2409
2199
|
},
|
|
2410
2200
|
"state": {
|
|
2411
2201
|
"type": "string",
|
|
2412
|
-
"enum": [
|
|
2413
|
-
"none",
|
|
2414
|
-
"absent",
|
|
2415
|
-
"closed",
|
|
2416
|
-
"open",
|
|
2417
|
-
"present"
|
|
2418
|
-
],
|
|
2202
|
+
"enum": ["none", "absent", "closed", "open", "present"],
|
|
2419
2203
|
"description": "Desired/expected selected collection state."
|
|
2420
2204
|
}
|
|
2421
2205
|
},
|
|
2422
|
-
"required": [
|
|
2423
|
-
"state"
|
|
2424
|
-
],
|
|
2206
|
+
"required": ["state"],
|
|
2425
2207
|
"additionalProperties": false
|
|
2426
2208
|
},
|
|
2427
2209
|
"examples": [
|
|
@@ -2443,13 +2225,10 @@
|
|
|
2443
2225
|
"next": "done"
|
|
2444
2226
|
}
|
|
2445
2227
|
],
|
|
2446
|
-
"execution_capabilities": [
|
|
2447
|
-
"app-mutation",
|
|
2448
|
-
"external-mutation"
|
|
2449
|
-
]
|
|
2228
|
+
"execution_capabilities": ["app-mutation", "external-mutation"]
|
|
2450
2229
|
},
|
|
2451
2230
|
"metamask.perps.capture_performance": {
|
|
2452
|
-
"description": "Capture
|
|
2231
|
+
"description": "Capture run-window [HomepagePerf] and optional [StartupPerf] DevLogger records with parsed Perps on-device validation summaries.",
|
|
2453
2232
|
"schema": {
|
|
2454
2233
|
"type": "object",
|
|
2455
2234
|
"properties": {
|
|
@@ -2472,12 +2251,25 @@
|
|
|
2472
2251
|
"type": "string"
|
|
2473
2252
|
}
|
|
2474
2253
|
},
|
|
2254
|
+
"required_startup_stages": {
|
|
2255
|
+
"type": "array",
|
|
2256
|
+
"items": {
|
|
2257
|
+
"type": "string"
|
|
2258
|
+
}
|
|
2259
|
+
},
|
|
2475
2260
|
"required_lifecycles": {
|
|
2476
2261
|
"type": "array",
|
|
2477
2262
|
"items": {
|
|
2478
2263
|
"type": "string"
|
|
2479
2264
|
}
|
|
2480
2265
|
},
|
|
2266
|
+
"required_fresh_lifecycles": {
|
|
2267
|
+
"type": "array",
|
|
2268
|
+
"description": "Require a demand in each named lifecycle to reach a correlated fresh visible frame; prevents another lifecycle's socket records from satisfying the proof.",
|
|
2269
|
+
"items": {
|
|
2270
|
+
"type": "string"
|
|
2271
|
+
}
|
|
2272
|
+
},
|
|
2481
2273
|
"required_sources": {
|
|
2482
2274
|
"type": "array",
|
|
2483
2275
|
"items": {
|
|
@@ -2489,6 +2281,30 @@
|
|
|
2489
2281
|
"items": {
|
|
2490
2282
|
"type": "string"
|
|
2491
2283
|
}
|
|
2284
|
+
},
|
|
2285
|
+
"require_cache_before_fresh": {
|
|
2286
|
+
"type": "boolean"
|
|
2287
|
+
},
|
|
2288
|
+
"first_fresh_delivery_requirements": {
|
|
2289
|
+
"type": "array",
|
|
2290
|
+
"items": {
|
|
2291
|
+
"type": "object",
|
|
2292
|
+
"properties": {
|
|
2293
|
+
"stream": { "type": "string" },
|
|
2294
|
+
"lifecycle": { "type": "string" },
|
|
2295
|
+
"subscriber_throttle_ms": { "type": "number", "minimum": 0 },
|
|
2296
|
+
"max_socket_to_subscriber_ms": {
|
|
2297
|
+
"type": "number",
|
|
2298
|
+
"minimum": 0
|
|
2299
|
+
}
|
|
2300
|
+
},
|
|
2301
|
+
"required": [
|
|
2302
|
+
"stream",
|
|
2303
|
+
"subscriber_throttle_ms",
|
|
2304
|
+
"max_socket_to_subscriber_ms"
|
|
2305
|
+
],
|
|
2306
|
+
"additionalProperties": false
|
|
2307
|
+
}
|
|
2492
2308
|
}
|
|
2493
2309
|
},
|
|
2494
2310
|
"required": ["phase"],
|
|
@@ -2511,6 +2327,59 @@
|
|
|
2511
2327
|
],
|
|
2512
2328
|
"execution_capabilities": []
|
|
2513
2329
|
},
|
|
2330
|
+
"metamask.perps.measure_homepage_visible": {
|
|
2331
|
+
"description": "Confirm the existing wallet is usable, then measure Wallet-ready to visible Perps content in one direct-CDP action so recipe-runner gaps are excluded.",
|
|
2332
|
+
"schema": {
|
|
2333
|
+
"type": "object",
|
|
2334
|
+
"properties": {
|
|
2335
|
+
"target_timeout_ms": { "type": "number", "minimum": 1 },
|
|
2336
|
+
"unlock_timeout_ms": { "type": "number", "minimum": 1 },
|
|
2337
|
+
"stable_unlocked_ms": { "type": "number", "minimum": 0 },
|
|
2338
|
+
"scroll_test_id": { "type": "string" },
|
|
2339
|
+
"from_test_id": { "type": "string" },
|
|
2340
|
+
"offset": { "type": "number" },
|
|
2341
|
+
"poll_interval_ms": { "type": "number", "minimum": 16 },
|
|
2342
|
+
"visible_event_stage": { "type": "string" },
|
|
2343
|
+
"visible_event_grace_ms": { "type": "number", "minimum": 0 },
|
|
2344
|
+
"animated": { "type": "boolean" },
|
|
2345
|
+
"target_test_id": { "type": "string" },
|
|
2346
|
+
"target_text": { "type": "string" },
|
|
2347
|
+
"required_present_test_id": { "type": "string" },
|
|
2348
|
+
"timeout_ms": { "type": "number", "minimum": 1 }
|
|
2349
|
+
},
|
|
2350
|
+
"additionalProperties": false
|
|
2351
|
+
},
|
|
2352
|
+
"examples": [
|
|
2353
|
+
{
|
|
2354
|
+
"action": "metamask.perps.measure_homepage_visible",
|
|
2355
|
+
"target_test_id": "homepage-section-title-perps",
|
|
2356
|
+
"required_present_test_id": "homepage-perps-positions",
|
|
2357
|
+
"intent": "Measure Wallet-ready to meaningful Perps content without runner timing",
|
|
2358
|
+
"next": "done"
|
|
2359
|
+
}
|
|
2360
|
+
],
|
|
2361
|
+
"execution_capabilities": ["app-mutation"]
|
|
2362
|
+
},
|
|
2363
|
+
"metamask.perps.prepare_local_snapshot_endpoint": {
|
|
2364
|
+
"description": "Prepare the configurable local Terminal snapshot endpoint for physical Android with adb reverse; iOS Simulator requires no mapping.",
|
|
2365
|
+
"schema": {
|
|
2366
|
+
"type": "object",
|
|
2367
|
+
"properties": {
|
|
2368
|
+
"port": { "type": "number", "minimum": 1 }
|
|
2369
|
+
},
|
|
2370
|
+
"required": ["port"],
|
|
2371
|
+
"additionalProperties": false
|
|
2372
|
+
},
|
|
2373
|
+
"examples": [
|
|
2374
|
+
{
|
|
2375
|
+
"action": "metamask.perps.prepare_local_snapshot_endpoint",
|
|
2376
|
+
"port": 3000,
|
|
2377
|
+
"intent": "Make the configured local Terminal snapshot endpoint reachable",
|
|
2378
|
+
"next": "done"
|
|
2379
|
+
}
|
|
2380
|
+
],
|
|
2381
|
+
"execution_capabilities": ["app-mutation"]
|
|
2382
|
+
},
|
|
2514
2383
|
"metamask.perps.clear_performance_caches": {
|
|
2515
2384
|
"description": "mobile Clear only persisted Perps market/user performance caches in the development app before a cold-no-cache validation run.",
|
|
2516
2385
|
"schema": {
|
|
@@ -2525,9 +2394,7 @@
|
|
|
2525
2394
|
"next": "restart-app"
|
|
2526
2395
|
}
|
|
2527
2396
|
],
|
|
2528
|
-
"execution_capabilities": [
|
|
2529
|
-
"app-mutation"
|
|
2530
|
-
]
|
|
2397
|
+
"execution_capabilities": ["app-mutation"]
|
|
2531
2398
|
},
|
|
2532
2399
|
"metamask.perps.start_state": {
|
|
2533
2400
|
"description": "mobile Default to testnet for Perps mutations; mainnet is read-only unless explicitly requested. Recommended configurable Perps start state that first restores the fixture-backed unlocked wallet, then composes reusable domain operations before the proof window.",
|
|
@@ -2538,6 +2405,16 @@
|
|
|
2538
2405
|
"type": "string",
|
|
2539
2406
|
"description": "Optional profile such as clean_market_testnet, open_position_testnet, open_order_testnet, or provider_mainnet_readonly."
|
|
2540
2407
|
},
|
|
2408
|
+
"target_timeout_ms": {
|
|
2409
|
+
"type": "number",
|
|
2410
|
+
"minimum": 1,
|
|
2411
|
+
"description": "Bound for the pinned Mobile bridge target to become available before Perps state setup."
|
|
2412
|
+
},
|
|
2413
|
+
"unlock_timeout_ms": {
|
|
2414
|
+
"type": "number",
|
|
2415
|
+
"minimum": 1,
|
|
2416
|
+
"description": "Bound for the fixture-backed wallet unlock within Perps state setup."
|
|
2417
|
+
},
|
|
2541
2418
|
"account": {
|
|
2542
2419
|
"type": "string"
|
|
2543
2420
|
},
|
|
@@ -2547,10 +2424,7 @@
|
|
|
2547
2424
|
},
|
|
2548
2425
|
"network": {
|
|
2549
2426
|
"type": "string",
|
|
2550
|
-
"enum": [
|
|
2551
|
-
"testnet",
|
|
2552
|
-
"mainnet"
|
|
2553
|
-
]
|
|
2427
|
+
"enum": ["testnet", "mainnet"]
|
|
2554
2428
|
},
|
|
2555
2429
|
"market": {
|
|
2556
2430
|
"type": "string"
|
|
@@ -2573,26 +2447,14 @@
|
|
|
2573
2447
|
"page": {
|
|
2574
2448
|
"description": "Initial Perps page target; omit it to use the profile or market default.",
|
|
2575
2449
|
"type": "string",
|
|
2576
|
-
"enum": [
|
|
2577
|
-
"home",
|
|
2578
|
-
"perps",
|
|
2579
|
-
"perps_home",
|
|
2580
|
-
"market",
|
|
2581
|
-
"market_details"
|
|
2582
|
-
]
|
|
2450
|
+
"enum": ["home", "perps", "perps_home", "market", "market_details"]
|
|
2583
2451
|
},
|
|
2584
2452
|
"positions": {
|
|
2585
|
-
"type": [
|
|
2586
|
-
"object",
|
|
2587
|
-
"boolean"
|
|
2588
|
-
],
|
|
2453
|
+
"type": ["object", "boolean"],
|
|
2589
2454
|
"properties": {
|
|
2590
2455
|
"mode": {
|
|
2591
2456
|
"type": "string",
|
|
2592
|
-
"enum": [
|
|
2593
|
-
"matching",
|
|
2594
|
-
"all"
|
|
2595
|
-
]
|
|
2457
|
+
"enum": ["matching", "all"]
|
|
2596
2458
|
},
|
|
2597
2459
|
"market": {
|
|
2598
2460
|
"type": "string"
|
|
@@ -2614,38 +2476,20 @@
|
|
|
2614
2476
|
},
|
|
2615
2477
|
"side": {
|
|
2616
2478
|
"type": "string",
|
|
2617
|
-
"enum": [
|
|
2618
|
-
"long",
|
|
2619
|
-
"short"
|
|
2620
|
-
]
|
|
2479
|
+
"enum": ["long", "short"]
|
|
2621
2480
|
},
|
|
2622
2481
|
"state": {
|
|
2623
2482
|
"type": "string",
|
|
2624
|
-
"enum": [
|
|
2625
|
-
"none",
|
|
2626
|
-
"closed",
|
|
2627
|
-
"absent",
|
|
2628
|
-
"open",
|
|
2629
|
-
"present"
|
|
2630
|
-
]
|
|
2483
|
+
"enum": ["none", "closed", "absent", "open", "present"]
|
|
2631
2484
|
},
|
|
2632
2485
|
"amount": {
|
|
2633
|
-
"type": [
|
|
2634
|
-
"string",
|
|
2635
|
-
"number"
|
|
2636
|
-
]
|
|
2486
|
+
"type": ["string", "number"]
|
|
2637
2487
|
},
|
|
2638
2488
|
"notional": {
|
|
2639
|
-
"type": [
|
|
2640
|
-
"string",
|
|
2641
|
-
"number"
|
|
2642
|
-
]
|
|
2489
|
+
"type": ["string", "number"]
|
|
2643
2490
|
},
|
|
2644
2491
|
"size": {
|
|
2645
|
-
"type": [
|
|
2646
|
-
"string",
|
|
2647
|
-
"number"
|
|
2648
|
-
]
|
|
2492
|
+
"type": ["string", "number"]
|
|
2649
2493
|
},
|
|
2650
2494
|
"leverage": {
|
|
2651
2495
|
"type": "number"
|
|
@@ -2693,17 +2537,11 @@
|
|
|
2693
2537
|
"additionalProperties": false
|
|
2694
2538
|
},
|
|
2695
2539
|
"orders": {
|
|
2696
|
-
"type": [
|
|
2697
|
-
"object",
|
|
2698
|
-
"boolean"
|
|
2699
|
-
],
|
|
2540
|
+
"type": ["object", "boolean"],
|
|
2700
2541
|
"properties": {
|
|
2701
2542
|
"mode": {
|
|
2702
2543
|
"type": "string",
|
|
2703
|
-
"enum": [
|
|
2704
|
-
"matching",
|
|
2705
|
-
"all"
|
|
2706
|
-
]
|
|
2544
|
+
"enum": ["matching", "all"]
|
|
2707
2545
|
},
|
|
2708
2546
|
"market": {
|
|
2709
2547
|
"type": "string"
|
|
@@ -2725,38 +2563,20 @@
|
|
|
2725
2563
|
},
|
|
2726
2564
|
"side": {
|
|
2727
2565
|
"type": "string",
|
|
2728
|
-
"enum": [
|
|
2729
|
-
"long",
|
|
2730
|
-
"short"
|
|
2731
|
-
]
|
|
2566
|
+
"enum": ["long", "short"]
|
|
2732
2567
|
},
|
|
2733
2568
|
"state": {
|
|
2734
2569
|
"type": "string",
|
|
2735
|
-
"enum": [
|
|
2736
|
-
"none",
|
|
2737
|
-
"closed",
|
|
2738
|
-
"absent",
|
|
2739
|
-
"open",
|
|
2740
|
-
"present"
|
|
2741
|
-
]
|
|
2570
|
+
"enum": ["none", "closed", "absent", "open", "present"]
|
|
2742
2571
|
},
|
|
2743
2572
|
"amount": {
|
|
2744
|
-
"type": [
|
|
2745
|
-
"string",
|
|
2746
|
-
"number"
|
|
2747
|
-
]
|
|
2573
|
+
"type": ["string", "number"]
|
|
2748
2574
|
},
|
|
2749
2575
|
"notional": {
|
|
2750
|
-
"type": [
|
|
2751
|
-
"string",
|
|
2752
|
-
"number"
|
|
2753
|
-
]
|
|
2576
|
+
"type": ["string", "number"]
|
|
2754
2577
|
},
|
|
2755
2578
|
"size": {
|
|
2756
|
-
"type": [
|
|
2757
|
-
"string",
|
|
2758
|
-
"number"
|
|
2759
|
-
]
|
|
2579
|
+
"type": ["string", "number"]
|
|
2760
2580
|
},
|
|
2761
2581
|
"leverage": {
|
|
2762
2582
|
"type": "number"
|
|
@@ -2813,10 +2633,7 @@
|
|
|
2813
2633
|
},
|
|
2814
2634
|
"side": {
|
|
2815
2635
|
"type": "string",
|
|
2816
|
-
"enum": [
|
|
2817
|
-
"long",
|
|
2818
|
-
"short"
|
|
2819
|
-
]
|
|
2636
|
+
"enum": ["long", "short"]
|
|
2820
2637
|
},
|
|
2821
2638
|
"account_name": {
|
|
2822
2639
|
"type": "string"
|
|
@@ -2841,10 +2658,7 @@
|
|
|
2841
2658
|
},
|
|
2842
2659
|
"mode": {
|
|
2843
2660
|
"type": "string",
|
|
2844
|
-
"enum": [
|
|
2845
|
-
"matching",
|
|
2846
|
-
"all"
|
|
2847
|
-
]
|
|
2661
|
+
"enum": ["matching", "all"]
|
|
2848
2662
|
}
|
|
2849
2663
|
},
|
|
2850
2664
|
"additionalProperties": false
|
|
@@ -2879,10 +2693,7 @@
|
|
|
2879
2693
|
"next": "done"
|
|
2880
2694
|
}
|
|
2881
2695
|
],
|
|
2882
|
-
"execution_capabilities": [
|
|
2883
|
-
"app-mutation",
|
|
2884
|
-
"external-mutation"
|
|
2885
|
-
]
|
|
2696
|
+
"execution_capabilities": ["app-mutation", "external-mutation"]
|
|
2886
2697
|
},
|
|
2887
2698
|
"metamask.perps.teardown_state": {
|
|
2888
2699
|
"description": "mobile Recommended configurable Perps teardown state that restores the selected environment after proof.",
|
|
@@ -2902,10 +2713,7 @@
|
|
|
2902
2713
|
},
|
|
2903
2714
|
"network": {
|
|
2904
2715
|
"type": "string",
|
|
2905
|
-
"enum": [
|
|
2906
|
-
"testnet",
|
|
2907
|
-
"mainnet"
|
|
2908
|
-
]
|
|
2716
|
+
"enum": ["testnet", "mainnet"]
|
|
2909
2717
|
},
|
|
2910
2718
|
"market": {
|
|
2911
2719
|
"type": "string"
|
|
@@ -2927,10 +2735,7 @@
|
|
|
2927
2735
|
},
|
|
2928
2736
|
"page": {
|
|
2929
2737
|
"description": "Final page target; false skips navigation for teardown.",
|
|
2930
|
-
"type": [
|
|
2931
|
-
"string",
|
|
2932
|
-
"boolean"
|
|
2933
|
-
],
|
|
2738
|
+
"type": ["string", "boolean"],
|
|
2934
2739
|
"enum": [
|
|
2935
2740
|
"home",
|
|
2936
2741
|
"perps",
|
|
@@ -2941,17 +2746,11 @@
|
|
|
2941
2746
|
]
|
|
2942
2747
|
},
|
|
2943
2748
|
"positions": {
|
|
2944
|
-
"type": [
|
|
2945
|
-
"object",
|
|
2946
|
-
"boolean"
|
|
2947
|
-
],
|
|
2749
|
+
"type": ["object", "boolean"],
|
|
2948
2750
|
"properties": {
|
|
2949
2751
|
"mode": {
|
|
2950
2752
|
"type": "string",
|
|
2951
|
-
"enum": [
|
|
2952
|
-
"matching",
|
|
2953
|
-
"all"
|
|
2954
|
-
]
|
|
2753
|
+
"enum": ["matching", "all"]
|
|
2955
2754
|
},
|
|
2956
2755
|
"market": {
|
|
2957
2756
|
"type": "string"
|
|
@@ -2973,38 +2772,20 @@
|
|
|
2973
2772
|
},
|
|
2974
2773
|
"side": {
|
|
2975
2774
|
"type": "string",
|
|
2976
|
-
"enum": [
|
|
2977
|
-
"long",
|
|
2978
|
-
"short"
|
|
2979
|
-
]
|
|
2775
|
+
"enum": ["long", "short"]
|
|
2980
2776
|
},
|
|
2981
2777
|
"state": {
|
|
2982
2778
|
"type": "string",
|
|
2983
|
-
"enum": [
|
|
2984
|
-
"none",
|
|
2985
|
-
"closed",
|
|
2986
|
-
"absent",
|
|
2987
|
-
"open",
|
|
2988
|
-
"present"
|
|
2989
|
-
]
|
|
2779
|
+
"enum": ["none", "closed", "absent", "open", "present"]
|
|
2990
2780
|
},
|
|
2991
2781
|
"amount": {
|
|
2992
|
-
"type": [
|
|
2993
|
-
"string",
|
|
2994
|
-
"number"
|
|
2995
|
-
]
|
|
2782
|
+
"type": ["string", "number"]
|
|
2996
2783
|
},
|
|
2997
2784
|
"notional": {
|
|
2998
|
-
"type": [
|
|
2999
|
-
"string",
|
|
3000
|
-
"number"
|
|
3001
|
-
]
|
|
2785
|
+
"type": ["string", "number"]
|
|
3002
2786
|
},
|
|
3003
2787
|
"size": {
|
|
3004
|
-
"type": [
|
|
3005
|
-
"string",
|
|
3006
|
-
"number"
|
|
3007
|
-
]
|
|
2788
|
+
"type": ["string", "number"]
|
|
3008
2789
|
},
|
|
3009
2790
|
"leverage": {
|
|
3010
2791
|
"type": "number"
|
|
@@ -3052,17 +2833,11 @@
|
|
|
3052
2833
|
"additionalProperties": false
|
|
3053
2834
|
},
|
|
3054
2835
|
"orders": {
|
|
3055
|
-
"type": [
|
|
3056
|
-
"object",
|
|
3057
|
-
"boolean"
|
|
3058
|
-
],
|
|
2836
|
+
"type": ["object", "boolean"],
|
|
3059
2837
|
"properties": {
|
|
3060
2838
|
"mode": {
|
|
3061
2839
|
"type": "string",
|
|
3062
|
-
"enum": [
|
|
3063
|
-
"matching",
|
|
3064
|
-
"all"
|
|
3065
|
-
]
|
|
2840
|
+
"enum": ["matching", "all"]
|
|
3066
2841
|
},
|
|
3067
2842
|
"market": {
|
|
3068
2843
|
"type": "string"
|
|
@@ -3084,38 +2859,20 @@
|
|
|
3084
2859
|
},
|
|
3085
2860
|
"side": {
|
|
3086
2861
|
"type": "string",
|
|
3087
|
-
"enum": [
|
|
3088
|
-
"long",
|
|
3089
|
-
"short"
|
|
3090
|
-
]
|
|
2862
|
+
"enum": ["long", "short"]
|
|
3091
2863
|
},
|
|
3092
2864
|
"state": {
|
|
3093
2865
|
"type": "string",
|
|
3094
|
-
"enum": [
|
|
3095
|
-
"none",
|
|
3096
|
-
"closed",
|
|
3097
|
-
"absent",
|
|
3098
|
-
"open",
|
|
3099
|
-
"present"
|
|
3100
|
-
]
|
|
2866
|
+
"enum": ["none", "closed", "absent", "open", "present"]
|
|
3101
2867
|
},
|
|
3102
2868
|
"amount": {
|
|
3103
|
-
"type": [
|
|
3104
|
-
"string",
|
|
3105
|
-
"number"
|
|
3106
|
-
]
|
|
2869
|
+
"type": ["string", "number"]
|
|
3107
2870
|
},
|
|
3108
2871
|
"notional": {
|
|
3109
|
-
"type": [
|
|
3110
|
-
"string",
|
|
3111
|
-
"number"
|
|
3112
|
-
]
|
|
2872
|
+
"type": ["string", "number"]
|
|
3113
2873
|
},
|
|
3114
2874
|
"size": {
|
|
3115
|
-
"type": [
|
|
3116
|
-
"string",
|
|
3117
|
-
"number"
|
|
3118
|
-
]
|
|
2875
|
+
"type": ["string", "number"]
|
|
3119
2876
|
},
|
|
3120
2877
|
"leverage": {
|
|
3121
2878
|
"type": "number"
|
|
@@ -3172,10 +2929,7 @@
|
|
|
3172
2929
|
},
|
|
3173
2930
|
"side": {
|
|
3174
2931
|
"type": "string",
|
|
3175
|
-
"enum": [
|
|
3176
|
-
"long",
|
|
3177
|
-
"short"
|
|
3178
|
-
]
|
|
2932
|
+
"enum": ["long", "short"]
|
|
3179
2933
|
},
|
|
3180
2934
|
"account_name": {
|
|
3181
2935
|
"type": "string"
|
|
@@ -3200,10 +2954,7 @@
|
|
|
3200
2954
|
},
|
|
3201
2955
|
"mode": {
|
|
3202
2956
|
"type": "string",
|
|
3203
|
-
"enum": [
|
|
3204
|
-
"matching",
|
|
3205
|
-
"all"
|
|
3206
|
-
]
|
|
2957
|
+
"enum": ["matching", "all"]
|
|
3207
2958
|
}
|
|
3208
2959
|
},
|
|
3209
2960
|
"additionalProperties": false
|
|
@@ -3229,16 +2980,11 @@
|
|
|
3229
2980
|
"next": "done"
|
|
3230
2981
|
}
|
|
3231
2982
|
],
|
|
3232
|
-
"execution_capabilities": [
|
|
3233
|
-
"app-mutation",
|
|
3234
|
-
"external-mutation"
|
|
3235
|
-
]
|
|
2983
|
+
"execution_capabilities": ["app-mutation", "external-mutation"]
|
|
3236
2984
|
},
|
|
3237
2985
|
"metamask.deeplink.open": {
|
|
3238
2986
|
"description": "Open an HTTPS deeplink through the selected Android device or iOS simulator so Mobile owns parsing and destination navigation.",
|
|
3239
|
-
"execution_capabilities": [
|
|
3240
|
-
"app-mutation"
|
|
3241
|
-
],
|
|
2987
|
+
"execution_capabilities": ["app-mutation"],
|
|
3242
2988
|
"examples": [
|
|
3243
2989
|
{
|
|
3244
2990
|
"action": "metamask.deeplink.open",
|
|
@@ -3259,17 +3005,13 @@
|
|
|
3259
3005
|
"description": "Maximum time for the external navigation. Default 15000."
|
|
3260
3006
|
}
|
|
3261
3007
|
},
|
|
3262
|
-
"required": [
|
|
3263
|
-
"url"
|
|
3264
|
-
],
|
|
3008
|
+
"required": ["url"],
|
|
3265
3009
|
"additionalProperties": false
|
|
3266
3010
|
}
|
|
3267
3011
|
},
|
|
3268
3012
|
"metamask.analytics.start_capture": {
|
|
3269
3013
|
"description": "mobile Start capturing MetaMetrics events at the Segment transport and return a cursor to bracket later reads.",
|
|
3270
|
-
"execution_capabilities": [
|
|
3271
|
-
"arbitrary-code"
|
|
3272
|
-
],
|
|
3014
|
+
"execution_capabilities": ["arbitrary-code"],
|
|
3273
3015
|
"examples": [
|
|
3274
3016
|
{
|
|
3275
3017
|
"action": "metamask.analytics.start_capture",
|
|
@@ -3293,9 +3035,7 @@
|
|
|
3293
3035
|
},
|
|
3294
3036
|
"metamask.analytics.read_events": {
|
|
3295
3037
|
"description": "mobile Read MetaMetrics events captured since a cursor, as [{ event, properties, ts }].",
|
|
3296
|
-
"execution_capabilities": [
|
|
3297
|
-
"host-read-export"
|
|
3298
|
-
],
|
|
3038
|
+
"execution_capabilities": ["host-read-export"],
|
|
3299
3039
|
"examples": [
|
|
3300
3040
|
{
|
|
3301
3041
|
"action": "metamask.analytics.read_events",
|
|
@@ -3321,9 +3061,7 @@
|
|
|
3321
3061
|
},
|
|
3322
3062
|
"metamask.analytics.assert_events": {
|
|
3323
3063
|
"description": "mobile Assert MetaMetrics event names, property values and counts. Counts are the point: an exact count catches a double emit that a presence check cannot.",
|
|
3324
|
-
"execution_capabilities": [
|
|
3325
|
-
"host-read-export"
|
|
3326
|
-
],
|
|
3064
|
+
"execution_capabilities": ["host-read-export"],
|
|
3327
3065
|
"examples": [
|
|
3328
3066
|
{
|
|
3329
3067
|
"action": "metamask.analytics.assert_events",
|
|
@@ -3382,24 +3120,18 @@
|
|
|
3382
3120
|
"description": "Subset match on event properties; values may be exact or use $exists, $type, and $gt predicates."
|
|
3383
3121
|
}
|
|
3384
3122
|
},
|
|
3385
|
-
"required": [
|
|
3386
|
-
"event"
|
|
3387
|
-
],
|
|
3123
|
+
"required": ["event"],
|
|
3388
3124
|
"additionalProperties": false
|
|
3389
3125
|
}
|
|
3390
3126
|
}
|
|
3391
3127
|
},
|
|
3392
|
-
"required": [
|
|
3393
|
-
"expect"
|
|
3394
|
-
],
|
|
3128
|
+
"required": ["expect"],
|
|
3395
3129
|
"additionalProperties": false
|
|
3396
3130
|
}
|
|
3397
3131
|
},
|
|
3398
3132
|
"metamask.analytics.set_consent": {
|
|
3399
3133
|
"description": "mobile Set MetaMetrics consent flags through the Security & Privacy controls so events reach the Segment transport.",
|
|
3400
|
-
"execution_capabilities": [
|
|
3401
|
-
"app-mutation"
|
|
3402
|
-
],
|
|
3134
|
+
"execution_capabilities": ["app-mutation"],
|
|
3403
3135
|
"examples": [
|
|
3404
3136
|
{
|
|
3405
3137
|
"action": "metamask.analytics.set_consent",
|