Skip to content

Commit a3de2ff

Browse files
runway-github[bot]MarioAslautommasinismilingkylansethkfman
authored
temp+fix: replace legacy eth-json-rpc deps (#11952)
## **Description** - This PR is a rebase of #10098, including: * #9925 * #9930 - Bump `@metamask/eth-json-rpc-filters` to `^7.0.0` - Bump `@metamask/json-rpc-engine` to `^10.0.0` - Bump `@metamask/eth-json-rpc-middleware` to `^15.0.0` - Migrate from `json-rpc-middleware-stream` to `@metamask/json-rpc-middleware-stream` - Upgrade `@metamask/providers` from v13 to v16 - Also broken out separately as #12085 - Revert `Internal JSON-RPC error` message change to accomodate for `@metamask/rpc-errors` v7 ## **Related issues** Expected to fix the following issues: - [x] #11163 - [x] #11129 - [ ] #11105 - [ ] #9715 - [ ] #8308 - [x] #7926 - [x] #4621 - [x] #4646 - [ ] #12634 #### Blocked by - [x] #12085 - [x] #12047 - [x] #12024 - [x] #11980 - [x] #12008 - [x] #11978 ## **Manual testing steps** 1. Go to in-app browser 2. Test connect with multiple dapps 3. Perform transaciton on test dapp 1. Go to this page... ## **Screenshots/Recordings** https://github.com/MetaMask/metamask-mobile/assets/46944231/c608d957-6684-40e2-8963-67a11dc610df ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --------- Co-authored-by: Aslau Mario-Daniel <marioaslau@gmail.com> Co-authored-by: tommasini <tommasini15@gmail.com> Co-authored-by: kylanhurt <kylan.hurt@gmail.com> Co-authored-by: sethkfman <Seth.Kaufman@consensys.net> Co-authored-by: Nicolas MASSART <nicolas.massart@consensys.net> Co-authored-by: Nico MASSART <NicolasMassart@users.noreply.github.com>
1 parent fd13173 commit a3de2ff

File tree

13 files changed

+224
-962
lines changed

13 files changed

+224
-962
lines changed

.github/scripts/bitrise/run-bitrise-e2e-check.ts

Lines changed: 124 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -8,107 +8,11 @@ import {
88
} from '../scripts.types';
99
import axios from 'axios';
1010

11-
let octokitInstance: InstanceType<typeof GitHub> | null = null;
12-
let owner: string;
13-
let repo: string;
14-
1511
main().catch((error: Error): void => {
1612
console.error(error);
1713
process.exit(1);
1814
});
1915

20-
21-
22-
function getOctokitInstance(): InstanceType<typeof GitHub> {
23-
if (!octokitInstance) {
24-
const githubToken = process.env.GITHUB_TOKEN;
25-
if (!githubToken) {
26-
throw new Error("GitHub token is not set in the environment variables");
27-
}
28-
octokitInstance = getOctokit(githubToken);
29-
}
30-
return octokitInstance;
31-
}
32-
33-
async function upsertStatusCheck(
34-
statusCheckName: string,
35-
commitHash: string,
36-
status: StatusCheckStatusType,
37-
conclusion: CompletedConclusionType | undefined,
38-
summary: string
39-
): Promise<void> {
40-
const octokit = getOctokitInstance();
41-
42-
// List existing checks
43-
const listResponse = await octokit.rest.checks.listForRef({
44-
owner,
45-
repo,
46-
ref: commitHash,
47-
});
48-
49-
if (listResponse.status !== 200) {
50-
core.setFailed(
51-
`Failed to list checks for commit ${commitHash}, received status code ${listResponse.status}`,
52-
);
53-
process.exit(1);
54-
}
55-
56-
const existingCheck = listResponse.data.check_runs.find(check => check.name === statusCheckName);
57-
58-
if (existingCheck) {
59-
console.log(`Check already exists: ${existingCheck.name}, updating...`);
60-
// Update the existing check
61-
const updateCheckResponse = await octokit.rest.checks.update({
62-
owner,
63-
repo,
64-
check_run_id: existingCheck.id,
65-
name: statusCheckName,
66-
status: status,
67-
conclusion: conclusion,
68-
output: {
69-
title: `${statusCheckName} Status Check`,
70-
summary: summary,
71-
},
72-
});
73-
74-
if (updateCheckResponse.status !== 200) {
75-
core.setFailed(
76-
`Failed to update '${statusCheckName}' check with status ${status} for commit ${commitHash}, got status code ${updateCheckResponse.status}`,
77-
);
78-
process.exit(1);
79-
}
80-
81-
console.log(`Updated existing check: ${statusCheckName} with id ${existingCheck.id} & status ${status} for commit ${commitHash}`);
82-
83-
84-
85-
} else {
86-
console.log(`Check does not exist: ${statusCheckName}, creating...`);
87-
// Create a new status check
88-
const createCheckResponse = await octokit.rest.checks.create({
89-
owner,
90-
repo,
91-
name: statusCheckName,
92-
head_sha: commitHash,
93-
status: status,
94-
conclusion: conclusion,
95-
started_at: new Date().toISOString(),
96-
output: {
97-
title: `${statusCheckName} Status Check`,
98-
summary: summary,
99-
},
100-
});
101-
102-
if (createCheckResponse.status !== 201) {
103-
core.setFailed(
104-
`Failed to create '${statusCheckName}' check with status ${status} for commit ${commitHash}, got status code ${createCheckResponse.status}`,
105-
);
106-
process.exit(1);
107-
}
108-
109-
console.log(`Created check: ${statusCheckName} with id ${createCheckResponse.data.id} & status ${status} for commit ${commitHash}`);
110-
}
111-
}
11216
// Determine whether E2E should run and provide the associated reason
11317
function shouldRunBitriseE2E(antiLabel: boolean, hasSmokeTestLabel: boolean, isDocs: boolean, isFork: boolean, isMergeQueue: boolean): [boolean, string] {
11418

@@ -139,11 +43,7 @@ async function main(): Promise<void> {
13943
const e2ePipeline = process.env.E2E_PIPELINE;
14044
const workflowName = process.env.WORKFLOW_NAME;
14145
const triggerAction = context.payload.action as PullRequestTriggerType;
142-
// Assuming context.issue comes populated with owner and repo, as typical with GitHub Actions
143-
const { owner: contextOwner, repo: contextRepo, number: pullRequestNumber } = context.issue;
144-
owner = contextOwner;
145-
repo = contextRepo;
146-
46+
const { owner, repo, number: pullRequestNumber } = context.issue;
14747
const removeAndApplyInstructions = `Remove and re-apply the "${e2eLabel}" label to trigger a E2E smoke test on Bitrise.`;
14848
const mergeFromMainCommitMessagePrefix = `Merge branch 'main' into`;
14949
const pullRequestLink = `https://github.com/MetaMask/metamask-mobile/pull/${pullRequestNumber}`;
@@ -180,7 +80,7 @@ async function main(): Promise<void> {
18080
const mqCommitHash = context.payload?.merge_group?.head_sha;
18181

18282

183-
const octokit = getOctokitInstance();
83+
const octokit: InstanceType<typeof GitHub> = getOctokit(githubToken);
18484

18585
const { data: prData } = await octokit.rest.pulls.get({
18686
owner,
@@ -214,18 +114,67 @@ async function main(): Promise<void> {
214114
if (!mergeQueue && !hasSmokeTestLabel && !hasAntiLabel) {
215115

216116
// Fail Status due to missing labels
217-
await upsertStatusCheck(statusCheckName, latestCommitHash, StatusCheckStatusType.Completed,
218-
CompletedConclusionType.Failure, `Failed due to missing labels. Please apply either ${e2eLabel} or ${antiLabel}.`);
219-
return
117+
const createStatusCheckResponse = await octokit.rest.checks.create({
118+
owner,
119+
repo,
120+
name: statusCheckName,
121+
head_sha: latestCommitHash,
122+
status: StatusCheckStatusType.Completed,
123+
conclusion: CompletedConclusionType.Failure,
124+
started_at: new Date().toISOString(),
125+
output: {
126+
title: statusCheckTitle,
127+
summary: `Failed due to missing labels. Please apply either ${e2eLabel} or ${antiLabel}.`,
128+
},
129+
});
130+
131+
if (createStatusCheckResponse.status === 201) {
132+
console.log(
133+
`Created '${statusCheckName}' check with failed status for commit ${latestCommitHash}`,
134+
);
135+
} else {
136+
core.setFailed(
137+
`Failed to create '${statusCheckName}' check with failed status for commit ${latestCommitHash} with status code ${createStatusCheckResponse.status}`,
138+
);
139+
process.exit(1);
140+
}
141+
core.setFailed(
142+
`At least 1 E2E Label must be Applied either ${e2eLabel} or ${antiLabel}`,
143+
);
144+
process.exit(1);
220145
}
221146

222147
if (!shouldRun) {
223148
console.log(
224149
`Skipping Bitrise status check. due to the following reason: ${reason}`,
225150
);
226151

227-
await upsertStatusCheck(statusCheckName, latestCommitHash, StatusCheckStatusType.Completed, CompletedConclusionType.Success,
228-
`Skip run since ${reason}`);
152+
153+
// Post success status (skipped)
154+
const createStatusCheckResponse = await octokit.rest.checks.create({
155+
owner,
156+
repo,
157+
name: statusCheckName,
158+
head_sha: latestCommitHash,
159+
status: StatusCheckStatusType.Completed,
160+
conclusion: CompletedConclusionType.Success,
161+
started_at: new Date().toISOString(),
162+
output: {
163+
title: statusCheckTitle,
164+
summary: `Skip run since ${reason}`,
165+
},
166+
});
167+
168+
if (createStatusCheckResponse.status === 201) {
169+
console.log(
170+
`Created '${statusCheckName}' check with skipped status for commit ${latestCommitHash}`,
171+
);
172+
} else {
173+
core.setFailed(
174+
`Failed to create '${statusCheckName}' check with skipped status for commit ${latestCommitHash} with status code ${createStatusCheckResponse.status}`,
175+
);
176+
process.exit(1);
177+
}
229178
return;
230179
}
231180

@@ -365,9 +314,29 @@ async function main(): Promise<void> {
365314
// Post pending status
366315
console.log(`Posting pending status for commit ${latestCommitHash}`);
367316

368-
await upsertStatusCheck( statusCheckName, latestCommitHash, StatusCheckStatusType.InProgress, undefined, `Test runs in progress... You can view them at ${buildLink}`);
369-
317+
const createStatusCheckResponse = await octokit.rest.checks.create({
318+
owner,
319+
repo,
320+
name: statusCheckName,
321+
head_sha: latestCommitHash,
322+
status: StatusCheckStatusType.InProgress,
323+
started_at: new Date().toISOString(),
324+
output: {
325+
title: statusCheckTitle,
326+
summary: `Test runs in progress... You can view them at ${buildLink}`,
327+
},
328+
});
370329

330+
if (createStatusCheckResponse.status === 201) {
331+
console.log(
332+
`Created '${statusCheckName}' check for commit ${latestCommitHash}`,
333+
);
334+
} else {
335+
core.setFailed(
336+
`Failed to create '${statusCheckName}' check for commit ${latestCommitHash} with status code ${createStatusCheckResponse.status}`,
337+
);
338+
process.exit(1);
339+
}
371340
return;
372341
}
373342

@@ -414,11 +383,31 @@ async function main(): Promise<void> {
414383
if (!bitriseComment) {
415384

416385
console.log(`Bitrise comment not detected for commit ${latestCommitHash}`);
386+
// Post fail status
387+
const createStatusCheckResponse = await octokit.rest.checks.create({
388+
owner,
389+
repo,
390+
name: statusCheckName,
391+
head_sha: latestCommitHash,
392+
status: StatusCheckStatusType.Completed,
393+
conclusion: CompletedConclusionType.Failure,
394+
started_at: new Date().toISOString(),
395+
output: {
396+
title: statusCheckTitle,
397+
summary: `No Bitrise comment found for commit ${latestCommitHash}. Try re-applying the '${e2eLabel}' label.`,
398+
},
399+
});
417400

418-
await upsertStatusCheck(statusCheckName, latestCommitHash, StatusCheckStatusType.Completed,
419-
CompletedConclusionType.Failure,
420-
`No Bitrise comment found for commit ${latestCommitHash}. Try re-applying the '${e2eLabel}' label.`);
421-
401+
if (createStatusCheckResponse.status === 201) {
402+
console.log(
403+
`Created '${statusCheckName}' check for commit ${latestCommitHash}`,
404+
);
405+
} else {
406+
core.setFailed(
407+
`Failed to create '${statusCheckName}' check for commit ${latestCommitHash} with status code ${createStatusCheckResponse.status}`,
408+
);
409+
process.exit(1);
410+
}
422411
return;
423412
}
424413

@@ -509,6 +498,27 @@ async function main(): Promise<void> {
509498
}
510499

511500
// Post status check
512-
await upsertStatusCheck(statusCheckName, latestCommitHash, checkStatus.status, checkStatus.conclusion, statusMessage);
501+
const createStatusCheckResponse = await octokit.rest.checks.create({
502+
owner,
503+
repo,
504+
name: statusCheckName,
505+
head_sha: latestCommitHash,
506+
started_at: new Date().toISOString(),
507+
output: {
508+
title: statusCheckTitle,
509+
summary: statusMessage,
510+
},
511+
...checkStatus,
512+
});
513513

514+
if (createStatusCheckResponse.status === 201) {
515+
console.log(
516+
`Created '${statusCheckName}' check for commit ${latestCommitHash}`,
517+
);
518+
} else {
519+
core.setFailed(
520+
`Failed to create '${statusCheckName}' check for commit ${latestCommitHash} with status code ${createStatusCheckResponse.status}`,
521+
);
522+
process.exit(1);
523+
}
514524
}

CHANGELOG.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,80 @@
22

33
## Current Main Branch
44

5+
## 7.37.1 - Dec 12, 2024
6+
### Added
7+
- [#12427](https://github.com/MetaMask/metamask-mobile/pull/12427): feat: implement remote feature flag controller (#12427)
8+
- [#12650](https://github.com/MetaMask/metamask-mobile/pull/12650): fix: fix swaps button on asset overview page for multichain feature (#12650)
9+
- [#12507](https://github.com/MetaMask/metamask-mobile/pull/12507): feat: activate portfolio view (#12507)
10+
- [#12540](https://github.com/MetaMask/metamask-mobile/pull/12540): feat: migrate Base network RPC from https://mainnet.base.org to base-… (#12540)
11+
- [#12505](https://github.com/MetaMask/metamask-mobile/pull/12505): feat: add aggregated portfolio balance cross chains (#12505)
12+
- [#12417](https://github.com/MetaMask/metamask-mobile/pull/12417): feat: multichain detect tokens feat (#12417)
13+
- [#12490](https://github.com/MetaMask/metamask-mobile/pull/12490): feat: 7.37.0 (#12490)
14+
- [#12419](https://github.com/MetaMask/metamask-mobile/pull/12419): feat: upgrade transaction controller to get incoming transactions using accounts API (#12419)
15+
- [#12537](https://github.com/MetaMask/metamask-mobile/pull/12537): feat: enable ledger clear signing feature (#12537)
16+
- [#12622](https://github.com/MetaMask/metamask-mobile/pull/12622): feat: Hide the smart transaction status page if we return a txHash asap (#12622)
17+
- [#12623](https://github.com/MetaMask/metamask-mobile/pull/12623): chore: update bug template to include feature branches (#12623)
18+
- [#12244](https://github.com/MetaMask/metamask-mobile/pull/12244): feat(ci): Expo (#12244)
19+
- [#12459](https://github.com/MetaMask/metamask-mobile/pull/12459): feat: upgrade profile-sync-controller to 1.0.0 (#12459)
20+
- [#12294](https://github.com/MetaMask/metamask-mobile/pull/12294): feat: Add Bitcoin accounts (Flask Only) (#12294)
21+
- [#12243](https://github.com/MetaMask/metamask-mobile/pull/12243): feat: cicd e2e label requirements + pr automation (#12243)
22+
- [#12495](https://github.com/MetaMask/metamask-mobile/pull/12495): feat: Support gas fee flows in swaps (#12495)
23+
- [#12431](https://github.com/MetaMask/metamask-mobile/pull/12431): feat: multi chain asset list (#12431)
24+
25+
### Changed
26+
- [#12538](https://github.com/MetaMask/metamask-mobile/pull/12538): chore: Chore/12435 mvp handle engine does not exist (#12538)
27+
- [#12617](https://github.com/MetaMask/metamask-mobile/pull/12617): docs: Update README.md with new expo instructions (#12617)
28+
- [#12559](https://github.com/MetaMask/metamask-mobile/pull/12559): test: move remaining modal pages and selectors to their respective folders (#12559)
29+
- [#12556](https://github.com/MetaMask/metamask-mobile/pull/12556): test: remove redundent tests in quarantine folder (#12556)
30+
- [#12558](https://github.com/MetaMask/metamask-mobile/pull/12558): test: Create e2e tag for multi chain (#12558)
31+
- [#12531](https://github.com/MetaMask/metamask-mobile/pull/12531): test: Move files to Wallet folder (#12531)
32+
- [#12511](https://github.com/MetaMask/metamask-mobile/pull/12511): test: Move files to Onboarding folder (#12511)
33+
- [#12512](https://github.com/MetaMask/metamask-mobile/pull/12512): test: address regression pipeline slow down (#12512)
34+
- [#12513](https://github.com/MetaMask/metamask-mobile/pull/12513): ci: disable security e2e tests (#12513)
35+
- [#12491](https://github.com/MetaMask/metamask-mobile/pull/12491): chore: chore/7.37.0-Changelog (#12491)
36+
- [#12602](https://github.com/MetaMask/metamask-mobile/pull/12602): chore: Additional e2e test to support `PortfolioView` (#12602)
37+
- [#12321](https://github.com/MetaMask/metamask-mobile/pull/12321): refactor: remove global network from transaction controller (#12321)
38+
- [#12536](https://github.com/MetaMask/metamask-mobile/pull/12536): test: fix mock server (#12536)
39+
- [#12288](https://github.com/MetaMask/metamask-mobile/pull/12288): test: add e2e test for security alert api (#12288)
40+
- [#12597](https://github.com/MetaMask/metamask-mobile/pull/12597): test(3615): additional e2e scenarios editing permissions and non permitted networks (#12597)
41+
- [#12488](https://github.com/MetaMask/metamask-mobile/pull/12488): test(3615): add new e2e test for initial dapp connection and non permitted flow (#12488)
42+
- [#12532](https://github.com/MetaMask/metamask-mobile/pull/12532): refactor: de-anonymize insensitive properties of swaps events (#12532)
43+
- [#12485](https://github.com/MetaMask/metamask-mobile/pull/12485): chore: Stop suppressing pod install failures (#12485)
44+
- [#12574](https://github.com/MetaMask/metamask-mobile/pull/12574): chore: Add option to skip pod install setup step (#12574)
45+
- [#12609](https://github.com/MetaMask/metamask-mobile/pull/12609): chore: update user storage E2E framework (#12609)
46+
- [#12569](https://github.com/MetaMask/metamask-mobile/pull/12569): chore: transfer ownership of auth & profile sync E2E from notifications to identity (#12569)
47+
- [#12534](https://github.com/MetaMask/metamask-mobile/pull/12534): chore: change ownership of profile sync from notifications to identity (#12534)
48+
- [#12543](https://github.com/MetaMask/metamask-mobile/pull/12543): chore: Decrease hot and cold start app to wallet view time (#12543)
49+
- [#12428](https://github.com/MetaMask/metamask-mobile/pull/12428): chore: Add eth hd keyring and key tree to decrease unlock time (#12428)
50+
- [#12555](https://github.com/MetaMask/metamask-mobile/pull/12555): chore: Update accounts packages (#12555)
51+
- [#12563](https://github.com/MetaMask/metamask-mobile/pull/12563): chore: cicd e2e hardening (#12563)
52+
- [#12554](https://github.com/MetaMask/metamask-mobile/pull/12554): chore: fail status when on no labels for retro-label changes (#12554)
53+
- [#12295](https://github.com/MetaMask/metamask-mobile/pull/12295): chore: use getShares contract method from stake-sdk for unstake all flow (#12295)
54+
- [#12551](https://github.com/MetaMask/metamask-mobile/pull/12551): chore: Bump Snaps packages (#12551)
55+
56+
### Fixed
57+
- [#12659](https://github.com/MetaMask/metamask-mobile/pull/12659): fix: fix token details navigation (#12659)
58+
- [#12624](https://github.com/MetaMask/metamask-mobile/pull/12624): fix: add new translations (#12624)
59+
- [#12373](https://github.com/MetaMask/metamask-mobile/pull/12373): fix: circular dependencies engine-network-handleNetworkSwitch (#12373)
60+
- [#12663](https://github.com/MetaMask/metamask-mobile/pull/12663): fix: disable flaky tests on incoming-transactions.spec (#12663)
61+
- [#12598](https://github.com/MetaMask/metamask-mobile/pull/12598): fix: disable mock poc test (#12598)
62+
- [#12230](https://github.com/MetaMask/metamask-mobile/pull/12230): fix: Jest timer error in unit test (#12230)
63+
- [#12626](https://github.com/MetaMask/metamask-mobile/pull/12626): fix: fix flaky test (#12626)
64+
- [#12372](https://github.com/MetaMask/metamask-mobile/pull/12372): fix: abstract out circular dependencies between engine and networks util (#12372)
65+
- [#12641](https://github.com/MetaMask/metamask-mobile/pull/12641): fix: fix network selector (#12641)
66+
- [#12637](https://github.com/MetaMask/metamask-mobile/pull/12637): fix: fix native tokens filter when all networks is selected (#12637)
67+
- [#12529](https://github.com/MetaMask/metamask-mobile/pull/12529): fix: fix NFTs disappearing after killing app (#12529)
68+
- [#12562](https://github.com/MetaMask/metamask-mobile/pull/12562): fix: Move `AssetPollingProvider` from Root to Nav/Main/index.js (#12562)
69+
- [#12607](https://github.com/MetaMask/metamask-mobile/pull/12607): fix: e2e regression gas api (#12607)
70+
- [#12460](https://github.com/MetaMask/metamask-mobile/pull/12460): fix: add source when local PPOM fails (#12460)
71+
- [#12199](https://github.com/MetaMask/metamask-mobile/pull/12199): fix: 10967 User able to add Ledger account with existing account name (#12199)
72+
- [#12566](https://github.com/MetaMask/metamask-mobile/pull/12566): fix(12527): sdk connection with unknown url causes a bug (#12566)
73+
- [#12405](https://github.com/MetaMask/metamask-mobile/pull/12405): fix(431-2): active network icon has too much margin and adding optional prop (#12405)
74+
- [#12591](https://github.com/MetaMask/metamask-mobile/pull/12591): fix: add resolution for express to fix failing audit on path-to-regexp (#12591)
75+
- [#12567](https://github.com/MetaMask/metamask-mobile/pull/12567): fix: update input handling in useInputHandler to support BACK key functionality (#12567)
76+
- [#12630](https://github.com/MetaMask/metamask-mobile/pull/12630): fix: hide tokens without balance for multichain (#12630)
77+
78+
579
## 7.37.0 - Nov 28, 2024
680
### Added
781
- [#12091](https://github.com/MetaMask/metamask-mobile/pull/12091): feat: 2020 Add a performance test for iOS in Bitrise (#12091)

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ android {
178178
applicationId "io.metamask"
179179
minSdkVersion rootProject.ext.minSdkVersion
180180
targetSdkVersion rootProject.ext.targetSdkVersion
181-
versionName "7.37.0"
182-
versionCode 1512
181+
versionName "7.38.0"
182+
versionCode 1514
183183
testBuildType System.getProperty('testBuildType', 'debug')
184184
missingDimensionStrategy 'react-native-camera', 'general'
185185
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

0 commit comments

Comments
 (0)