Skip to content

Commit b3256de

Browse files
committed
Merge branch 'main' into mikesposito/fix/trc20-transfer
2 parents 0eafbfd + b02b848 commit b3256de

File tree

192 files changed

+19586
-12277
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

192 files changed

+19586
-12277
lines changed

.github/CODEOWNERS

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,17 @@ scripts/set-secrets-from-config.js @MetaMask/mobile-adm
5959
# Platform & Snaps Code Fencing File
6060
metro.transform.js @MetaMask/mobile-platform @MetaMask/core-platform
6161

62-
# Ramps Team
63-
app/components/UI/Ramp/ @MetaMask/ramp
64-
app/reducers/fiatOrders/ @MetaMask/ramp
65-
app/core/Engine/controllers/ramps-controller @MetaMask/ramp
66-
app/core/Engine/messengers/ramps-controller-messenger @MetaMask/ramp
67-
app/core/Engine/messengers/ramps-service-messenger @MetaMask/ramp
68-
app/selectors/rampsController @MetaMask/ramp
69-
**/Ramp/** @MetaMask/ramp
70-
**/ramp/** @MetaMask/ramp
71-
**/ramps/** @MetaMask/ramp
62+
# Money Movement Team (formerly Ramps)
63+
app/components/UI/Ramp/ @MetaMask/money-movement
64+
app/reducers/fiatOrders/ @MetaMask/money-movement
65+
app/core/Engine/controllers/ramps-controller @MetaMask/money-movement
66+
app/core/Engine/messengers/ramps-controller-messenger @MetaMask/money-movement
67+
app/core/Engine/messengers/ramps-service-messenger @MetaMask/money-movement
68+
app/selectors/rampsController @MetaMask/money-movement
69+
**/Ramp/** @MetaMask/money-movement
70+
**/ramp/** @MetaMask/money-movement
71+
**/ramps/** @MetaMask/money-movement
72+
**/money-movement/** @MetaMask/money-movement
7273

7374
# Card Team
7475
app/components/UI/Card/ @MetaMask/card
@@ -287,9 +288,9 @@ tests/flows/ @MetaMask/qa
287288
# Note: Test builds (main-test, flask-test) in build/builds.yml are owned by QA team
288289
# but the file itself is protected by mobile-platform for consistency
289290

290-
# Co-owned by Swaps and Ramps teams
291-
app/util/parseAmount.ts @MetaMask/swaps-engineers @MetaMask/ramp
292-
app/util/parseAmount.test.ts @MetaMask/swaps-engineers @MetaMask/ramp
291+
# Co-owned by Swaps and Money Movement teams
292+
app/util/parseAmount.ts @MetaMask/swaps-engineers @MetaMask/money-movement
293+
app/util/parseAmount.test.ts @MetaMask/swaps-engineers @MetaMask/money-movement
293294

294295
# Snapshots – no code owners assigned
295296
# This allows anyone with write access to approve changes to any *.snap files.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ jobs:
214214
NODE_OPTIONS: --max_old_space_size=12288
215215

216216
- name: Check bundle size
217-
run: ./scripts/js-bundle-stats.sh ios/main.jsbundle 54
217+
run: ./scripts/js-bundle-stats.sh ios/main.jsbundle 53
218218

219219
- name: Upload iOS bundle
220220
uses: actions/upload-artifact@v4
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
##############################################################################################
2+
#
3+
# Runway Android Production Workflow
4+
#
5+
# Triggered from Runway to either:
6+
# - Push an OTA update to the production channel (when OTA_VERSION is bumped), or
7+
# - Build the production mobile app (when there is no OTA version bump).
8+
#
9+
# When triggering workflow_dispatch, select the correct branch (e.g. main or release).
10+
# Version bump: skipped — run Runway iOS Production first on the same branch for the bump.
11+
#
12+
##############################################################################################
13+
name: Runway Android Production
14+
15+
on:
16+
workflow_dispatch:
17+
inputs:
18+
source_branch:
19+
description: >-
20+
Optional branch, tag, or SHA (Build workflow source_branch).
21+
Empty uses the branch selected in the "Use workflow from" UI.
22+
required: false
23+
type: string
24+
25+
permissions:
26+
contents: write # required by build.yml (update-build-version job)
27+
pull-requests: read
28+
actions: write
29+
id-token: write # required by build.yml
30+
31+
jobs:
32+
runway-production:
33+
uses: ./.github/workflows/runway-ota-build-core.yml
34+
with:
35+
platform: android
36+
source_branch: ${{ inputs.source_branch }}
37+
ota_channel: production
38+
build_name: main-prod
39+
create_production_ota_tag: true
40+
skip_version_bump: true
41+
secrets: inherit
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
##############################################################################################
2+
#
3+
# Runway Android RC Workflow
4+
#
5+
# Triggered from Runway to either:
6+
# - Push an OTA update (when OTA_VERSION in app/constants/ota.ts line 9 is bumped), or
7+
# - Build the mobile app (when there is no OTA version bump).
8+
#
9+
# When triggering workflow_dispatch, select the release branch (e.g. release/7.71.0).
10+
# Version bump: skipped here — run Runway iOS RC first on the same branch so it performs the bump.
11+
#
12+
##############################################################################################
13+
name: Runway Android RC
14+
15+
on:
16+
workflow_dispatch:
17+
inputs:
18+
source_branch:
19+
description: >-
20+
Optional branch, tag, or SHA (Build workflow source_branch).
21+
Empty uses the branch selected in the "Use workflow from" UI.
22+
required: false
23+
type: string
24+
25+
permissions:
26+
contents: write # required by build.yml (update-build-version job)
27+
pull-requests: read
28+
actions: write
29+
id-token: write # required by build.yml
30+
31+
jobs:
32+
runway-rc:
33+
uses: ./.github/workflows/runway-ota-build-core.yml
34+
with:
35+
platform: android
36+
source_branch: ${{ inputs.source_branch }}
37+
skip_version_bump: true
38+
secrets: inherit
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
##############################################################################################
2+
#
3+
# Reusable: create SemVer release tag after production OTA (idempotent).
4+
#
5+
# Callers: runway_*_production_workflow.yml after trigger-ota succeeds.
6+
# Skips if the tag already points at the checked-out commit; fails if the tag exists elsewhere.
7+
#
8+
##############################################################################################
9+
name: Create OTA production release tag
10+
11+
on:
12+
workflow_call:
13+
inputs:
14+
tag_name:
15+
description: 'Annotated tag to create; must match OTA_VERSION (app/constants/ota.ts) / decide ota_version'
16+
required: true
17+
type: string
18+
checkout_ref:
19+
description: 'Branch or ref that received the OTA (same as workflow source)'
20+
required: true
21+
type: string
22+
23+
permissions:
24+
contents: write
25+
26+
jobs:
27+
create-tag:
28+
name: Create release tag (production OTA)
29+
runs-on: ubuntu-latest
30+
steps:
31+
- name: Checkout repository
32+
uses: actions/checkout@v4
33+
with:
34+
fetch-depth: 0
35+
ref: ${{ inputs.checkout_ref }}
36+
37+
- name: Create or skip release tag
38+
env:
39+
TAG_NAME: ${{ inputs.tag_name }}
40+
run: |
41+
set -euo pipefail
42+
if [[ -z "${TAG_NAME}" ]]; then
43+
echo '::error::tag_name is empty; cannot create release tag'
44+
exit 1
45+
fi
46+
if [[ ! "${TAG_NAME}" =~ ^v[^[:space:]]+$ ]]; then
47+
echo "::error::tag_name must be non-empty and start with v (no spaces), got: ${TAG_NAME}"
48+
exit 1
49+
fi
50+
51+
HEAD_SHA=$(git rev-parse HEAD)
52+
git fetch origin --tags --force 2>/dev/null || true
53+
54+
if git rev-parse -q --verify "refs/tags/${TAG_NAME}" >/dev/null 2>&1; then
55+
TAG_SHA=$(git rev-parse "${TAG_NAME}^{commit}")
56+
if [[ "${HEAD_SHA}" == "${TAG_SHA}" ]]; then
57+
echo "Tag \`${TAG_NAME}\` already points at this commit (${HEAD_SHA}); skipping create and push."
58+
exit 0
59+
fi
60+
echo "::error::Tag \`${TAG_NAME}\` already exists at ${TAG_SHA} but HEAD is ${HEAD_SHA}. Refusing to move the tag."
61+
exit 1
62+
fi
63+
64+
git config user.name "github-actions[bot]"
65+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
66+
67+
git tag -a "${TAG_NAME}" -m "Production OTA release ${TAG_NAME}"
68+
git push origin "refs/tags/${TAG_NAME}"
69+
echo "Created and pushed tag \`${TAG_NAME}\` at ${HEAD_SHA}"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
##############################################################################################
2+
#
3+
# Runway iOS Production Workflow
4+
#
5+
# Triggered from Runway to either:
6+
# - Push an OTA update to the production channel (when OTA_VERSION is bumped), or
7+
# - Build the production app and upload the IPA to TestFlight (when there is no OTA bump).
8+
#
9+
# When triggering workflow_dispatch, select the correct branch (e.g. main or release).
10+
# Version bump: this workflow bumps; run Android production after on the same branch.
11+
#
12+
##############################################################################################
13+
name: Runway iOS Production
14+
15+
on:
16+
workflow_dispatch:
17+
inputs:
18+
source_branch:
19+
description: >-
20+
Optional branch, tag, or SHA (Build workflow source_branch).
21+
Empty uses the branch selected in the "Use workflow from" UI.
22+
required: false
23+
type: string
24+
25+
permissions:
26+
contents: write # required by build.yml (update-build-version job)
27+
pull-requests: read
28+
actions: write
29+
id-token: write # required by build.yml
30+
31+
jobs:
32+
runway-production:
33+
uses: ./.github/workflows/runway-ota-build-core.yml
34+
with:
35+
platform: ios
36+
source_branch: ${{ inputs.source_branch }}
37+
ota_channel: production
38+
build_name: main-prod
39+
upload_testflight: true
40+
create_production_ota_tag: true
41+
ios_testflight_summary_title: 'Runway iOS Production'
42+
secrets: inherit
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
##############################################################################################
2+
#
3+
# Runway iOS RC Workflow
4+
#
5+
# Triggered from Runway to either:
6+
# - Push an OTA update (when OTA_VERSION in app/constants/ota.ts line 9 is bumped), or
7+
# - Build the mobile app and upload the IPA to TestFlight (when there is no OTA version bump).
8+
#
9+
# When triggering workflow_dispatch, select the release branch (e.g. release/7.71.0).
10+
# Version bump: this workflow bumps the repo build number; run Android RC after so it can skip bump.
11+
#
12+
##############################################################################################
13+
name: Runway iOS RC
14+
15+
on:
16+
workflow_dispatch:
17+
inputs:
18+
source_branch:
19+
description: >-
20+
Optional branch, tag, or SHA (Build workflow source_branch).
21+
Empty uses the branch selected in the "Use workflow from" UI.
22+
required: false
23+
type: string
24+
25+
permissions:
26+
contents: write # required by build.yml (update-build-version job)
27+
pull-requests: read
28+
actions: write
29+
id-token: write # required by build.yml
30+
31+
jobs:
32+
runway-rc:
33+
uses: ./.github/workflows/runway-ota-build-core.yml
34+
with:
35+
platform: ios
36+
source_branch: ${{ inputs.source_branch }}
37+
upload_testflight: true
38+
secrets: inherit

0 commit comments

Comments
 (0)