Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
24858c0
Add base PaymentCredentialsGenerator
Skalakid Feb 12, 2026
c82af87
Update Push Tokenization results handling
Skalakid Feb 12, 2026
e1af64e
Add UAPP new props
Skalakid Feb 13, 2026
54cd3fe
Add ability to fetch GOPC in RN during push provisioning
Skalakid Feb 13, 2026
fbcd164
Add new function to paper spec
Skalakid Feb 13, 2026
4d2c2aa
Merge branch 'main' into feat/upgrade-to-Google-UAPP
Skalakid Feb 16, 2026
3412195
Update docs
Skalakid Feb 16, 2026
fcc4cdd
feat: pass optional primaryAccountIdentifier to Apple Wallet
Brunonascdev Sep 21, 2026
759ea6f
Merge remote-tracking branch 'origin/main' into feat/upgrade-to-Googl…
Skalakid Sep 29, 2026
2dc9b0a
chore: merge main
JakubKorytko Oct 9, 2026
31c1613
fix: clear pending tokenize promise on async pushTokenize failures
JakubKorytko Oct 8, 2026
8283655
fix: settle pending payment credentials requests on error, timeout an…
JakubKorytko Oct 8, 2026
22c5f7e
fix: report activation only for successful tokenization outcomes
JakubKorytko Oct 8, 2026
138c622
docs: require payment credentials handler and note tested TapAndPay SDK
JakubKorytko Oct 8, 2026
68447d6
chore: rename Android dummy credentials and drop unused card field
JakubKorytko Oct 8, 2026
81f9973
fix: keep legacy result handling for resume tokenize flow
JakubKorytko Oct 8, 2026
6c40f88
fix: type onCardActivated tokenId as nullable
JakubKorytko Oct 8, 2026
156aa2e
fix: settle UAPP tokenize result without PushTokenizeResult like the …
JakubKorytko Oct 9, 2026
472ee27
docs: fix UAPP acronym expansion
JakubKorytko Oct 9, 2026
f8e160c
chore: bump version to 0.2.0-0
JakubKorytko Oct 9, 2026
efa4810
refactor: split onActivityResult into per-request handlers
JakubKorytko Oct 9, 2026
467d386
fix: mark onCardActivated tokenId as optional
JakubKorytko Oct 9, 2026
ac9c584
fix: report payment credentials failures with GeneratePaymentCredenti…
JakubKorytko Oct 12, 2026
b219673
feat: pass tokenRequestorId to the payment credentials handler
JakubKorytko Oct 12, 2026
b4c059d
fix: read separate push tokenize result extras when PushTokenizeResul…
JakubKorytko Oct 12, 2026
b6561ad
chore: migrate deprecated TapAndPay calls to request variants
JakubKorytko Oct 12, 2026
63b3cfa
feat: add hasEligibleTokenizationTarget
JakubKorytko Oct 12, 2026
5c8e613
docs: align payload comments in UAPP.md
JakubKorytko Oct 12, 2026
794afd5
Merge origin/main into feat/ios-primary-account-identifier
Brunonascdev Oct 12, 2026
25154d3
fix: reject when a card is already on every Apple device
Brunonascdev Oct 12, 2026
078464e
feat: tell apps which Apple device can still take the card
Brunonascdev Oct 12, 2026
32556d9
chore: drop field comments that the rest of the types do not use
Brunonascdev Oct 12, 2026
934dc35
fix: match Apple Watch passes more reliably
Brunonascdev Oct 12, 2026
229f4c6
feat: list and activate Apple Wallet passes
Brunonascdev Oct 12, 2026
0da090c
refactor: use withTimeoutOrNull for payment credentials timeout
JakubKorytko Oct 13, 2026
d3208ec
fix: start payment credentials coroutine undispatched
JakubKorytko Oct 13, 2026
2cc9c2a
docs: apply review suggestions
JakubKorytko Oct 16, 2026
feeea64
Merge pull request #75 from Expensify/feat/upgrade-to-Google-UAPP
mountiny Oct 20, 2026
f7ef57e
Update package-lock.json version to 0.2.0
os-botify[bot] Oct 20, 2026
9c15903
Update package.json version to 0.2.0
os-botify[bot] Oct 20, 2026
7f2fd5c
Bump Node to 24.22.1 to block the compromised eMudhra intermediates
robertjchen Oct 21, 2026
00afe38
Merge pull request #97 from Expensify/robert-nodeEmudhraBlocklist
JakubKorytko Oct 21, 2026
f5f04e1
Update package-lock.json version to 0.2.1
os-botify[bot] Oct 21, 2026
8eacf5a
Update package.json version to 0.2.1
os-botify[bot] Oct 21, 2026
784c69d
Bump handlebars from 4.7.8 to 4.7.10
MelvinBot Oct 26, 2026
5899829
Bump launch-editor to 2.14.2 to address Dependabot alerts
MelvinBot Oct 26, 2026
aac2ae1
Bump compression to 1.8.2 to address GHSA-vc2v-76pw-4v95
MelvinBot Oct 26, 2026
53d4ae3
Bump vm2 from 3.10.4 to 3.12.2
MelvinBot Oct 26, 2026
64e3715
Bump node-forge to 1.4.0 to address Dependabot alerts
MelvinBot Oct 26, 2026
9fe4cff
Bump http-cache-semantics from 4.2.0 to 4.3.0
MelvinBot Oct 26, 2026
77c9348
chore(deps): bump brace-expansion to 1.1.21 and 2.1.7 to address Depe…
MelvinBot Oct 26, 2026
e99c447
Bump ip-address from 10.1.0 to 10.7.5
MelvinBot Oct 26, 2026
3edbbe2
fix(deps): bump @xmldom/xmldom to 0.8.15
MelvinBot Oct 26, 2026
7c4da88
Bump nanoid to 3.3.20 to address Dependabot alerts
MelvinBot Oct 26, 2026
7cfdd4d
Bump shell-quote to 1.12.0 in expo-example lockfile
MelvinBot Oct 26, 2026
7a7837a
Bump browserslist to 4.28.7
MelvinBot Oct 26, 2026
48bcc9b
Override metro to 0.83.8 to drop vulnerable image-size
MelvinBot Oct 26, 2026
827773f
Bump form-data to 4.0.6
MelvinBot Oct 26, 2026
2114d9d
Bump @babel/plugin-transform-modules-systemjs to 7.29.4
MelvinBot Oct 26, 2026
d3023d9
fix: bump postcss to 8.5.31 via overrides
MelvinBot Oct 26, 2026
14b0284
Bump lodash to 4.18.1
MelvinBot Oct 26, 2026
7c8147c
Override tmp to ^0.2.6 to fix Dependabot alerts
MelvinBot Oct 26, 2026
de813aa
Bump transitive ws to 6.2.6, 7.5.13, 8.21.3 to patch GHSA-96hv-2xvq-fx4p
MelvinBot Oct 26, 2026
ffff68a
Bump undici to 6.29.1 to address Dependabot alerts
MelvinBot Oct 26, 2026
ac331fe
Bump basic-ftp from 5.1.0 to 5.3.1
MelvinBot Oct 26, 2026
1217ef7
Bump picomatch to 2.3.2, 3.0.2, and 4.0.4 to patch ReDoS and glob-mat…
MelvinBot Oct 26, 2026
2456c82
chore(deps): bump tar from 7.5.7 to 7.5.22
MelvinBot Oct 26, 2026
da2ec2b
chore(deps): bump flatted to 3.4.4 to patch GHSA-rf6f-7fwh-wjgh
MelvinBot Oct 26, 2026
47c2bdf
Bump addressable to 2.9.0 in basic-example
MelvinBot Oct 26, 2026
472698f
Bump rexml to 3.4.4 in basic-example
MelvinBot Oct 26, 2026
e3d7b78
Bump concurrent-ruby to 1.3.8 in basic-example
MelvinBot Oct 26, 2026
b228316
Override release-it's proxy-agent to 6.5.0 to remove vulnerable ip pa…
MelvinBot Oct 26, 2026
8fa3a12
Override fast-xml-parser to ^5.7.0 to fix Dependabot alerts
MelvinBot Oct 26, 2026
c048097
Bump minimatch to patched versions
MelvinBot Oct 26, 2026
e1bbd94
Merge pull request #103 from Expensify/claude-bumpVm2
rlinoz Oct 26, 2026
852077c
Update package-lock.json version to 0.2.2
os-botify[bot] Oct 26, 2026
ebe6b17
Update package.json version to 0.2.2
os-botify[bot] Oct 26, 2026
1fe2b22
Merge pull request #104 from Expensify/claude-bumpHttpCacheSemantics
blimpich Oct 26, 2026
c0cf911
Update package-lock.json version to 0.2.3
os-botify[bot] Oct 26, 2026
9bb2e2d
Update package.json version to 0.2.3
os-botify[bot] Oct 26, 2026
18a2424
Merge branch 'main' into claude-bumpXmldom
yuwenmemon Oct 26, 2026
6b570f2
Merge branch 'main' into claude-bumpFormData
blimpich Oct 26, 2026
ebfa49b
Merge pull request #121 from Expensify/claude-bumpTarTo7.5.22
chiragsalian Oct 26, 2026
5d05b27
Update package-lock.json version to 0.2.4
os-botify[bot] Oct 26, 2026
519cf73
Update package.json version to 0.2.4
os-botify[bot] Oct 26, 2026
be8ec92
Merge pull request #105 from Expensify/claude-bumpBraceExpansion
NicolasBonet Oct 26, 2026
6770b40
Update package-lock.json version to 0.2.5
os-botify[bot] Oct 26, 2026
8cf31e0
Update package.json version to 0.2.5
os-botify[bot] Oct 26, 2026
38741d5
Merge pull request #118 from Expensify/claude-bumpBasicFtp
marcochavezf Oct 26, 2026
bd6db7b
Merge pull request #102 from Expensify/claude-bumpNodeForge
iwiznia Oct 26, 2026
1c3c8b4
Update package-lock.json version to 0.2.6
os-botify[bot] Oct 26, 2026
43d6b37
Update package.json version to 0.2.6
os-botify[bot] Oct 26, 2026
f0c18a7
Merge pull request #116 from Expensify/claude-bumpLodash
MonilBhavsar Oct 27, 2026
ff3774b
Update package-lock.json version to 0.2.7
os-botify[bot] Oct 27, 2026
3680dc2
Update package.json version to 0.2.7
os-botify[bot] Oct 27, 2026
e7a6919
chore(deps): bump js-yaml for security fixes
roryabraham Oct 27, 2026
7cd185e
Merge pull request #108 from Expensify/claude-bumpNanoid
JakubKorytko Oct 27, 2026
6594c50
Merge pull request #110 from Expensify/claude-bumpShellQuoteExpoExample
JakubKorytko Oct 27, 2026
19db3fd
Update package-lock.json version to 0.2.8
os-botify[bot] Oct 27, 2026
726744f
Update package.json version to 0.2.8
os-botify[bot] Oct 27, 2026
08677e1
Merge pull request #113 from Expensify/claude-bumpBabelModulesSystemjs
JakubKorytko Oct 27, 2026
5fd9b25
Merge pull request #114 from Expensify/claude-bumpFormData
JakubKorytko Oct 27, 2026
613f4ea
Update package-lock.json version to 0.2.9
os-botify[bot] Oct 27, 2026
f488ba1
Update package.json version to 0.2.9
os-botify[bot] Oct 27, 2026
38a3416
Merge pull request #122 from Expensify/claude-bumpPicomatch
JakubKorytko Oct 27, 2026
893c4ec
Merge pull request #124 from Expensify/claude-bumpAddressable
JakubKorytko Oct 27, 2026
87ed42f
Update package-lock.json version to 0.2.10
os-botify[bot] Oct 27, 2026
16bac70
Update package.json version to 0.2.10
os-botify[bot] Oct 27, 2026
9c845dd
Merge pull request #126 from Expensify/claude-bumpRexml
JakubKorytko Oct 27, 2026
5b538e4
Merge pull request #130 from Expensify/recreate-pr-107-js-yaml
JakubKorytko Oct 27, 2026
9e1201c
Update package-lock.json version to 0.2.11
os-botify[bot] Oct 27, 2026
9d27831
Update package.json version to 0.2.11
os-botify[bot] Oct 27, 2026
9cb28fe
Merge pull request #98 from Expensify/claude-bumpHandlebars
JakubKorytko Oct 27, 2026
e1c28d7
Merge pull request #123 from Expensify/claude-bumpFlatted
JakubKorytko Oct 27, 2026
ac33f94
Merge pull request #112 from Expensify/claude-bumpBrowserslist
JakubKorytko Oct 27, 2026
3858a12
Merge pull request #125 from Expensify/claude-bumpConcurrentRuby
JakubKorytko Oct 27, 2026
618fe08
Merge pull request #129 from Expensify/claude-bumpMinimatch
JakubKorytko Oct 27, 2026
4127260
Merge remote-tracking branch 'origin/main' into claude-bumpPostcss
Copilot Oct 27, 2026
8877d2e
Merge pull request #109 from Expensify/claude-bumpXmldom
JakubKorytko Oct 27, 2026
7848aa3
fix: merge duplicate overrides blocks in package.json
JakubKorytko Oct 27, 2026
cff2cf6
fix: sync expo-example lockfile with root package
JakubKorytko Oct 27, 2026
17247a2
Merge pull request #131 from Expensify/fix-duplicate-overrides
madmax330 Oct 27, 2026
bee965d
Update package-lock.json version to 0.2.12
os-botify[bot] Oct 27, 2026
735bed8
Update package.json version to 0.2.12
os-botify[bot] Oct 27, 2026
ad58453
chore: merge main
JakubKorytko Oct 27, 2026
57aadc7
chore: merge main
JakubKorytko Oct 27, 2026
7311115
chore: merge main
JakubKorytko Oct 27, 2026
178f093
chore: merge main
JakubKorytko Oct 27, 2026
ab2572d
chore: merge main
JakubKorytko Oct 27, 2026
d544381
Merge pull request #117 from Expensify/claude-overrideTmpVulnerability
JakubKorytko Oct 27, 2026
63cfde4
Update package-lock.json version to 0.2.13
os-botify[bot] Oct 27, 2026
e35c472
Update package.json version to 0.2.13
os-botify[bot] Oct 27, 2026
e551a59
chore: merge main
JakubKorytko Oct 27, 2026
7cfa396
chore: merge main
JakubKorytko Oct 27, 2026
0909122
chore: merge main
JakubKorytko Oct 27, 2026
8161fe5
Merge pull request #115 from Expensify/claude-bumpPostcss
madmax330 Oct 27, 2026
3cc401b
Update package-lock.json version to 0.2.14
os-botify[bot] Oct 27, 2026
c0cfced
Update package.json version to 0.2.14
os-botify[bot] Oct 27, 2026
877a044
chore: merge main
JakubKorytko Oct 27, 2026
0d1fae0
chore: merge main
JakubKorytko Oct 27, 2026
44c2c6c
Merge pull request #128 from Expensify/claude-fastXmlParserVulnerabil…
puneetlath Oct 27, 2026
ba00fb5
Update package-lock.json version to 0.2.15
os-botify[bot] Oct 27, 2026
b7e406f
Update package.json version to 0.2.15
os-botify[bot] Oct 27, 2026
9e2bf8d
Merge pull request #127 from Expensify/claude-removeVulnerableIpDepen…
JakubKorytko Oct 27, 2026
0a63c68
Update package-lock.json version to 0.2.16
os-botify[bot] Oct 27, 2026
6a97dee
Update package.json version to 0.2.16
os-botify[bot] Oct 27, 2026
9534b1b
chore: merge main
JakubKorytko Oct 27, 2026
1f4874b
Merge pull request #111 from Expensify/claude-bumpMetroDropImageSize
JakubKorytko Oct 27, 2026
511db97
Update package-lock.json version to 0.2.17
os-botify[bot] Oct 27, 2026
03dad2b
Update package.json version to 0.2.17
os-botify[bot] Oct 27, 2026
fb65903
Merge pull request #99 from Expensify/claude-bumpLaunchEditor
JakubKorytko Oct 27, 2026
e24692b
Update package-lock.json version to 0.2.18
os-botify[bot] Oct 27, 2026
a005f7a
Update package.json version to 0.2.18
os-botify[bot] Oct 27, 2026
6d1a315
Merge pull request #106 from Expensify/claude-bumpIpAddress
AndrewGable Oct 27, 2026
f62b79e
Update package-lock.json version to 0.2.19
os-botify[bot] Oct 27, 2026
fc46d31
Update package.json version to 0.2.19
os-botify[bot] Oct 27, 2026
51f1963
Merge pull request #100 from Expensify/claude-bumpCompression
AndrewGable Oct 27, 2026
88ac208
Update package-lock.json version to 0.2.20
os-botify[bot] Oct 27, 2026
d078d75
Update package.json version to 0.2.20
os-botify[bot] Oct 27, 2026
e2f55c5
Merge pull request #120 from Expensify/claude-bumpWsDependabot
AndrewGable Oct 27, 2026
b970b4c
Update package-lock.json version to 0.2.21
os-botify[bot] Oct 27, 2026
eff3791
Update package.json version to 0.2.21
os-botify[bot] Oct 27, 2026
828927a
Merge pull request #119 from Expensify/claude-bumpUndici
AndrewGable Oct 27, 2026
d962568
Update package-lock.json version to 0.2.22
os-botify[bot] Oct 27, 2026
39842ce
Update package.json version to 0.2.22
os-botify[bot] Oct 27, 2026
f7d7565
Merge origin/main into feat/ios-primary-account-identifier
Brunonascdev Oct 27, 2026
c651417
fix: share one account id lookup across the add flow
Brunonascdev Oct 27, 2026
a24d97f
Merge origin/main into feat/ios-wallet-pass-activation
Brunonascdev Oct 27, 2026
45dea91
fix: look up the Watch pass when isRemote is omitted
Brunonascdev Oct 27, 2026
9951efd
Merge pull request #91 from Brunonascdev/feat/ios-primary-account-ide…
JakubKorytko Oct 29, 2026
b778ee1
Update package-lock.json version to 0.2.23
os-botify[bot] Oct 29, 2026
44571cd
Update package.json version to 0.2.23
os-botify[bot] Oct 29, 2026
5ccfeb2
Merge origin/main into feat/ios-wallet-pass-activation
Brunonascdev Oct 29, 2026
3a35bdd
fix: share one wallet response handler
Brunonascdev Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
24.19.0
24.22.1
89 changes: 76 additions & 13 deletions README.md

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion android/src/main/java/com/expensify/wallet/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,17 @@ object Utils {
.setPhoneNumber(addressMap.getString("phoneNumber") ?: "")
.build()

val isVirtual = if (hasKey("isVirtualCard")) this.getBoolean("isVirtualCard") else false
val isBounce = if (hasKey("isBounceProvisioned")) this.getBoolean("isBounceProvisioned") else false

return CardData(
network = this.getString("network") ?: "",
opaquePaymentCard = this.getString("opaquePaymentCard") ?: "",
cardHolderName = this.getString("cardHolderName") ?: "",
lastDigits = this.getString("lastDigits") ?: "",
userAddress = userAddress
userAddress = userAddress,
isVirtualCard = isVirtual,
isBounceProvisioned = isBounce,
)
}

