Skip to content

Commit bee95a5

Browse files
committed
merge: resolve conflict with origin/code/cash
Keep both isUnexpectedOwnerAccount (PR) and isRaceCondition (base) tests. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
2 parents 3e6a0e8 + a450629 commit bee95a5

30 files changed

Lines changed: 808 additions & 129 deletions

File tree

.github/dependabot.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ updates:
55
schedule:
66
interval: weekly
77
open-pull-requests-limit: 10
8+
labels:
9+
- "dependencies"
10+
- "type: build"
811
target-branch: code/cash
912
reviewers:
1013
- bmc08gt

.github/labeler.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
"area: payments":
2+
- changed-files:
3+
- any-glob-to-any-file:
4+
- "apps/flipcash/shared/payments/**"
5+
- "apps/flipcash/features/cash/**"
6+
- "apps/flipcash/features/transactions/**"
7+
- "apps/flipcash/features/withdrawal/**"
8+
- "apps/flipcash/shared/transfers/**"
9+
- "apps/flipcash/shared/bills/**"
10+
- "apps/flipcash/shared/google-play-billing/**"
11+
- "definitions/**/micropayment/**"
12+
13+
"area: crypto":
14+
- changed-files:
15+
- any-glob-to-any-file:
16+
- "libs/crypto/**"
17+
- "libs/encryption/**"
18+
- "services/opencode/**/solana/**"
19+
20+
"area: intents":
21+
- changed-files:
22+
- any-glob-to-any-file:
23+
- "services/code/**/intents/**"
24+
- "services/flipchat/**/intents/**"
25+
- "services/opencode/**/intents/**"
26+
27+
"area: auth":
28+
- changed-files:
29+
- any-glob-to-any-file:
30+
- "apps/flipcash/features/login/**"
31+
- "apps/flipcash/shared/authentication/**"
32+
- "apps/flipcash/shared/accesskey/**"
33+
- "apps/flipcash/shared/session/**"
34+
- "apps/flipcash/features/contact-verification/**"
35+
- "apps/flipcash/shared/phone/**"
36+
37+
"area: tokens":
38+
- changed-files:
39+
- any-glob-to-any-file:
40+
- "apps/flipcash/features/tokens/**"
41+
- "apps/flipcash/shared/tokens/**"
42+
- "apps/flipcash/core/**/tokens/**"
43+
44+
"area: ui":
45+
- changed-files:
46+
- any-glob-to-any-file:
47+
- "ui/**"
48+
- "apps/flipcash/shared/theme/**"
49+
- "apps/flipcash/features/bill-customization/**"
50+
51+
"area: network":
52+
- changed-files:
53+
- any-glob-to-any-file:
54+
- "libs/network/**"
55+
- "services/code/**"
56+
- "services/flipcash/**"
57+
- "services/flipcash-compose/**"
58+
- "services/opencode/**"
59+
- "services/opencode-compose/**"
60+
- "definitions/**"
61+
62+
"area: onramp":
63+
- changed-files:
64+
- any-glob-to-any-file:
65+
- "apps/flipcash/features/onramp/**"
66+
- "apps/flipcash/features/deposit/**"
67+
- "apps/flipcash/features/purchase/**"
68+
- "apps/flipcash/shared/onramp/**"
69+
70+
"area: scanner":
71+
- changed-files:
72+
- any-glob-to-any-file:
73+
- "apps/flipcash/features/scanner/**"
74+
- "ui/scanner/**"
75+
- "vendor/**/scanner/**"
76+
- "libs/code-detection/**"
77+
- "libs/quickresponse/**"
78+
79+
"area: notifications":
80+
- changed-files:
81+
- any-glob-to-any-file:
82+
- "apps/flipcash/shared/notifications/**"
83+
- "apps/flipcash/shared/push/**"
84+
- "libs/messaging/**"
85+
86+
"area: deeplinks":
87+
- changed-files:
88+
- any-glob-to-any-file:
89+
- "apps/flipcash/shared/router/**"
90+
- "apps/flipcash/shared/onramp/deeplinks/**"
91+
92+
"area: build-system":
93+
- changed-files:
94+
- any-glob-to-any-file:
95+
- "build-logic/**"
96+
- "build.gradle.kts"
97+
- "settings.gradle.kts"
98+
- "gradle/**"
99+
- "gradle.properties"
100+
- "*.versions.toml"

