@deeeed/metamask-harness 0.47.4 → 0.48.0
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 +6 -0
- package/README.md +3 -2
- package/adapters/extension/lib/macos-focus.cjs +2 -2
- package/adapters/extension/live.sh +6 -8
- package/adapters/mobile/bridge-runtime/lib/bridge-errors.cjs +1 -0
- package/adapters/shared/ensure-runner-deps.sh +6 -0
- package/dist/adapters/extension/runtime-decision.js +18 -1
- package/dist/adapters/extension/runtime.js +5 -5
- package/dist/adapters/extension/surface.js +1 -0
- package/dist/app-lifecycle.js +3 -1
- package/dist/command-contract.js +2 -0
- package/dist/commands/call.js +1 -8
- package/dist/commands/device-target.js +12 -3
- package/dist/commands/doctor.js +7 -5
- package/dist/commands/fixtures.js +1 -1
- package/dist/commands/launch/index.js +10 -0
- package/dist/commands/manifest.js +3 -1
- package/dist/commands/mobile-device-view.js +13 -3
- package/dist/commands/parse-args.js +2 -0
- package/dist/commands/run-engine.js +29 -4
- package/dist/commands/run.js +1 -1
- package/dist/commands/runtime-launch.js +10 -1
- package/dist/commands/status.js +8 -4
- package/dist/devices.js +31 -9
- package/dist/execution-provenance.js +8 -7
- package/dist/funding-execution-context.js +43 -13
- package/dist/heal-bounds.js +3 -3
- package/dist/live-adapter-contract.js +4 -0
- package/dist/manifest.js +2 -13
- package/dist/mm-harness-cli.js +2 -1
- package/dist/runner.js +14 -3
- package/docs/RECIPES.md +133 -22
- package/docs/RELEASE-QA-CAPABILITY-MAP.md +3 -2
- package/library/actions/core/perps/_controller.mjs +10 -0
- package/library/actions/core/perps/close_orders.mjs +13 -17
- package/library/actions/extension/assets/home-token-identity.mjs +30 -0
- package/library/actions/extension/assets/import_custom_token.mjs +61 -79
- package/library/actions/extension/assets/open_details.mjs +18 -7
- package/library/actions/extension/assets/read_details.mjs +61 -29
- package/library/actions/extension/assets/read_visible_state.mjs +4 -1
- package/library/actions/extension/assets/select_network_scope.mjs +16 -9
- package/library/actions/extension/assets/set_token_visibility.mjs +84 -17
- package/library/actions/extension/assets/verify_sorting.mjs +62 -14
- package/library/actions/extension/networks/add_custom.mjs +19 -17
- package/library/actions/extension/networks/custom_network.mjs +8 -3
- package/library/actions/extension/networks/read_visible_state.mjs +1 -0
- package/library/actions/extension/performance/_navigation-memory.mjs +35 -6
- package/library/actions/extension/performance/compare_idle_navigation_memory.mjs +3 -2
- package/library/actions/extension/performance/measure_detached_dom.mjs +3 -2
- package/library/actions/extension/performance/measure_navigation_memory.mjs +3 -2
- package/library/actions/extension/perps/assert_visible_consistency.mjs +9 -4
- package/library/actions/extension/perps/close_visible_position.mjs +3 -3
- package/library/actions/extension/perps/edit_margin.mjs +1 -1
- package/library/actions/extension/perps/open_balance_action.mjs +16 -7
- package/library/actions/extension/perps/perps.mjs +150 -45
- package/library/actions/extension/perps/read_funds_confirmation.mjs +8 -0
- package/library/actions/extension/perps/read_snapshot.mjs +2 -1
- package/library/actions/extension/perps/read_visible_state.mjs +10 -6
- package/library/actions/extension/perps/search_markets.mjs +7 -2
- package/library/actions/extension/perps/select_activity_filter.mjs +1 -1
- package/library/actions/extension/perps/select_market_filter.mjs +74 -45
- package/library/actions/extension/perps/set_market_favorite.mjs +6 -3
- package/library/actions/extension/perps/state.mjs +1 -0
- package/library/actions/extension/perps/update_position_tpsl.mjs +1 -1
- package/library/actions/extension/perps/visible-mutation-identity.mjs +4 -2
- package/library/actions/extension/platform/cdp.mjs +23 -142
- package/library/actions/extension/swap_bridge/quote-state.mjs +54 -0
- package/library/actions/extension/swap_bridge/read_visible_state.mjs +4 -1
- package/library/actions/extension/swap_bridge/select_assets.mjs +11 -1
- package/library/actions/extension/swap_bridge/set_amount.mjs +10 -8
- package/library/actions/extension/swap_bridge/set_max_amount.mjs +17 -18
- package/library/actions/extension/swap_bridge/set_slippage.mjs +0 -9
- package/library/actions/extension/ui/navigate.mjs +58 -14
- package/library/actions/extension/wallet/lock.mjs +2 -1
- package/library/actions/mobile/assets/import_custom_token.mjs +1 -0
- package/library/actions/mobile/assets/read_visible_state.mjs +3 -1
- package/library/actions/mobile/assets/set_token_visibility.mjs +13 -9
- package/library/actions/mobile/networks/network-management.mjs +22 -15
- package/library/actions/mobile/networks/remove_custom.mjs +6 -2
- package/library/actions/mobile/perps/perps.mjs +3 -0
- package/library/actions/mobile/perps/read-visible-state-loop.mjs +1 -0
- package/library/actions/mobile/perps/set_market_favorite.mjs +15 -19
- package/library/actions/mobile/platform/native-session.mjs +26 -17
- package/library/actions/mobile/platform/observe-ui.mjs +2 -2
- package/library/actions/mobile/ui/navigate.mjs +1 -1
- package/library/actions/shared/perps/visible-state.mjs +14 -3
- package/library/manifests/core.action-manifest.json +14 -2
- package/library/manifests/extension.action-manifest.json +49 -16
- package/library/manifests/mobile.action-manifest.json +8 -7
- package/library/recipes/core/perps/smoke.recipe.json +23 -0
- package/library/recipes/core/perps/snapshot.recipe.json +26 -1
- package/library/recipes/extension/assets/release-custom-network-token-persistence.recipe.json +25 -8
- package/library/recipes/extension/performance/navigation-memory-suite.recipe.json +219 -0
- package/library/recipes/extension/performance/navigation-memory.recipe.json +61 -156
- package/library/recipes/extension/wallet/smoke.recipe.json +17 -8
- package/library/recipes/mobile/app/lifecycle.android-smoke.recipe.json +23 -4
- package/library/recipes/mobile/networks/release-custom-network-persistence.recipe.json +31 -6
- package/library/recipes/mobile/networks/release-multichain-visibility.recipe.json +5 -4
- package/library/recipes/mobile/wallet/smoke.recipe.json +17 -8
- package/library/recipes/{assets → shared/assets}/release-token-address-import.recipe.json +7 -0
- package/library/recipes/{assets → shared/assets}/release-token-details.recipe.json +2 -2
- package/library/recipes/shared/assets/release-token-hide-readd.recipe.json +91 -0
- package/library/recipes/{assets → shared/assets}/release-token-persistence.recipe.json +3 -0
- package/library/recipes/{assets → shared/assets}/release-token-search-import.recipe.json +4 -1
- package/library/recipes/{assets → shared/assets}/release-token-sorting.recipe.json +13 -2
- package/library/recipes/{swap-bridge → shared/swap-bridge}/release-quote.recipe.json +29 -3
- package/package.json +3 -3
- package/site/assets/help-recipes.json +63 -23
- package/library/recipes/assets/release-token-hide-readd.recipe.json +0 -57
- package/library/recipes/core/perps/clean-market-testnet.recipe.json +0 -44
- package/library/recipes/core/perps/order-lifecycle.recipe.json +0 -82
- package/library/recipes/core/perps/read-markets.recipe.json +0 -36
- package/library/recipes/core/perps/trading-lifecycle.recipe.json +0 -80
- package/library/recipes/extension/perps/release-activity-filters.recipe.json +0 -51
- package/library/recipes/extension/perps/release-funds-flows.recipe.json +0 -76
- package/library/recipes/extension/perps/release-live-limit-order.recipe.json +0 -109
- package/library/recipes/extension/perps/release-market-filters.recipe.json +0 -97
- package/library/recipes/extension/perps/release-order-entry.recipe.json +0 -158
- package/library/recipes/extension/perps/release-order-validation.recipe.json +0 -259
- package/library/recipes/extension/perps/release-visible-consistency.recipe.json +0 -47
- package/library/recipes/extension/perps/source-dev-snapshot-consistency.recipe.json +0 -76
- package/library/recipes/mobile/perps/chase-assert-running.recipe.json +0 -110
- package/library/recipes/mobile/perps/chase-place.recipe.json +0 -145
- package/library/recipes/mobile/perps/chase-terminate.recipe.json +0 -98
- package/library/recipes/mobile/perps/performance.recipe.json +0 -722
- package/library/recipes/mobile/perps/pro-order-setup.recipe.json +0 -111
- package/library/recipes/mobile/perps/pro-order-start-state.recipe.json +0 -53
- package/library/recipes/mobile/perps/scale-assert-orders.recipe.json +0 -126
- package/library/recipes/mobile/perps/scale-place.recipe.json +0 -186
- package/library/recipes/mobile/perps/twap-assert-active.recipe.json +0 -97
- package/library/recipes/mobile/perps/twap-place.recipe.json +0 -146
- package/library/recipes/mobile/runner/action-validation.recipe.json +0 -336
- package/library/recipes/perps/clean-market-testnet.recipe.json +0 -49
- package/library/recipes/perps/lifecycle.recipe.json +0 -144
- package/library/recipes/perps/release-live-market-order.recipe.json +0 -139
- package/library/recipes/perps/release-watchlist.recipe.json +0 -111
- package/library/recipes/swap-bridge/release-max-quote.recipe.json +0 -72
- /package/library/recipes/{assets → shared/assets}/release-token-list.recipe.json +0 -0
- /package/library/recipes/{perps → shared/perps}/release-market-details.recipe.json +0 -0
- /package/library/recipes/{perps → shared/perps}/release-market-search.recipe.json +0 -0
- /package/library/recipes/{swap-bridge → shared/swap-bridge}/release-custom-slippage.recipe.json +0 -0
- /package/library/recipes/{swap-bridge → shared/swap-bridge}/release-live-max-swap.recipe.json +0 -0
- /package/library/recipes/{swap-bridge → shared/swap-bridge}/release-live-swap.recipe.json +0 -0
- /package/library/recipes/{swap-bridge → shared/swap-bridge}/release-surface.recipe.json +0 -0
- /package/library/recipes/{wallet → shared/wallet}/import.recipe.json +0 -0
- /package/library/recipes/{wallet → shared/wallet}/reset-import.recipe.json +0 -0
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://farmslot.io/schemas/recipe-v1.schema.json",
|
|
3
|
-
"title": "Perps release live market order",
|
|
4
|
-
"description": "Places one small live Perps market order through visible product controls and proves the resulting position and activity.",
|
|
5
|
-
"paramsSchema": {
|
|
6
|
-
"type": "object",
|
|
7
|
-
"additionalProperties": false,
|
|
8
|
-
"required": ["confirm_live"],
|
|
9
|
-
"properties": {
|
|
10
|
-
"market": {
|
|
11
|
-
"type": "string",
|
|
12
|
-
"default": "BTC"
|
|
13
|
-
},
|
|
14
|
-
"amount": {
|
|
15
|
-
"type": "integer",
|
|
16
|
-
"minimum": 10,
|
|
17
|
-
"default": 10
|
|
18
|
-
},
|
|
19
|
-
"leverage": {
|
|
20
|
-
"type": "integer",
|
|
21
|
-
"minimum": 1,
|
|
22
|
-
"default": 1
|
|
23
|
-
},
|
|
24
|
-
"provider": {
|
|
25
|
-
"type": "string",
|
|
26
|
-
"default": "hyperliquid"
|
|
27
|
-
},
|
|
28
|
-
"network": {
|
|
29
|
-
"type": "string",
|
|
30
|
-
"enum": [
|
|
31
|
-
"mainnet",
|
|
32
|
-
"testnet"
|
|
33
|
-
],
|
|
34
|
-
"default": "mainnet"
|
|
35
|
-
},
|
|
36
|
-
"confirm_live": {
|
|
37
|
-
"type": "boolean"
|
|
38
|
-
},
|
|
39
|
-
"identity_rounding_tolerance_base_units": { "type": "string", "default": "10000" },
|
|
40
|
-
"balance_reconciliation_tolerance_base_units": { "type": "string", "default": "1000000" }
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"workflow": {
|
|
44
|
-
"entry": "open-perps",
|
|
45
|
-
"nodes": {
|
|
46
|
-
"open-perps": {
|
|
47
|
-
"action": "ui.navigate",
|
|
48
|
-
"page": "perps",
|
|
49
|
-
"intent": "Show the live Perps home surface",
|
|
50
|
-
"next": "open-market-list"
|
|
51
|
-
},
|
|
52
|
-
"open-market-list": {
|
|
53
|
-
"action": "ui.navigate",
|
|
54
|
-
"page": "perps-market-list",
|
|
55
|
-
"intent": "Show the live Perps market list",
|
|
56
|
-
"next": "open-market"
|
|
57
|
-
},
|
|
58
|
-
"open-market": {
|
|
59
|
-
"action": "ui.navigate",
|
|
60
|
-
"page": "perps-market",
|
|
61
|
-
"market": "{{params.market}}",
|
|
62
|
-
"intent": "Open the requested Perps market",
|
|
63
|
-
"next": "submit-once"
|
|
64
|
-
},
|
|
65
|
-
"submit-once": {
|
|
66
|
-
"action": "metamask.perps.place_order",
|
|
67
|
-
"market": "{{params.market}}",
|
|
68
|
-
"side": "long",
|
|
69
|
-
"amount": "{{params.amount}}",
|
|
70
|
-
"leverage": "{{params.leverage}}",
|
|
71
|
-
"provider": "{{params.provider}}",
|
|
72
|
-
"network": "{{params.network}}",
|
|
73
|
-
"order_type": "market",
|
|
74
|
-
"confirm_live": "{{params.confirm_live}}",
|
|
75
|
-
"identity_rounding_tolerance_base_units": "{{params.identity_rounding_tolerance_base_units}}",
|
|
76
|
-
"submit_attempts": 1,
|
|
77
|
-
"timeout_ms": 45000,
|
|
78
|
-
"intent": "Submit the authorized order exactly once",
|
|
79
|
-
"next": "wait-position"
|
|
80
|
-
},
|
|
81
|
-
"wait-position": {
|
|
82
|
-
"action": "ui.wait_for",
|
|
83
|
-
"test_id": "perps-position-size-value",
|
|
84
|
-
"expected": "visible",
|
|
85
|
-
"timeout_ms": 45000,
|
|
86
|
-
"intent": "Confirm the filled position becomes visible",
|
|
87
|
-
"next": "assert-position"
|
|
88
|
-
},
|
|
89
|
-
"assert-position": {
|
|
90
|
-
"action": "metamask.perps.read_visible_state",
|
|
91
|
-
"surface": "market-details",
|
|
92
|
-
"market": "{{params.market}}",
|
|
93
|
-
"minimum_position_count": 1,
|
|
94
|
-
"maximum_order_count": 0,
|
|
95
|
-
"minimum_activity_count": 1,
|
|
96
|
-
"require_test_ids": ["perps-position-size-value", "perps-position-leverage"],
|
|
97
|
-
"max_items": 150,
|
|
98
|
-
"intent": "Prove the filled position appears once with market activity",
|
|
99
|
-
"next": "capture-open"
|
|
100
|
-
},
|
|
101
|
-
"capture-open": {
|
|
102
|
-
"action": "ui.screenshot",
|
|
103
|
-
"path": "screenshots/perps-live-position.png",
|
|
104
|
-
"label": "Perps live position",
|
|
105
|
-
"intent": "Preserve reviewer-visible proof of the filled live position",
|
|
106
|
-
"next": "close-position"
|
|
107
|
-
},
|
|
108
|
-
"close-position": {
|
|
109
|
-
"action": "metamask.perps.close_visible_position",
|
|
110
|
-
"market": "{{params.market}}",
|
|
111
|
-
"confirm_live": "{{params.confirm_live}}",
|
|
112
|
-
"funding_side": "long",
|
|
113
|
-
"funding_amount": "{{params.amount}}",
|
|
114
|
-
"provider": "{{params.provider}}",
|
|
115
|
-
"network": "{{params.network}}",
|
|
116
|
-
"leverage": "{{params.leverage}}",
|
|
117
|
-
"identity_rounding_tolerance_base_units": "{{params.identity_rounding_tolerance_base_units}}",
|
|
118
|
-
"balance_reconciliation_tolerance_base_units": "{{params.balance_reconciliation_tolerance_base_units}}",
|
|
119
|
-
"intent": "Close the live position after proving it",
|
|
120
|
-
"next": "assert-closed"
|
|
121
|
-
},
|
|
122
|
-
"assert-closed": {
|
|
123
|
-
"action": "metamask.perps.read_visible_state",
|
|
124
|
-
"surface": "home",
|
|
125
|
-
"maximum_position_count": 0,
|
|
126
|
-
"maximum_order_count": 0,
|
|
127
|
-
"require_features": ["balance", "market-list"],
|
|
128
|
-
"minimum_activity_count": 1,
|
|
129
|
-
"max_items": 150,
|
|
130
|
-
"intent": "Prove the position was removed and close activity was recorded",
|
|
131
|
-
"next": "done"
|
|
132
|
-
},
|
|
133
|
-
"done": {
|
|
134
|
-
"action": "end",
|
|
135
|
-
"status": "pass"
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://farmslot.io/schemas/recipe-v1.schema.json",
|
|
3
|
-
"title": "Perps release watchlist persistence",
|
|
4
|
-
"description": "Adds and removes one live Perps market favorite and proves both states after navigating away and back.",
|
|
5
|
-
"paramsSchema": {
|
|
6
|
-
"type": "object",
|
|
7
|
-
"additionalProperties": false,
|
|
8
|
-
"properties": {
|
|
9
|
-
"market": {
|
|
10
|
-
"type": "string",
|
|
11
|
-
"default": "BTC"
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"workflow": {
|
|
16
|
-
"entry": "open-perps",
|
|
17
|
-
"nodes": {
|
|
18
|
-
"open-perps": {
|
|
19
|
-
"action": "ui.navigate",
|
|
20
|
-
"page": "perps",
|
|
21
|
-
"intent": "Show the Perps home surface",
|
|
22
|
-
"next": "open-market-list"
|
|
23
|
-
},
|
|
24
|
-
"open-market-list": {
|
|
25
|
-
"action": "ui.navigate",
|
|
26
|
-
"page": "perps-market-list",
|
|
27
|
-
"intent": "Show the complete market list",
|
|
28
|
-
"next": "open-market"
|
|
29
|
-
},
|
|
30
|
-
"open-market": {
|
|
31
|
-
"action": "ui.navigate",
|
|
32
|
-
"page": "perps-market",
|
|
33
|
-
"market": "{{params.market}}",
|
|
34
|
-
"intent": "Open the market to update its favorite state",
|
|
35
|
-
"next": "add-favorite"
|
|
36
|
-
},
|
|
37
|
-
"add-favorite": {
|
|
38
|
-
"action": "metamask.perps.set_market_favorite",
|
|
39
|
-
"market": "{{params.market}}",
|
|
40
|
-
"favorite": true,
|
|
41
|
-
"intent": "Ensure the market is added to favorites",
|
|
42
|
-
"next": "return-home-added"
|
|
43
|
-
},
|
|
44
|
-
"return-home-added": {
|
|
45
|
-
"action": "ui.navigate",
|
|
46
|
-
"page": "perps",
|
|
47
|
-
"intent": "Show Perps home after adding the favorite",
|
|
48
|
-
"next": "reopen-market-list-added"
|
|
49
|
-
},
|
|
50
|
-
"reopen-market-list-added": {
|
|
51
|
-
"action": "ui.navigate",
|
|
52
|
-
"page": "perps-market-list",
|
|
53
|
-
"intent": "Reopen the market list after adding the favorite",
|
|
54
|
-
"next": "reopen-market-added"
|
|
55
|
-
},
|
|
56
|
-
"reopen-market-added": {
|
|
57
|
-
"action": "ui.navigate",
|
|
58
|
-
"page": "perps-market",
|
|
59
|
-
"market": "{{params.market}}",
|
|
60
|
-
"intent": "Reopen the favorited market",
|
|
61
|
-
"next": "assert-added"
|
|
62
|
-
},
|
|
63
|
-
"assert-added": {
|
|
64
|
-
"action": "metamask.perps.set_market_favorite",
|
|
65
|
-
"market": "{{params.market}}",
|
|
66
|
-
"favorite": true,
|
|
67
|
-
"require_unchanged": true,
|
|
68
|
-
"intent": "Prove the favorite persisted after navigating away and back",
|
|
69
|
-
"next": "remove-favorite"
|
|
70
|
-
},
|
|
71
|
-
"remove-favorite": {
|
|
72
|
-
"action": "metamask.perps.set_market_favorite",
|
|
73
|
-
"market": "{{params.market}}",
|
|
74
|
-
"favorite": false,
|
|
75
|
-
"intent": "Ensure the market is removed from favorites",
|
|
76
|
-
"next": "return-home-removed"
|
|
77
|
-
},
|
|
78
|
-
"return-home-removed": {
|
|
79
|
-
"action": "ui.navigate",
|
|
80
|
-
"page": "perps",
|
|
81
|
-
"intent": "Show Perps home after removing the favorite",
|
|
82
|
-
"next": "reopen-market-list-removed"
|
|
83
|
-
},
|
|
84
|
-
"reopen-market-list-removed": {
|
|
85
|
-
"action": "ui.navigate",
|
|
86
|
-
"page": "perps-market-list",
|
|
87
|
-
"intent": "Reopen the market list after removing the favorite",
|
|
88
|
-
"next": "reopen-market-removed"
|
|
89
|
-
},
|
|
90
|
-
"reopen-market-removed": {
|
|
91
|
-
"action": "ui.navigate",
|
|
92
|
-
"page": "perps-market",
|
|
93
|
-
"market": "{{params.market}}",
|
|
94
|
-
"intent": "Reopen the unfavorited market",
|
|
95
|
-
"next": "assert-removed"
|
|
96
|
-
},
|
|
97
|
-
"assert-removed": {
|
|
98
|
-
"action": "metamask.perps.set_market_favorite",
|
|
99
|
-
"market": "{{params.market}}",
|
|
100
|
-
"favorite": false,
|
|
101
|
-
"require_unchanged": true,
|
|
102
|
-
"intent": "Prove the removal persisted after navigating away and back",
|
|
103
|
-
"next": "done"
|
|
104
|
-
},
|
|
105
|
-
"done": {
|
|
106
|
-
"action": "end",
|
|
107
|
-
"status": "pass"
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://farmslot.io/schemas/recipe-v1.schema.json",
|
|
3
|
-
"title": "Swap release Max quote",
|
|
4
|
-
"description": "Selects an exact live pair, uses the visible Max balance, and proves the resulting quote without submission.",
|
|
5
|
-
"paramsSchema": {
|
|
6
|
-
"type": "object",
|
|
7
|
-
"additionalProperties": false,
|
|
8
|
-
"properties": {
|
|
9
|
-
"source_symbol": { "type": "string" },
|
|
10
|
-
"destination_symbol": { "type": "string" },
|
|
11
|
-
"source_chain": { "type": "string" },
|
|
12
|
-
"destination_chain": { "type": "string" },
|
|
13
|
-
"source_query": { "type": "string" },
|
|
14
|
-
"destination_query": { "type": "string" },
|
|
15
|
-
"source_asset_id": { "type": "string", "default": "" },
|
|
16
|
-
"destination_asset_id": { "type": "string", "default": "" },
|
|
17
|
-
"timeout_ms": { "type": "integer", "minimum": 1000, "default": 120000 }
|
|
18
|
-
},
|
|
19
|
-
"required": ["source_symbol", "destination_symbol", "source_chain", "destination_chain", "source_query", "destination_query"]
|
|
20
|
-
},
|
|
21
|
-
"workflow": {
|
|
22
|
-
"entry": "open-swap",
|
|
23
|
-
"nodes": {
|
|
24
|
-
"open-swap": {
|
|
25
|
-
"action": "ui.navigate",
|
|
26
|
-
"page": "swap",
|
|
27
|
-
"timeout_ms": "{{params.timeout_ms}}",
|
|
28
|
-
"intent": "Open Swap through visible product navigation",
|
|
29
|
-
"next": "select-assets"
|
|
30
|
-
},
|
|
31
|
-
"select-assets": {
|
|
32
|
-
"action": "metamask.swap_bridge.select_assets",
|
|
33
|
-
"source_symbol": "{{params.source_symbol}}",
|
|
34
|
-
"destination_symbol": "{{params.destination_symbol}}",
|
|
35
|
-
"source_chain": "{{params.source_chain}}",
|
|
36
|
-
"destination_chain": "{{params.destination_chain}}",
|
|
37
|
-
"source_query": "{{params.source_query}}",
|
|
38
|
-
"destination_query": "{{params.destination_query}}",
|
|
39
|
-
"source_asset_id": "{{params.source_asset_id}}",
|
|
40
|
-
"destination_asset_id": "{{params.destination_asset_id}}",
|
|
41
|
-
"timeout_ms": "{{params.timeout_ms}}",
|
|
42
|
-
"intent": "Select the exact source and destination assets",
|
|
43
|
-
"next": "use-max"
|
|
44
|
-
},
|
|
45
|
-
"use-max": {
|
|
46
|
-
"action": "metamask.swap_bridge.set_max_amount",
|
|
47
|
-
"wait_for_quote": true,
|
|
48
|
-
"timeout_ms": "{{params.timeout_ms}}",
|
|
49
|
-
"intent": "Use the visible available source balance",
|
|
50
|
-
"next": "assert-quote"
|
|
51
|
-
},
|
|
52
|
-
"assert-quote": {
|
|
53
|
-
"action": "metamask.swap_bridge.read_visible_state",
|
|
54
|
-
"source_symbol": "{{params.source_symbol}}",
|
|
55
|
-
"destination_symbol": "{{params.destination_symbol}}",
|
|
56
|
-
"require_amount_inputs": true,
|
|
57
|
-
"require_settings": true,
|
|
58
|
-
"require_quote": true,
|
|
59
|
-
"intent": "Prove the selected pair and Max quote remain visible",
|
|
60
|
-
"next": "capture-quote"
|
|
61
|
-
},
|
|
62
|
-
"capture-quote": {
|
|
63
|
-
"action": "ui.screenshot",
|
|
64
|
-
"path": "screenshots/swap-max-quote.png",
|
|
65
|
-
"label": "Swap Max quote",
|
|
66
|
-
"intent": "Preserve reviewer-visible proof of the Max quote",
|
|
67
|
-
"next": "done"
|
|
68
|
-
},
|
|
69
|
-
"done": { "action": "end", "status": "pass" }
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/library/recipes/{swap-bridge → shared/swap-bridge}/release-custom-slippage.recipe.json
RENAMED
|
File without changes
|
/package/library/recipes/{swap-bridge → shared/swap-bridge}/release-live-max-swap.recipe.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|