Expand Down
335 changes: 285 additions & 50 deletions android/src/main/java/com/expensify/wallet/WalletModule.kt

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion android/src/main/java/com/expensify/wallet/model/CardData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ import com.google.android.gms.tapandpay.issuer.UserAddress
data class CardData(
val platform: String = "android",
val network: String,
val opaquePaymentCard: String,
val opaquePaymentCard: String, // TSP OPC
val cardHolderName: String,
val lastDigits: String,
val userAddress: UserAddress,
val isVirtualCard: Boolean = false,
val isBounceProvisioned: Boolean = false,
)
18 changes: 18 additions & 0 deletions android/src/paper/java/com/expensify/wallet/NativeWalletSpec.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ public NativeWalletSpec(ReactApplicationContext reactContext) {
@DoNotStrip
public abstract void addCardToGoogleWallet(ReadableMap cardData, Promise promise);

@ReactMethod
@DoNotStrip
public abstract void AndroidProvidePaymentCredentials(String requestId, ReadableMap responseData, Promise promise);

@ReactMethod
@DoNotStrip
public abstract void AndroidRejectPaymentCredentials(String requestId, String errorMessage, Promise promise);

@ReactMethod
@DoNotStrip
public abstract void resumeAddCardToGoogleWallet(ReadableMap cardData, Promise promise);
Expand All @@ -65,6 +73,10 @@ public NativeWalletSpec(ReactApplicationContext reactContext) {
@DoNotStrip
public abstract void listTokens(Promise promise);

@ReactMethod
@DoNotStrip
public abstract void listAppleWalletPasses(Promise promise);

@ReactMethod
@DoNotStrip
public abstract void IOSPresentAddPaymentPassView(ReadableMap cardData, Promise promise);
Expand All @@ -73,6 +85,12 @@ public NativeWalletSpec(ReactApplicationContext reactContext) {
@DoNotStrip
public abstract void IOSHandleAddPaymentPassResponse(ReadableMap payload, Promise promise);

public abstract void activateAppleWalletPass(ReadableMap passData, Promise promise);

@ReactMethod
@DoNotStrip
public abstract void canAddCardToAppleWallet(String primaryAccountIdentifier, String lastDigits, Promise promise);

@ReactMethod
@DoNotStrip
public abstract void addListener(String eventType);
Expand Down
2 changes: 1 addition & 1 deletion apps/basic-example/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ruby ">= 2.6.10"
# Exclude problematic versions of cocoapods and activesupport that causes build failures.
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
gem 'concurrent-ruby', '< 1.3.4'
gem 'concurrent-ruby', '>= 1.3.7'

# Ruby 3.4.0 has removed some libraries from the standard library.
gem 'bigdecimal'
Expand Down
17 changes: 11 additions & 6 deletions apps/basic-example/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@ GEM
minitest (>= 5.1)
mutex_m
tzinfo (~> 2.0)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
addressable (2.9.0)
public_suffix (>= 2.0.2, < 8.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
base64 (0.2.0)
benchmark (0.5.0)
bigdecimal (3.1.8)
claide (1.1.0)
cocoapods (1.15.2)
Expand Down Expand Up @@ -62,7 +63,7 @@ GEM
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
concurrent-ruby (1.3.3)
concurrent-ruby (1.3.8)
connection_pool (2.4.1)
drb (2.2.1)
escape (0.0.4)
Expand All @@ -76,6 +77,7 @@ GEM
i18n (1.14.5)
concurrent-ruby (~> 1.0)
json (2.7.2)
logger (1.7.0)
minitest (5.24.1)
molinillo (0.8.0)
mutex_m (0.2.0)
Expand All @@ -84,10 +86,8 @@ GEM
netrc (0.11.0)
nkf (0.2.0)
public_suffix (4.0.7)
rexml (3.2.9)
strscan
rexml (3.4.4)
ruby-macho (2.5.1)
strscan (3.1.0)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
Expand All @@ -105,7 +105,12 @@ PLATFORMS

DEPENDENCIES
activesupport (>= 6.1.7.5, != 7.1.0)
benchmark
bigdecimal
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
concurrent-ruby (>= 1.3.7)
logger
mutex_m

RUBY VERSION
ruby 3.2.1p31
Expand Down
9 changes: 8 additions & 1 deletion apps/common-app/src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ const AndroidDummyCardData: AndroidCardData = {
cardHolderName: 'John Doe',
lastDigits: '4321',
userAddress: dummyAddress,
isVirtualCard: false,
isBounceProvisioned: false,
};

const AndroidDummyResumeCardData: AndroidResumeCardData = {
Expand All @@ -40,4 +42,9 @@ const IOSDummyEncryptPayload: IOSEncryptPayload = {
ephemeralPublicKey: 'ZXBoZW1lcmFsUHVibGljS2V5MTIz',
};

export {AndroidDummyCardData, AndroidDummyResumeCardData, IOSDummyCardData, IOSDummyEncryptPayload};
const AndroidDummyPaymentCredentialsResponse = {
opaquePaymentCard: 'encryptedCardInformation123456',
googleOpaquePaymentCard: 'GOPC',
};

export {AndroidDummyCardData, AndroidDummyResumeCardData, IOSDummyCardData, IOSDummyEncryptPayload, AndroidDummyPaymentCredentialsResponse};
10 changes: 8 additions & 2 deletions apps/common-app/src/walletUtils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {addCardToAppleWallet, addCardToGoogleWallet, listTokens, resumeAddCardToGoogleWallet} from '@expensify/react-native-wallet';
import type {CardStatus} from '@expensify/react-native-wallet';
import type {AndroidPaymentCredentialsResponse, CardStatus, onPaymentCredentialsRequestPayload} from '@expensify/react-native-wallet';
import {Platform} from 'react-native';
import * as CONST from './CONST';

Expand All @@ -9,6 +9,12 @@ function issuerEncryptPayloadCallback(_nonce: string, _nonceSignature: string, _
return Promise.resolve(CONST.IOSDummyEncryptPayload);
}

function handlePaymentCredentialsGeneration(_data: onPaymentCredentialsRequestPayload): Promise<AndroidPaymentCredentialsResponse> {
// Here send data to your server or you TSP to generate the payment credentials
// for example: fetch('https://tsp.com/generatePaymentCredentials', {method: 'POST', body: data})
return Promise.resolve(CONST.AndroidDummyPaymentCredentialsResponse);
}

async function addCardToWallet(cardStatus?: CardStatus) {
if (Platform.OS === 'android') {
if (cardStatus === 'requireActivation') {
Expand All @@ -24,7 +30,7 @@ async function addCardToWallet(cardStatus?: CardStatus) {
tokenReferenceID: existingToken.identifier,
});
}
return addCardToGoogleWallet(CONST.AndroidDummyCardData);
return addCardToGoogleWallet(CONST.AndroidDummyCardData, handlePaymentCredentialsGeneration);
} else {
return addCardToAppleWallet(CONST.IOSDummyCardData, issuerEncryptPayloadCallback);
}
Expand Down
Loading