.github/workflows/labeler.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Label PRs
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize]
6+
7+
permissions:
8+
contents: read
9+
pull-requests: write
10+
11+
jobs:
12+
area-labels:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/labeler@v5
16+
with:
17+
sync-labels: false
18+
19+
type-label:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/github-script@v7
23+
with:
24+
script: |
25+
const title = context.payload.pull_request.title;
26+
const prefixMap = {
27+
'feat': 'type: feature',
28+
'fix': 'type: fix',
29+
'refactor': 'type: refactor',
30+
'chore': 'type: chore',
31+
'build': 'type: build',
32+
'test': 'type: test',
33+
'docs': 'type: docs',
34+
};
35+
36+
const match = title.match(/^(\w+)(\(.+\))?[!]?:/);
37+
if (!match) return;
38+
39+
const prefix = match[1];
40+
const label = prefixMap[prefix];
41+
if (!label) return;
42+
43+
const { data: labels } = await github.rest.issues.listLabelsOnIssue({
44+
owner: context.repo.owner,
45+
repo: context.repo.repo,
46+
issue_number: context.issue.number,
47+
});
48+
49+
if (labels.some(l => l.name === label)) return;
50+
51+
await github.rest.issues.addLabels({
52+
owner: context.repo.owner,
53+
repo: context.repo.repo,
54+
issue_number: context.issue.number,
55+
labels: [label],
56+
});

.well-known/release-manifest.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
2-
"updated": "2026-05-02T17:27:11Z",
2+
"updated": "2026-05-04T16:24:39Z",
33
"tracks": {
44
"production": {
5-
"versionCode": 3376,
6-
"versionName": "2026.4.11"
5+
"versionCode": 3449,
6+
"versionName": "2026.5.1"
77
},
88
"beta": null,
99
"alpha": null,
1010
"internal": {
11-
"versionCode": 3449,
11+
"versionCode": 3452,
1212
"versionName": "2026.5.1"
1313
}
1414
}

apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/ui/TileButton.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,24 @@ import androidx.compose.ui.graphics.ColorFilter
1717
import androidx.compose.ui.graphics.painter.Painter
1818
import androidx.compose.ui.unit.dp
1919
import com.getcode.theme.CodeTheme
20+
import com.getcode.theme.extraSmall
2021
import com.getcode.ui.core.rememberedClickable
2122

2223
@Composable
2324
fun TileButton(
2425
text: String,
2526
icon: Painter,
2627
modifier: Modifier = Modifier,
27-
contentPadding: PaddingValues = PaddingValues(vertical = CodeTheme.dimens.grid.x4),
28+
contentPadding: PaddingValues = PaddingValues(vertical = CodeTheme.dimens.grid.x6),
2829
onClick: () -> Unit,
2930
) {
3031
Box(
3132
modifier = modifier
3233
.background(
3334
color = CodeTheme.colors.surfaceVariant,
34-
shape = CodeTheme.shapes.large,
35+
shape = CodeTheme.shapes.extraSmall,
3536
)
36-
.clip(CodeTheme.shapes.large)
37+
.clip(CodeTheme.shapes.extraSmall)
3738
.rememberedClickable(onClick = onClick)
3839
.padding(contentPadding),
3940
contentAlignment = Alignment.Center,
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<!--
2+
~ Copyright (C) 2026 The Android Open Source Project
3+
~
4+
~ Licensed under the Apache License, Version 2.0 (the "License");
5+
~ you may not use this file except in compliance with the License.
6+
~ You may obtain a copy of the License at
7+
~
8+
~ http://www.apache.org/licenses/LICENSE-2.0
9+
~
10+
~ Unless required by applicable law or agreed to in writing, software
11+
~ distributed under the License is distributed on an "AS IS" BASIS,
12+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
~ See the License for the specific language governing permissions and
14+
~ limitations under the License.
15+
-->
16+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
17+
android:width="278dp"
18+
android:height="124dp"
19+
android:viewportWidth="278"
20+
android:viewportHeight="124">
21+
<path
22+
android:pathData="M61,112C88.7,112 111,89.7 111,62C111,34.29 88.7,12 61,12C33.29,12 11,34.29 11,62C11,89.7 33.29,112 61,112Z"
23+
android:fillColor="#2775CA"/>
24+
<path
25+
android:pathData="M70.58,27.62C70.79,26.79 71.62,26.37 72.46,26.79C83.92,30.54 93.08,39.5 96.83,51.37C103.08,71.16 92.25,92.2 72.46,98.45C72.25,98.66 71.83,98.66 71.62,98.66C70.79,98.45 70.38,97.83 70.37,96.99V94.08C70.38,93.03 70.79,92.41 71.62,91.99C80.17,88.87 87.04,82.2 90.17,73.45C96.21,57.41 87.87,39.29 71.62,33.46C71,33.04 70.38,32.21 70.37,31.37V28.46C70.37,28.04 70.37,27.83 70.58,27.62ZM50.37,26.58C51.21,26.79 51.62,27.41 51.62,28.25V31.16C51.62,32.21 51.21,32.83 50.37,33.25C41.83,36.37 34.96,43.04 31.83,51.79C25.79,67.83 34.12,85.95 50.37,91.78C51,92.2 51.62,93.03 51.62,93.66V96.58C51.62,96.99 51.62,97.2 51.42,97.41C51.21,98.24 50.37,98.66 49.54,98.24C37.87,94.49 28.92,85.53 25.17,73.87C18.92,54.08 29.75,33.04 49.54,26.79C49.75,26.58 50.17,26.58 50.37,26.58ZM62.46,37.42C63.5,37.62 64.12,38.25 64.12,39.08V44.08C68.92,44.5 72.67,48.04 73.5,52.62V52.83C73.5,53.66 72.87,54.29 72.04,54.29H68.71C68.08,54.29 67.46,53.87 67.25,53.25C66.21,50.12 64.12,48.87 60.37,48.87C56.21,48.87 54.12,50.75 54.12,53.66C54.12,56.58 55.37,58.25 61.62,59.08C70.37,60.12 74.75,62.62 74.75,69.91C74.75,75.54 70.58,79.91 64.33,80.95V85.95C64.12,86.99 63.5,87.62 62.67,87.62H59.54C58.5,87.41 57.87,86.79 57.87,85.95V80.95C51,79.91 47.67,76.16 46.83,70.95V70.75C46.83,69.91 47.46,69.29 48.29,69.29H51.83C52.46,69.29 53.08,69.7 53.29,70.54C53.92,73.66 55.79,75.95 61.21,75.95C65.17,75.95 68.08,73.66 68.08,70.33C68.08,67 66.21,65.75 60.37,64.71C51.62,63.66 47.46,60.96 47.46,54.08C47.46,48.87 51.42,44.71 57.67,43.87V39.08C57.87,38.04 58.5,37.42 59.33,37.42H62.46Z"
26+
android:fillColor="#ffffff"
27+
android:fillType="evenOdd"/>
28+
<path
29+
android:pathData="M102.73,104.76m-16.98,0a16.98,16.98 0,1 1,33.96 0a16.98,16.98 0,1 1,-33.96 0"
30+
android:strokeWidth="3.95626"
31+
android:fillColor="#ffffff"
32+
android:strokeColor="#19191A"/>
33+
<path
34+
android:pathData="M111.24,108.22C111.49,108.22 111.62,108.53 111.44,108.71L108.67,111.48C108.56,111.59 108.41,111.65 108.26,111.65H94.23C94.18,111.65 94.12,111.63 94.07,111.6C94.03,111.57 93.99,111.52 93.97,111.47C93.94,111.42 93.94,111.36 93.95,111.3C93.96,111.25 93.99,111.2 94.03,111.16L96.8,108.39C96.91,108.28 97.05,108.22 97.21,108.22H111.24Z"
35+
android:fillColor="#19191A"/>
36+
<path
37+
android:pathData="M108.26,103.01C108.41,103.01 108.56,103.07 108.67,103.18L111.44,105.95C111.62,106.13 111.49,106.44 111.24,106.44H97.21C97.05,106.44 96.91,106.38 96.8,106.27L94.03,103.5C93.99,103.46 93.96,103.41 93.95,103.35C93.94,103.3 93.94,103.24 93.97,103.19C93.99,103.14 94.03,103.09 94.07,103.06C94.12,103.03 94.18,103.01 94.23,103.01H108.26Z"
38+
android:fillColor="#19191A"/>
39+
<path
40+
android:pathData="M111.24,97.87C111.49,97.87 111.62,98.18 111.44,98.36L108.67,101.13C108.56,101.24 108.41,101.3 108.26,101.3H94.23C94.18,101.3 94.12,101.28 94.07,101.25C94.03,101.22 93.99,101.18 93.97,101.12C93.94,101.07 93.94,101.01 93.95,100.96C93.96,100.9 93.99,100.85 94.03,100.81L96.8,98.04L96.8,98.04C96.91,97.93 97.06,97.87 97.21,97.87H111.24Z"
41+
android:fillColor="#19191A"/>
42+
<path
43+
android:pathData="M141.33,53.23L150.1,62L141.33,70.77L139.27,68.71L144.52,63.46H128.5V60.54H144.52L139.27,55.29L141.33,53.23Z"
44+
android:strokeAlpha="0.33"
45+
android:fillColor="#ffffff"
46+
android:fillType="evenOdd"
47+
android:fillAlpha="0.33"/>
48+
<path
49+
android:pathData="M217,12L217,12A50,50 0,0 1,267 62L267,62A50,50 0,0 1,217 112L217,112A50,50 0,0 1,167 62L167,62A50,50 0,0 1,217 12z"
50+
android:fillColor="#282828"/>
51+
<path
52+
android:pathData="M197.49,42.23C197.49,37.92 200.99,34.43 205.3,34.43H228.7C233.01,34.43 236.51,37.92 236.51,42.23C236.51,46.54 233.01,50.04 228.7,50.04H205.3C200.99,50.04 197.49,46.54 197.49,42.23Z"
53+
android:fillColor="#ffffff"/>
54+
<path
55+
android:pathData="M197.49,62C197.49,57.69 200.99,54.2 205.3,54.2H223.52C227.82,54.2 231.32,57.69 231.32,62C231.32,66.31 227.82,69.8 223.52,69.8H205.3C200.99,69.8 197.49,66.31 197.49,62Z"
56+
android:fillColor="#ffffff"/>
57+
<path
58+
android:pathData="M197.49,81.77C197.49,77.46 200.99,73.96 205.3,73.96C209.6,73.96 213.1,77.46 213.1,81.77C213.1,86.08 209.6,89.57 205.3,89.57C200.99,89.57 197.49,86.08 197.49,81.77Z"
59+
android:fillColor="#ffffff"/>
60+
</vector>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<!--
2+
~ Copyright (C) 2026 The Android Open Source Project
3+
~
4+
~ Licensed under the Apache License, Version 2.0 (the "License");
5+
~ you may not use this file except in compliance with the License.
6+
~ You may obtain a copy of the License at
7+
~
8+
~ http://www.apache.org/licenses/LICENSE-2.0
9+
~
10+
~ Unless required by applicable law or agreed to in writing, software
11+
~ distributed under the License is distributed on an "AS IS" BASIS,
12+
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
~ See the License for the specific language governing permissions and
14+
~ limitations under the License.
15+
-->
16+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
17+
android:width="100dp"
18+
android:height="100dp"
19+
android:viewportWidth="100"
20+
android:viewportHeight="100">
21+
<path
22+
android:pathData="M50,100C77.71,100 100,77.71 100,50C100,22.29 77.71,0 50,0C22.29,0 0,22.29 0,50C0,77.71 22.29,100 50,100Z"
23+
android:fillColor="#2775CA"/>
24+
<path
25+
android:pathData="M59.59,15.63C59.8,14.79 60.63,14.38 61.46,14.79C72.92,18.54 82.09,27.5 85.84,39.38C92.09,59.17 81.25,80.21 61.46,86.45C61.25,86.66 60.84,86.66 60.63,86.66C59.8,86.45 59.38,85.83 59.38,85V82.08C59.38,81.04 59.8,80.41 60.63,80C69.17,76.87 76.05,70.21 79.17,61.46C85.21,45.42 76.88,27.29 60.63,21.46C60,21.04 59.38,20.21 59.38,19.38V16.46C59.38,16.04 59.38,15.84 59.59,15.63ZM39.38,14.59C40.21,14.79 40.63,15.42 40.63,16.25V19.17C40.63,20.21 40.21,20.84 39.38,21.25C30.84,24.38 23.96,31.04 20.84,39.79C14.8,55.83 23.13,73.96 39.38,79.79C40,80.21 40.63,81.04 40.63,81.66V84.58C40.63,85 40.63,85.2 40.42,85.41C40.21,86.25 39.38,86.66 38.55,86.25C26.88,82.5 17.92,73.54 14.17,61.87C7.92,42.08 18.75,21.04 38.55,14.79C38.75,14.59 39.17,14.59 39.38,14.59ZM51.46,25.42C52.5,25.63 53.13,26.25 53.13,27.09V32.09C57.92,32.5 61.67,36.04 62.5,40.63V40.84C62.5,41.67 61.88,42.29 61.05,42.29H57.71C57.09,42.29 56.46,41.88 56.25,41.25C55.21,38.13 53.13,36.88 49.38,36.88C45.21,36.88 43.13,38.75 43.13,41.67C43.13,44.58 44.38,46.25 50.63,47.08C59.38,48.13 63.75,50.63 63.75,57.92C63.75,63.54 59.59,67.92 53.34,68.96V73.96C53.13,75 52.5,75.62 51.67,75.62H48.55C47.5,75.42 46.88,74.79 46.88,73.96V68.96C40,67.92 36.67,64.17 35.84,58.96V58.75C35.84,57.92 36.46,57.29 37.3,57.29H40.84C41.46,57.29 42.09,57.71 42.3,58.54C42.92,61.67 44.8,63.96 50.21,63.96C54.17,63.96 57.09,61.67 57.09,58.33C57.09,55 55.21,53.75 49.38,52.71C40.63,51.67 36.46,48.96 36.46,42.09C36.46,36.88 40.42,32.71 46.67,31.88V27.09C46.88,26.04 47.5,25.42 48.34,25.42H51.46Z"
26+
android:fillColor="#ffffff"
27+
android:fillType="evenOdd"/>
28+
</vector>

0 commit comments

Comments
 (0)