Official repository for core projects comprising the Celo platform
jeanregisser/jeanregisser.com 4
Personal website
iOS objective-c wrapper for Pubnub real-time messaging service
jeanregisser/git-achievements 2
Aquire achievements while using git.
An Objective-C library dependency manager.
celo-org/analytics-ios-integration-firebase 0
Segment's bundled integration for Firebase on iOS
Gathers system and per process statistics
celo-org/react-native-firebase 0
🔥 A well tested feature rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for over 20 Firebase services.
node's net api in react-native
celo-org/react-native-webview 0
React Native Cross-Platform WebView
startedveeral-patel/learn-security-engineering
started time in 5 days
push eventcelo-org/celo-monorepo
commit sha 49948814f8219659af8cb3977f14db3cd8eb9010
[Wallet] Add transitions to some screens on iOS (#4525) ### Description Added some transitions for screens that make elements appear vertically instead of horizontally. The `PincodeEnter` screen is the exception, which has a fade in/out transition. ### Tested Manually on simulator. 
commit sha 46d5c7f76fa0bcaec8d6a67284f9eb8434a1b32c
flake tracker fix (#4594) Fixes build error on master caused by a circle CI env variable unexpectedly being null on master.
commit sha 17c47cf494b072fc96cad2e530c8650292f27444
Allow signer to invoke Attestations withdraw function for fee collection (#4298) ### Description Allows the attestations signer to invoke `Attestations.withdraw` on behalf of the issuer for Validators using `ReleaseGold` as the account. Funds are still transferred to the `issuer`. ### Other changes _Describe any minor or "drive-by" changes here._ ### Tested _An explanation of how the changes were tested or an explanation as to why they don't need to be._ ### Related issues - Fixes https://github.com/celo-org/celo-monorepo/issues/4296 ### Backwards compatibility _Brief explanation of why these changes are/are not backwards compatible._
commit sha 129a3ec4e83788a8f67a89cfee322e878e2400b2
Merge remote-tracking branch 'origin/master' into jeanregisser/fix-ios-license
push time in 7 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Don't reset pin on onboarding
export function useBackToWelcomeScreen({ backAnalyticsEvent }: Props) { // Check if this screen is removed while focused (hardware back button, swipe, or simply navigate back) // so we can reset some state // See https://reactnavigation.org/docs/preventing-going-back- const cancelBeforeRemove = navigation.addListener('beforeRemove', (e) => {+ const cancelBeforeRemove = navigation.addListener('beforeRemove', (event) => { ValoraAnalytics.track(backAnalyticsEvent)
This one shouldn't be called if the action is not dispatched.
comment created time in 7 days
pull request commentcelo-org/celo-monorepo
[Wallet] Don't reset pin on onboarding
Oh interesting, I had this specific case in mind when I did this. The onFocusEffect returns a clean up function which should be called when the screen looses focus. This way the beforeRemove event should never be called if the screen is not focused. With what you said, it looks like this assumption is wrong.
comment created time in 7 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Fix empty license page on iOS
"test:e2e:ios": "./scripts/run_e2e.sh -p ios", "test:verify-locales": "./scripts/verify_locales.sh", "pre-deploy": "./scripts/pre-deploy.sh",- "deploy:update-disclaimer": "yarn licenses generate-disclaimer > android/app/src/main/assets/custom/LicenseDisclaimer.txt",- "postinstall": "./scripts/sync_branding.sh"+ "deploy:update-disclaimer": "yarn licenses generate-disclaimer > src/account/LicenseDisclaimer.txt && ./scripts/copy_license_to_android_assets.sh",+ "postinstall": "./scripts/sync_branding.sh && ./scripts/copy_license_to_android_assets.sh"
We have to keep the postinstall so that people cloning the repo get the file to the right place. The alternative was to write the file to both locations during generation, but I favoured something closer to a single source of truth.
comment created time in 8 days
push eventcelo-org/celo-monorepo
commit sha 38b7f324f06924499ba695d31b72e14d650e6f54
Fix copy script
push time in 8 days
PR opened celo-org/celo-monorepo
Description
Fix empty license page on iOS.
Note: The data is just text, so could look nicer in HTML form, but is good enough for now 😉
Other changes
None
Tested
<img src="https://user-images.githubusercontent.com/57791/89050430-0b16a080-d353-11ea-9bf3-b79fb183c8ad.png" width="50%" />
Related issues
- Epic #4415
- #4560
- Fixes #1459
- Fixed #626
Backwards compatibility
Yes
pr created time in 8 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/fix-ios-license
created branch time in 8 days
push eventcelo-org/celo-monorepo
commit sha 8dbde1698315395cd915dc0863f10428635c79aa
Remove logs
push time in 8 days
push eventcelo-org/celo-monorepo
commit sha b052aa155cb42be5b301f6f1d48761aabff2a790
Show qr code payment reason in the send confirmation screen
push time in 8 days
push eventcelo-org/celo-monorepo
commit sha ce791ef58781f3a0f9ea67e250842437d1bd79b6
Fix local currency not being fetched
push time in 8 days
delete branch celo-org/celo-monorepo
delete branch : jeanregisser/update-elliptic-dep
delete time in 9 days
push eventcelo-org/celo-monorepo
commit sha 917b6c0cc1bbd6102080465e4e6a4e22aab339f8
Update dependencies due to security vulnerabilities (#4573) * Update elliptic dependency due to security vulnerability See https://www.npmjs.com/advisories/1547 * Revert "Update elliptic dependency due to security vulnerability" This reverts commit 5b8b3e03efb5338830643281b5b393c9d2c95437. * Use yarn resolution for elliptic until we can republish our packages * Add resolution for dot-prop because of security vulnerability See https://www.npmjs.com/advisories/1213
push time in 9 days
PR merged celo-org/celo-monorepo
Description
Update elliptic and dot-prop dependencies due to security vulnerabilities
See https://www.npmjs.com/advisories/1547
See https://www.npmjs.com/advisories/1213
As a temporary solution until we can republish our packages, I've set custom resolutions in yarn.
TODO to completely eliminate the vulnerable versions of elliptic <= 6.5.2:
- [ ] republish
contractkitandutilswhich depends on fixed version[email protected] - [ ] update
etherswhich also which depends on fixed version[email protected]
Other changes
None
Tested
Waiting for test to pass on CircleCI.
Related issues
Discussed on Slack
Backwards compatibility
Should be 👀
pr closed time in 9 days
push eventcelo-org/celo-monorepo
commit sha 1bf8a790eb153d4fe304a74abe6c74cd02ccccec
Add resolution for dot-prop because of security vulnerability See https://www.npmjs.com/advisories/1213
push time in 9 days
push eventcelo-org/celo-monorepo
commit sha 5b133155c3b30bf0b83b8db59ec6cf3bdb340af4
Revert "Update elliptic dependency due to security vulnerability" This reverts commit 5b8b3e03efb5338830643281b5b393c9d2c95437.
commit sha b91677fbe02b97e2ec0dd06db221d441afa07f0a
Use yarn resolution for elliptic until we can republish our packages
push time in 9 days
Pull request review commentcelo-org/celo-monorepo
Update elliptic dependency due to security vulnerability
"@0x/sol-profiler": "^3.0.0", "@0x/sol-trace": "^2.0.16", "@0x/subproviders": "^5.0.0",- "@openzeppelin/upgrades": "^2.8.0",
This line was duplicated (see below) and when I use yarn upgrade-interactive it rewrote it (and others).
comment created time in 9 days
issue openedcelo-org/celo-monorepo
Received / Sent CELO improvements
Expected Behavior
Received / Sent CELO activity items in the CELO feed should be consistent with exchange (Sold / Bought) items. We shouldn't mention Celo Dollars in the drill down.
Current Behavior
Received / Sent CELO appear in the CELO feed in an inconsistent looking way (icon for the received payment, no icon for the exchange). Also the details screen mentions Celo Dollars.
<img src="https://user-images.githubusercontent.com/57791/88922048-d7167f00-d26f-11ea-9f28-8e9c1f1ba4ff.png" width="50%" /><img src="https://user-images.githubusercontent.com/57791/88922092-eeee0300-d26f-11ea-8ef0-688566b2e5e7.png" width="50%" />
created time in 9 days
PR opened celo-org/celo-monorepo
Description
Notifications still said You've received XXX Celo Gold instead of You've received XXX CELO.
Other changes
None
Tested
Redeployed on celo-mobile-alfajores and celo-mobile-mainnet.
Related issues
Discussed on Slack.
Backwards compatibility
Yes.
pr created time in 9 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/update-notif-message
created branch time in 9 days
PR opened celo-org/celo-monorepo
Description
Update elliptic dependency due to security vulnerability See https://www.npmjs.com/advisories/1547
TODO to completely eliminate the vulnerable versions of elliptic <= 6.5.2:
- [ ] republish
contractkitandutilswhich depends on fixed version[email protected] - [ ] update
etherswhich also which depends on fixed version[email protected]
Other changes
Describe any minor or "drive-by" changes here.
Tested
An explanation of how the changes were tested or an explanation as to why they don't need to be.
Related issues
- Fixes #[issue number here]
Backwards compatibility
Brief explanation of why these changes are/are not backwards compatible.
pr created time in 9 days
push eventcelo-org/celo-monorepo
commit sha 5b8b3e03efb5338830643281b5b393c9d2c95437
Update elliptic dependency due to security vulnerability See https://www.npmjs.com/advisories/1547
push time in 9 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/update-elliptic-dep
created branch time in 9 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add transitions to some screens on iOS
const modalScreenOptions: ScreenOptions = Platform.select({ }), }) +const animatedScreens = (Navigator: typeof Stack) => (+ <>+ <Navigator.Screen name={Screens.Send} component={Send} options={sendScreenNavOptions} />+ <Navigator.Screen+ name={Screens.Language}+ component={Language}+ options={Language.navigationOptions}+ />+ <Navigator.Screen+ options={headerWithBackButton}+ name={Screens.SelectLocalCurrency}+ component={SelectLocalCurrency}+ />+ <Navigator.Screen+ name={Screens.PincodeEnter}+ component={PincodeEnter}+ options={{+ ...headerWithBackButton,+ gestureEnabled: false,+ cardStyleInterpolator: ({ current }) => ({+ containerStyle: {+ opacity: current.progress,+ },+ }),+ }}+ />
Screen options should be moved to the component navigationOptions field.
comment created time in 10 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add transitions to some screens on iOS
const modalScreenOptions: ScreenOptions = Platform.select({ }), }) +const animatedScreens = (Navigator: typeof Stack) => (
nit: how about we rename them to modalAnimatedScreens? And maybe move SelectCountry to it too.
comment created time in 10 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add transitions to some screens on iOS
const modalScreenOptions: ScreenOptions = Platform.select({ }), }) +const animatedScreens = (Navigator: typeof Stack) => (
I feel what you say, but unfortunately, I don't see another way for now.
react-navigation mentions we should avoid unnecessary nesting and only use them to get the desired UI (tab bar, modal, etc)
Think of nesting navigators as a way to achieve the UI you want rather than a way to organize your code.
See https://reactnavigation.org/docs/nesting-navigators/#best-practices-when-nesting
comment created time in 10 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add transitions to some screens on iOS
interface StateProps { type Props = StateProps & WithTranslation & StackScreenProps<StackParamList, Screens.PincodeEnter> class PincodeEnter extends React.Component<Props, State> {- static navigationOptions = { gestureEnabled: false, ...nuxNavigationOptions }-
Yes I see what you mean.
The code is currently in a transition phase for screen options as we decided to relocate them to each screen file using the navigationOptions static prop on the component, like it was with react-navigation v4.
We decided this to avoid cluttering the Navigator as we felt it belonged better with the component.
comment created time in 10 days
push eventcelo-org/celo-monorepo
commit sha c4e0edede747471b68cdfb188e9a74e6fbe925ab
[Wallet] Some minor cleanup (#4550) ### Description - Remove dead code related to Verifier app - Move PGPNP flag to flags.ts - Address some TODOs ### Backwards compatibility Yes
commit sha 84ae9fb3110153ff0fb96ca7756823bf19bf2db5
[Wallet] fix attestation codes being wrongly set as completed (#4557) ### Description Fix a bug, described in details here - https://github.com/celo-org/celo-monorepo/issues/4477#issuecomment-665275466 ### Other changes * Remove error toast, when verification fails, cause we show Modal instead. * Fix a bug, when user presses `Enter Codes` on the error modal but nothing happens until timer has elapsed. ### Tested iOS simulator ### Related issues - Fixes https://github.com/celo-org/celo-monorepo/issues/4477 ### Backwards compatibility Yes
commit sha 9fd50d2de864afc9a9eedf24694cbd0222d30571
Rename state property
commit sha 5b625afbb950816b9072cd89c60e57de12e1882f
Fix schema
commit sha 34e78c1288aeb170b2d8918b760c82d29bf1096e
Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen
push time in 10 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add new onboarding Welcome screen
export function MainStackScreen() { if (!language) { initialRoute = Screens.Language- } else if (!e164Number) {+ } else if (!e164Number || !acceptedTerms || pincodeType === PincodeType.Unset) {+ // User didn't go far enough in onboarding, start again from education initialRoute = Screens.OnboardingEducationScreen- } else if (!acceptedTerms) {- initialRoute = Screens.RegulatoryTerms- } else if (pincodeType === PincodeType.Unset) {- initialRoute = Screens.PincodeSet } else if (!redeemComplete && !account) {- initialRoute = Screens.EnterInviteCode+ initialRoute = isRestoringAccount ? Screens.ImportWallet : Screens.EnterInviteCode
Yes, thanks for the suggestion.
comment created time in 10 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add new onboarding Welcome screen
export const v2Schema = { ...v1Schema.app, sessionId: '', },+}++export const v3Schema = {+ ...v2Schema, account: { ...v1Schema.account,
Oops, good catch!
comment created time in 10 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] fix attestation codes being wrongly set as completed
export const migrations = { }, } },+ 4: (state: any) => {+ return {+ ...state,+ identity: {+ ...state.identity,+ acceptedAttestationCodes: [],+ },+ }+ },
Yep!
comment created time in 10 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] fix attestation codes being wrongly set as completed
export const migrations = { }, } },+ 4: (state: any) => {+ return {+ ...state,+ identity: {+ ...state.identity,+ acceptedAttestationCodes: [],+ },+ }+ },
Not super important but I think we should also update the test schema to avoid confusion.
https://github.com/celo-org/celo-monorepo/blob/52d5de63a990d3bb5dbf8333b59722e489f1588a/packages/mobile/test/schemas.ts#L332
I saw v3Schema was missing and added it in https://github.com/celo-org/celo-monorepo/pull/4545/files#diff-2d8d77f9d884fa463eafd5c95a7cb7d0
What do you think?
comment created time in 10 days
PR opened celo-org/celo-monorepo
Description
- Error was thrown outside of the normal promise error handling path (
Share.openwas not being awaited + it was inside a simple callback) - We now skip throwing if the user cancels and just log what happened
Tested
When you cancel the share sheet it doesn't throw an error and just logs what happened.
Related issues
- Fixes #4555
Backwards compatibility
Yes
pr created time in 10 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/fix-user-did-not-share
created branch time in 10 days
push eventcelo-org/celo-monorepo
commit sha 036c275ee1de8a76fd4db0d2f369c96779a58b64
Update blockchain client release docs to reflect recent progress (#4524) ### Description Recently we started publishing GPG keys to celo.org as well as other changes to fully implement the stated release process. This PR includes the changes to reflect this progress.
commit sha e77ca3a27e3ca11c50a69e48bb16f9af5f5af935
Multiproxy Infrastructure v2 (#4150) * Internal k8s testnet working * Got externally exposed k8s testnets working * Wip Terraform setup * Working terraform VM multiproxy * Add customizable node disk size * Clean up, change vm-exec * Fix celotool commands, all testnets working * Fix light peer issue * Cleaning up * Fix validator helmscript * Update .env * wip * Multiproxy variables * Added selector for multiproxy svc * wip * Enable geth metrics * Add Grafana * Fix terraform deployment * Fix cornercase * Added geth metrics option to testnet package * Included note about proxy variable * Removed unused variable * Removed debug string * Add support for running non-multiproxy geth versions * Removed geth metrics exporter from terraform * Revert migration changes Co-authored-by: Trevor Porter <[email protected]>
commit sha 52d5de63a990d3bb5dbf8333b59722e489f1588a
Check Smart Contract version numbers in CI (#4523)
commit sha e83913c5098f201790015668c4be2fad4b254b28
Only hide window and use software gpu when CI env is set
commit sha 90fad7f12e61bec71727e27e35fd986cf1681b76
Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen
push time in 10 days
push eventcelo-org/celo-monorepo
commit sha 0d9422875279bbf35d0cf06753d8e4ef7d953596
Fix verify_locales on CI Though still segfaults locally on OSX :/
push time in 11 days
push eventcelo-org/celo-monorepo
commit sha a49c819393887479460a72b36198c6ad141d06a9
Remove unnecessary dependency from contractkit (#4546) Remove unnecessary dependency from contractkit
commit sha b219b74b45b6547e1d6ca9207f3478d7153c04d7
Only show terms once and restore to onboarding education if the user didn't go far enough
commit sha 780f14ac50e1ccd677efe7f9cda74fc2e7202054
Add analytics for create/restore account and cancel action
commit sha 8dad21258fffba7b73d8bda7441c3ebc8971bb3d
Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen
push time in 11 days
PR opened celo-org/celo-monorepo
Description
This PR implements the new onboarding welcome screen.
Highlights:
- This new screen is directly after the onboarding education screen.
- Whether the user chooses
Create AccountorRestore Accountthe next few screens will be the sameRegulatoryTermsNameAndNumberPincodeSet
- Then the next screen will be either
EnterInviteCodeorImportWalletbased on the initial choice. - Going back from those 2 screens will directly go back to the
Welcomescreen (skipping the intermediary screens. - Making a new choice on the Welcome screen will again go through the same screens listed above, but with some info pre-filled (name and number). The PIN will need to be created again. This was decided to avoid confusion.
- The user can interrupt this onboarding process anytime. It will pick up at the appropriate place when the app is resumed/relaunched.
Other changes
- Renamed
JoinCelo->NameAndNumber
Tested

Related issues
- Fixes #4401
Backwards compatibility
Yes
pr created time in 11 days
push eventcelo-org/celo-monorepo
commit sha 39a18c010a1e3aa5ccdabf6b2480945f74a81b3d
Add wiggle room to locked gold requirements (#4461) ### Description To fix https://github.com/celo-org/celo-monorepo/issues/3959 ### Other changes None ### Tested No ### Related issues - Fixes #https://github.com/celo-org/celo-monorepo/issues/3959 ### Backwards compatibility Yes, should result in a patch version change.
commit sha 1b794a210e2c920192ae1c5fe5bbf69ec9ef573e
[web] Kit Fixes/ updates (#4521) ### Description adds redirects and links to the temporary squarespace merchant kit ### Other changes * Fixes the mobile menu for Kits to work with more than two kits * remove GitHub link as it's not really relevant for the audiences kits are for. * Rename MobileMenu for the kits to MobileKitMenu so as not to have two different components with same name * Fix Page Name not showing on mobile for events kit * Remove newsletter form from Kit pages ### Tested      ### Related issues - Fixes #4507 - Fixes #4505 - Fixes #4506
commit sha 938730c21d92b6bfe93c8c0051458f3c7a35fbfb
Updated for a typo (#4538) ### Description Minor update to a typo. ### Other changes None. ### Tested NA ### Related issues NA ### Backwards compatibility NA
commit sha 889ccfec26b788738edd345810106e5ed42ea8e8
Update CODEOWNERS (#4474) add Nathan as code owner for openpgpkeys And thought @jeanregisser might want to be a code owner for mobile. Also @cmcewen Is listed 7 times. wondering if that still makes sense?
commit sha 12b1eabbdba14a81cb2b526341bb9aec5428bbad
Update Terms to latest version (#4543) ### Description Replace app terms with the latest version per new features and functionality ### Other changes n/a ### Tested needs visual pass ### Related issues n/a ### Backwards compatibility backwards compatible copy change
commit sha 2c7ea83cc66d82d0a4040e545ab12a9895db10dd
Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen
push time in 11 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/onboarding-signup-or-restore-screen
created branch time in 11 days
Pull request review commentcelo-org/celo-monorepo
* @asaj @cmcewen @timmoreton # directory and file-level owners. Feel free to add to this!+/packages/attestation-proxy/ @jmrossy /packages/attestation-service/ @nambrot /packages/azure/ @codyborn /packages/blockchain-api/ @jmrossy @cmcewen /packages/celotool/ @asaj /packages/cli/ @mcortesi @gastonponti /packages/contractkit/ @mcortesi @gastonponti /packages/dappkit/ @cmcewen-/packages/devutils/ @mcortesi+/packages/dev-utils/ @mcortesi /packages/docs/ @timmoreton /packages/faucet/ @jmrossy /packages/helm-charts/ @nambrot @timmoreton /packages/metadata-crawler/ @aaitor-/packages/mobile/ @cmcewen @jmrossy-/packages/moonpay-auth/ @annakaz-/packages/notification-service/ @annakaz @cmcewen+/packages/mobile/ @jeanregisser @cmcewen @jmrossy @i1skn +/packages/moonpay-auth/ @annakaz @i1skn +/packages/notification-service/ @annakaz @cmcewen @i1skn
/packages/notification-service/ @annakaz @cmcewen @i1skn @jeanregisser
comment created time in 11 days
Pull request review commentcelo-org/celo-monorepo
* @asaj @cmcewen @timmoreton # directory and file-level owners. Feel free to add to this!+/packages/attestation-proxy/ @jmrossy /packages/attestation-service/ @nambrot /packages/azure/ @codyborn /packages/blockchain-api/ @jmrossy @cmcewen
/packages/blockchain-api/ @jmrossy @cmcewen @jeanregisser
comment created time in 11 days
push eventcelo-org/celo-monorepo
commit sha 7b5d9f0b459505b6f7c88595e32ce4ddef9233f8
Add [email protected] gpg key to the website (#4471) * Add [email protected] gpg key to the website * add README to openpgp file Co-authored-by: Victor Graf <[email protected]> Co-authored-by: Victor "Nate" Graf <[email protected]>
commit sha b59a987aa2a11603541d1bdf1484111230f818a7
docs: update docker imgs for 1.0.1 release (#4516) Docs change for 1.0.1 release
commit sha 66d74be931cd1afd6ce1f6278f0ea61b651d08dc
Remove Dev Wallet & cGLD (#4522) ### Description Temporarily Removes the ability to download the dev wallet from celo.org as the links are now dead also change remaining references to cGLD on the website to CELO ### Other changes ### Tested   ### Related issues - Fixes
commit sha b82d93f70d3370559c64c6b203b928de79ff4046
Update setup guide (#4531) Fixes issues with docs ### Description Gitbook is borked on a fresh install. Note, I've personally be able to fix this is by running `npm install` in `~/.gitbook/versions/3.2.3`. Not sure if that's a recommended fix. ### Other changes _Describe any minor or "drive-by" changes here._ ### Tested _An explanation of how the changes were tested or an explanation as to why they don't need to be._ ### Related issues - Fixes #[issue number here] ### Backwards compatibility _Brief explanation of why these changes are/are not backwards compatible._
commit sha 7713e61ec609c19835c19b3aeabeaaa45fb2088b
Merge remote-tracking branch 'origin/master' into jeanregisser/fix-edu-bg-color
commit sha b60dfd01fd2687ae6057cc42dceb9c19562260bd
Update snapshot
push time in 15 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Fix default background color for screens
const styles = StyleSheet.create({ flexDirection: 'column', alignItems: 'center', },- underlinedBox: {- borderTopWidth: 1,- borderColor: '#EEEEEE',- },- scrollView: {
Yep
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Fix default background color for screens
const getActiveRouteName = (state: NavigationState) => { const RESTORE_STATE = __DEV__ && DEV_RESTORE_NAV_STATE_ON_RELOAD +// Global app them used by react-navigation+const AppTheme = {+ ...DefaultTheme,+ colors: {+ ...DefaultTheme.colors,+ background: colors.light,+ },+}+
This is where we define the default background color for screens.
comment created time in 15 days
PR opened celo-org/celo-monorepo
Description
- This fixes the incorrect gray color in the CELO education screen
- Also stop redefining the background color for screens when unnecessary
Tested
before/after <img src="https://user-images.githubusercontent.com/57791/88414533-5114b700-cddd-11ea-9d7b-2631f51c2a22.png" width="50%" /><img src="https://user-images.githubusercontent.com/57791/88414455-2cb8da80-cddd-11ea-9d8a-33c10a7aac3d.png" width="50%" />
Related issues
- #4415
Backwards compatibility
Yes
pr created time in 15 days
push eventcelo-org/celo-monorepo
commit sha b71872d3e1eb7ee3b03b0be564970c1a3e064ab1
Update snapshots
push time in 15 days
push eventcelo-org/celo-monorepo
commit sha 68081ec8fcd7a976adb63fb970965b7b078cf87b
More missed background
push time in 15 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/fix-edu-bg-color
created branch time in 15 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add transitions to some screens on iOS
const nuxScreens = (Navigator: typeof Stack) => ( const sendScreens = (Navigator: typeof Stack) => ( <> <Navigator.Screen name={Screens.Send} component={Send} options={sendScreenNavOptions} />- <Navigator.Screen name={Screens.QRNavigator} component={QRNavigator} options={noHeader} />+ <Navigator.Screen+ name={Screens.QRNavigator}+ component={QRNavigator}+ options={{+ ...noHeader,+ ...TransitionPresets.ModalSlideFromBottomIOS,
Should be ModalTransition which under the hood uses ModalSlideFromBottomIOS on iOS and RevealFromBottomAndroid / FadeFromBottomAndroid on Android.
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add transitions to some screens on iOS
interface StateProps { type Props = StateProps & WithTranslation & StackScreenProps<StackParamList, Screens.PincodeEnter> class PincodeEnter extends React.Component<Props, State> {- static navigationOptions = { gestureEnabled: false, ...nuxNavigationOptions }-
it's important that the user can't swipe to go back, the gesture part should remain.
comment created time in 15 days
pull request commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
We need a migration for isDEKRegistered, or change its type to boolean | undefined for correctness.
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
interface Props { isExchange?: boolean securityFee?: BigNumber exchangeFee?: BigNumber+ dekFee?: BigNumber+ showDekfee?: boolean
nit: I'm always wondering about the appropriate wiring convention for acronyms in pascalCase, looks like this one follows what JavaScript does in general (XmlHttpRequest, etc).
But we also have deriveDEK later on.
Really not important, just dumping my thoughts.
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
export async function getSendTxGas( export async function getSendFee( account: string, currency: CURRENCY_ENUM,- params: BasicTokenTransfer+ params: BasicTokenTransfer,+ includeDekFee: boolean = false ) { try {- const gas = await getSendTxGas(account, currency, params)+ let gas = await getSendTxGas(account, currency, params)+ if (includeDekFee) {+ const dekGas = await getRegisterDekTxGas(account, currency)+ gas = gas.plus(dekGas)+ }+
Wondering, how long does it take to call getRegisterDekTxGas?
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
+import { randomBytes } from 'crypto'+import { ec as EC } from 'elliptic'+import { decompressPublicKey, deriveDEK } from './dataEncryptionKey'++const ec = new EC('secp256k1')++describe('deriveCEK', () => {
nit: Should be deriveDEK
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
export const decryptComment = memoize(_decryptComment, (...args) => values(args) function _decryptComment( comment: string | null,- commentKeyPrivate: string | null,+ dataEncryptionKey: string | null, isSender: boolean ): DecryptedComment { Logger.debug(TAG + 'decryptComment', 'Decrypting comment') - if (!features.USE_COMMENT_ENCRYPTION || !comment || !commentKeyPrivate) {+ if (!features.USE_COMMENT_ENCRYPTION || !comment || !dataEncryptionKey) { Logger.debug(TAG + 'decryptComment', 'Invalid params, skipping decryption') return { comment } } const { comment: decryptedComment, success } = decryptCommentRaw( comment,- hexToBuffer(commentKeyPrivate),+ hexToBuffer(dataEncryptionKey), isSender ) if (success) { Logger.debug(TAG + 'decryptComment', 'Comment decryption succeeded') return extractPhoneNumberMetadata(decryptedComment)- } else {- Logger.error(TAG + 'decryptComment', 'Decrypting comment failed, returning raw comment')+ } else if (comment.length <= MAX_COMMENT_LENGTH) {+ Logger.warn(TAG + 'decryptComment', 'Decrypting comment failed, returning raw comment') return { comment }+ } else {+ // Since we've changed the DEK derivation strategy, comment decryption would fail+ // for old comments and/or mismatch between DEK types btwn sender + receiver+ // To cover this case, the comment is hidden instead of showing garbage+ Logger.warn(TAG + 'decryptComment', 'Comment appears to be ciphertext, hiding comment')+ return { comment: i18n.t('global:commentUnavailable') }
Just to rephrase this, once this PR lands, all past comments will be unreadable and have the placeholder shown, right?
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
const loggerBlacklist = [ 'SEND/SET_RECIPIENT_CACHE', 'IMPORT/IMPORT_BACKUP_PHRASE', 'WEB3/SET_COMMENT_KEY',- 'IDENTITY/UPDATE_E164_PHONE_NUMBER_ADDRESSES',- 'IDENTITY/UPDATE_E164_PHONE_NUMBER_SALT',- 'IDENTITY/FETCH_PHONE_ADDRESSES',- 'IDENTITY/ADD_CONTACT_MATCHES',
nit: Looks like we should use the Action types here so it doesn't become obsolete (checked by TypeScript).
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
+/**+ * Sagas and utils for handling DEK related tasks+ * Ideally all this code and the DEK state and logic would be moved out of the web3 dir+ * but keeping it here for now since that's where other account state is+ */++import { AccountsWrapper } from '@celo/contractkit/lib/wrappers/Accounts'+import { ensureLeading0x, eqAddress, hexToBuffer } from '@celo/utils/src/address'+import { CURRENCY_ENUM } from '@celo/utils/src/currencies'+import { compressedPubKey, deriveDEK } from '@celo/utils/src/dataEncryptionKey'+import * as bip39 from 'react-native-bip39'+import { call, put, select } from 'redux-saga/effects'+import { OnboardingEvents } from 'src/analytics/Events'+import ValoraAnalytics from 'src/analytics/ValoraAnalytics'+import { ErrorMessages } from 'src/app/ErrorMessages'+import { getStoredMnemonic } from 'src/backup/utils'+import { FetchDataEncryptionKeyAction, updateAddressDekMap } from 'src/identity/actions'+import { getCurrencyAddress } from 'src/tokens/saga'+import { sendTransaction } from 'src/transactions/send'+import Logger from 'src/utils/Logger'+import { registerDataEncryptionKey, setDataEncryptionKey } from 'src/web3/actions'+import { getContractKit, getContractKitAsync } from 'src/web3/contracts'+import { getConnectedUnlockedAccount } from 'src/web3/saga'+import { dataEncryptionKeySelector, isDekRegisteredSelector } from 'src/web3/selectors'+import { estimateGas } from 'src/web3/utils'++const TAG = 'web3/dataEncryptionKey'+const PLACEHOLDER_DEK = '0x02c9cacca8c5c5ebb24dc6080a933f6d52a072136a069083438293d71da36049dc'++export function* fetchDataEncryptionKeyWrapper({ address }: FetchDataEncryptionKeyAction) {+ yield call(doFetchDataEncryptionKey, address)+}++export function* doFetchDataEncryptionKey(address: string) {+ const contractKit = yield call(getContractKit)+ const accountsWrapper: AccountsWrapper = yield call([+ contractKit.contracts,+ contractKit.contracts.getAccounts,+ ])+ const DEK: string = yield call(accountsWrapper.getDataEncryptionKey, address)+ yield put(updateAddressDekMap(address, DEK || null))+ return !DEK ? null : hexToBuffer(DEK)+}++export function* createAccountDEK(mnemonic: string) {+ if (!mnemonic) {+ throw new Error('Cannot generate DEK with empty mnemonic')+ }+ const { privateKey } = yield call(deriveDEK, mnemonic, bip39)+ const newDEK = ensureLeading0x(privateKey)+ yield put(setDataEncryptionKey(newDEK))+ return newDEK+}++// Register the address and DEK with the Accounts contract+// A no-op if registration has already been done+export function* registerAccountDEK(account: string) {+ try {+ const isAlreadyRegistered = yield select(isDekRegisteredSelector)+ if (isAlreadyRegistered) {+ return+ }++ Logger.debug(+ `${TAG}@registerAccountDEK`,+ 'Setting wallet address and public data encryption key'+ )++ yield call(getConnectedUnlockedAccount)+ let privateDataKey: string | null = yield select(dataEncryptionKeySelector)+ if (!privateDataKey) {+ throw new Error('No data key in store. Should never happen.')+ }++ /**+ * BEGIN MIGRATION HACK+ * This code can be safely removed once existing Valora users have all run it+ * It's needed because we need to regenerate their DEKs now that the scheme has changed+ * If it's still here by 2020/08/23 please remove it.+ */
👍 🧹
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
Change DEK derivation scheme and register DEK for all wallet users
function* loggerSaga() { } yield takeEvery('*', (action: AnyAction) => {- if (action && action.type && loggerBlacklist.includes(action.type)) {+ if (+ action?.type &&+ (action.type.includes('IDENTITY/') || loggerBlacklist.includes(action.type))+ ) { // Log only action type, but not the payload as it can have- // sensitive information.+ // sensitive information. Excluding all IDENTITY/ actions because high likelyhood+ // they contain PII and the blacklist may get out of date.
👍
comment created time in 15 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add remove account button
export async function ensureCorrectPassword( return false } }++export async function removeAccountLocally() {+ clearPasswordCaches()+ const removed = await removeStoredItem(STORAGE_KEYS.PEPPER)+ if (!removed) {+ // This shouldn't happen, should we do something here?+ }+ // TODO: Remove the account from geth.
Just thought about the anonymous firebase session we have should be closed too.
comment created time in 15 days
started3b1b/manim
started time in 16 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Fix bug because of untyped yield take action
export function* watchQrCodeDetections() { if (action.scanIsForSecureSend) { secureSendTxData = action.transactionData- requesterAddress = action.requesterAddrress+ requesterAddress = action.requesterAddress
This is the bug I initially spotted while checking our QR code handling.
comment created time in 16 days
PR opened celo-org/celo-monorepo
Description
There was a typo in requesterAddrress in the code handling QR codes in secure send mode.
Not sure exactly of the exact problem it would trigger, I'll let @tarikbellamine comment.
Long term fix is to find a solution for fully typed redux-saga.
As of today, there's no clear solution to this, see more discussion https://github.com/redux-saga/redux-saga/issues/1286
Other changes
- Added manual types for
yield take(Actions...).
Tested
TypeScript check succeeds.
Backwards compatibility
Yes.
pr created time in 16 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/fix-untyped-bug
created branch time in 16 days
PR opened celo-org/celo-monorepo
Description
This broke in https://github.com/celo-org/celo-monorepo/pull/3650 with the upgrade of react-native-firebase
because yield call(...) return types are not inferred yet 😞
Looks like the device I used when I worked on #3650 was already authorised for push that's why I missed that 2nd regression 🤦
Tested
Tested that push permission is being asked again on iOS.
Backwards compatibility
Yes.
pr created time in 16 days
push eventcelo-org/celo-monorepo
commit sha d181a9de939e7ce421d309b245ef4ed6d275ad99
[Wallet] Fix push permission never asked on iOS This broke in https://github.com/celo-org/celo-monorepo/pull/3650 because yield call return types are not inferred yet :/
push time in 16 days
create barnchcelo-org/celo-monorepo
branch : jeanregisser/fix-ios-push-registration
created branch time in 16 days
Pull request review commentcelo-org/celo-monorepo
export default function ExchangeConfirmationCard(props: Props) { <TotalLineItem amount={totalAmount} /> </View> </View>- </SafeAreaView>- </ScrollView>+ </ScrollView>+ </SafeAreaView>
Yes when I initially added support for iOS, I put all of them outside as a shortcut. In the long term most of them are meant to be inside, except when there's a fixed button area at the bottom of the screen.
comment created time in 16 days
delete branch celo-org/celo-monorepo
delete branch : jeanregisser/fix-dappkit
delete time in 17 days
push eventcelo-org/celo-monorepo
commit sha 803f89df201e8f2208c2c283409ed8dd7d6e48be
[Wallet] Fix DAppKit (#4504) ### Description This PR fixes various regressions with DAppKit support in the wallet: - DAppKit actions not working because our HOC handling `dispatchAfterNavigate` was removed when we migrated to `react-navigation` v5. - DAppKit not working on iOS (`Linking.canOpenURL` can't be used without having the queried scheme defined in `LSApplicationQueriesSchemes`) - Deep links not handled when app is launched from a deep link. We'll probably need to revisit the launch flow with our sagas though. ### Other changes - Upgraded react-navigation to fix edge case with type safe params, see react-navigation/react-navigation#8389 - Removed unnecessary state in DAppKit screens ### Tested - Tested with [Savings Circle DApp](https://github.com/celo-org/savings-circle-demo) on iOS. ### Related issues - Part of #4415 - Fixes #3729 ### Backwards compatibility Yes
push time in 17 days
PR merged celo-org/celo-monorepo
Description
This PR fixes various regressions with DAppKit support in the wallet:
- DAppKit actions not working because our HOC handling
dispatchAfterNavigatewas removed when we migrated toreact-navigationv5. - DAppKit not working on iOS (
Linking.canOpenURLcan't be used without having the queried scheme defined inLSApplicationQueriesSchemes) - Deep links not handled when app is launched from a deep link. We'll probably need to revisit the launch flow with our sagas though.
Other changes
- Upgraded react-navigation to fix edge case with type safe params, see react-navigation/react-navigation#8389
- Removed unnecessary state in DAppKit screens
Tested
- Tested with Savings Circle DApp on iOS.
Related issues
- Part of #4415
- Fixes #3729
Backwards compatibility
Yes
pr closed time in 17 days
issue closedcelo-org/celo-monorepo
Celo Wallet freezes when opening on request from dappkit
Expected Behavior
When I make a login request from my Celo dapp to the celo wallet, I expect the Celo wallet to open and then ask if I would like to log in to the dapp from which I am making the request.
Current Behavior
If the Celo Wallet is not already open, the wallet app tries to open, but freezes and doesn't open, so I can't log in. If the celo wallet is open in the background and I request to log in from my dapp, it works as expected.
Here is a screen recording of the current behavior. at the beginning of the recording, I am making the request with the wallet not running. On the second login attempt, the wallet is running in the background and it works.
closed time in 17 days
critesjoshPull request review commentcelo-org/celo-monorepo
[Wallet] Add remove account button
export async function ensureCorrectPassword( return false } }++export async function removeAccountLocally() {+ clearPasswordCaches()+ const removed = await removeStoredItem(STORAGE_KEYS.PEPPER)+ if (!removed) {+ // This shouldn't happen, should we do something here?+ }+ // TODO: Remove the account from geth.
Looks like we should also remove the passwordHash, see https://github.com/celo-org/celo-monorepo/blob/1ca65c95495f91138e1538618bd24865ece6737e/packages/mobile/src/pincode/authentication.ts#L105-L106
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add remove account button
export async function ensureCorrectPassword( return false } }++export async function removeAccountLocally() {+ clearPasswordCaches()+ const removed = await removeStoredItem(STORAGE_KEYS.PEPPER)+ if (!removed) {+ // This shouldn't happen, should we do something here?+ }+ // TODO: Remove the account from geth.
We should also reset the analytics session (flush current events and reset for a new identity).
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add remove account button
export default combineReducers({ recipients, localCurrency, imports,-}) as () => RootState+}) as (state: RootState | undefined, action: Action) => RootState++const rootReducer = (state: RootState | undefined, action: Action): RootState => {+ if (action.type === Actions.CLEAR_STORED_ACCOUNT && state) {+ // Generate an initial state but keep the information not specific to the account+ // that we want to save.+ const initialState = appReducer(undefined, action)+ return {+ ...initialState,+ localCurrency: state.localCurrency,+ identity: identity(state.identity, deleteUserData()),
Like I said above, I feel we shouldn't keep anything inside identity.
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Add remove account button
export const reducer = ( false ), }+ case Actions.DELETE_USER_DATA:+ return {
Not sure why we'd want to keep these.
To me Reset Valora should clear everything, except selected language ;)
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Verification] Verification flow improvements
export function VerificationFailedModal({ verificationStatus, retryWithForno, fo } const userBalanceInsufficient = verificationStatus === VerificationStatus.InsufficientBalance+ const saltQuotaExceeded = verificationStatus === VerificationStatus.SaltQuotaExceeded const isVisible = (verificationStatus === VerificationStatus.Failed || verificationStatus === VerificationStatus.RevealAttemptFailed ||- userBalanceInsufficient) &&+ userBalanceInsufficient ||+ saltQuotaExceeded) && !isDismissed const allowEnterCodes = verificationStatus === VerificationStatus.RevealAttemptFailed // Only prompt forno switch if not already in forno mode and failure // wasn't due to insuffuicient balance
nit: we might wanna update the comment about the quota too?
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Verification] Verification flow improvements
export default function ReclaimPaymentConfirmationCard({ <Avatar recipient={recipientContact} e164Number={recipientPhone} /> <CurrencyDisplay type={DisplayType.Big} amount={amount} /> <HorizontalLine />- <LineItemRow title={t('amount')} amount={<CurrencyDisplay amount={amount} />} />+ <LineItemRow title={t('global:amount')} amount={<CurrencyDisplay amount={amount} />} />
👍
comment created time in 17 days
push eventcelo-org/celo-monorepo
commit sha 57b64fe53731e0027a1a440e436e2441e996f8fc
Update snapshots
push time in 17 days
pull request commentcelo-org/celo-monorepo
[Wallet] Allow users to buy CELO on mainnet through Moonpay
I also deployed https://us-central1-celo-org-mobile.cloudfunctions.net/signMoonpayStaging
comment created time in 17 days
push eventcelo-org/celo-monorepo
commit sha 8749192bb541dc23c1d7d1a037f25ad0e111fe6e
Document MultiSig limitations (#4503) ### Description The MultiSig contract is not a "Swiss army knife" of multi signatures - it offers specific, limited functionality. This PR adds some documentation to make this clear.
commit sha 937f70b6e810b91c313fd7c426e43021916cb6e5
[Wallet] Secure Send Navigation Bug Fix (#4489) ### Description Fixes a bug where repeatedly cycling through "edit" for secure send would cause navigation to stall. See tagged issue for context. ### Other changes Minor refactoring to further consolidate secure send properties into the mapping object. ### Tested Wrote new tests. ### Related issues - Closes #4226 ### Backwards compatibility Yes
commit sha 0b4b28f620ab9ce6569d2c3e87a6d8d3aaedf639
[Wallet][ReDesign] Verification progress screen (#4483) ### Description This PR implements the [verification progress screen redesign](https://www.figma.com/file/zt7aTQ5wuXycIwxq5oAmF9/Wallet--Refresh?node-id=6470%3A78990). Outstanding tasks: - [x] Decide if we should try to wait for SMS to be auto-read on Android - For now, we decided NOT to wait - [x] Agree on the initial countdown duration (right now it's set to 2 mins) - Analytics data we have sofar seems to indicate it's an appropriate default - [x] Decide what to do when countdown reaches 0 - For now, we decided to switch to the verification input screen. We'll let the Verification bubble revisit this decision. See assets diff: https://github.com/clabs-co/valora-app-branding/compare/4f414a0...a3f5867 ### Other changes - Add new `Pagination` component. - Removed `VerificationInterstitialScreen` which is not needed anymore. - Removed now unused dependencies (`react-native-snap-carousel`, `react-native-shadow`). ### Tested Yes. See https://celo-org.slack.com/archives/C0134SBQTQR/p1594909944001600 ### Related issues - #4401 ### Backwards compatibility Yes
commit sha e2278272d6ed6161a8bc5db577e07635f61b3309
Fix import
commit sha 22ec6157e716ad1897811194b5f2f77299745bda
Fix typo
commit sha 4e76e2a89020f32bc8aa58d1c8674c98169248cf
Update staging function url
commit sha 5462cb178e47e83ac3a2c96b0f45d61993d317ce
Merge remote-tracking branch 'origin/master' into annakaz/ship-moonpay
push time in 17 days
Pull request review commentcelo-org/celo-monorepo
Add asdf support in the iOS React Native build phase
); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh;- shellScript = "# First set the path to sentry.properties\nexport SENTRY_PROPERTIES=sentry.properties\n\n# Setup nvm and set node\n[ -z \"$NVM_DIR\" ] && export NVM_DIR=\"$HOME/.nvm\"\n\nif [[ -s \"$HOME/.nvm/nvm.sh\" ]]; then\n. \"$HOME/.nvm/nvm.sh\"\nelif [[ -x \"$(command -v brew)\" && -s \"$(brew --prefix nvm)/nvm.sh\" ]]; then\n. \"$(brew --prefix nvm)/nvm.sh\"\nfi\n\n# Set up the nodenv node version manager if present\nif [[ -x \"$HOME/.nodenv/bin/nodenv\" ]]; then\neval \"$(\"$HOME/.nodenv/bin/nodenv\" init -)\"\nfi\n\n[ -z \"$NODE_BINARY\" ] && export NODE_BINARY=\"node\"\n\n# Fixes bundling failing with our monorepo setup\nexport PROJECT_ROOT=\"$PROJECT_DIR/..\"\n\n$NODE_BINARY ../../../node_modules/@sentry/cli/bin/sentry-cli react-native xcode \\\n../../../node_modules/react-native/scripts/react-native-xcode.sh\n";+ shellScript = "# First set the path to sentry.properties\nexport SENTRY_PROPERTIES=sentry.properties\n\n# Setup nvm and set node\n[ -z \"$NVM_DIR\" ] && export NVM_DIR=\"$HOME/.nvm\"\n\nif [[ -s \"$HOME/.nvm/nvm.sh\" ]]; then\n. \"$HOME/.nvm/nvm.sh\"\nelif [[ -x \"$(command -v brew)\" && -s \"$(brew --prefix nvm)/nvm.sh\" ]]; then\n. \"$(brew --prefix nvm)/nvm.sh\"\nfi\n\n# Set up the nodenv node version manager if present\nif [[ -x \"$HOME/.nodenv/bin/nodenv\" ]]; then\neval \"$(\"$HOME/.nodenv/bin/nodenv\" init -)\"\nfi\n\n# Set up asdf version manager if preent\nif [[ -s \"$HOME/.asdf/asdf.sh\" ]]; then\n. \"$HOME/.asdf/asdf.sh\"\nfi\n\n[ -z \"$NODE_BINARY\" ] && export NODE_BINARY=\"node\"\n\n# Fixes bundling failing with our monorepo setup\nexport PROJECT_ROOT=\"$PROJECT_DIR/..\"\n\n$NODE_BINARY ../../../node_modules/@sentry/cli/bin/sentry-cli react-native xcode \\\n../../../node_modules/react-native/scripts/react-native-xcode.sh\n";
typo: present
comment created time in 17 days
delete branch celo-org/celo-monorepo
delete branch : jeanregisser/verification-redesign
delete time in 17 days
push eventcelo-org/celo-monorepo
commit sha 0b4b28f620ab9ce6569d2c3e87a6d8d3aaedf639
[Wallet][ReDesign] Verification progress screen (#4483) ### Description This PR implements the [verification progress screen redesign](https://www.figma.com/file/zt7aTQ5wuXycIwxq5oAmF9/Wallet--Refresh?node-id=6470%3A78990). Outstanding tasks: - [x] Decide if we should try to wait for SMS to be auto-read on Android - For now, we decided NOT to wait - [x] Agree on the initial countdown duration (right now it's set to 2 mins) - Analytics data we have sofar seems to indicate it's an appropriate default - [x] Decide what to do when countdown reaches 0 - For now, we decided to switch to the verification input screen. We'll let the Verification bubble revisit this decision. See assets diff: https://github.com/clabs-co/valora-app-branding/compare/4f414a0...a3f5867 ### Other changes - Add new `Pagination` component. - Removed `VerificationInterstitialScreen` which is not needed anymore. - Removed now unused dependencies (`react-native-snap-carousel`, `react-native-shadow`). ### Tested Yes. See https://celo-org.slack.com/archives/C0134SBQTQR/p1594909944001600 ### Related issues - #4401 ### Backwards compatibility Yes
push time in 17 days
PR merged celo-org/celo-monorepo
Description
This PR implements the verification progress screen redesign.
Outstanding tasks:
- [x] Decide if we should try to wait for SMS to be auto-read on Android
- For now, we decided NOT to wait
- [x] Agree on the initial countdown duration (right now it's set to 2 mins)
- Analytics data we have sofar seems to indicate it's an appropriate default
- [x] Decide what to do when countdown reaches 0
- For now, we decided to switch to the verification input screen. We'll let the Verification bubble revisit this decision.
See assets diff: https://github.com/clabs-co/valora-app-branding/compare/4f414a0...a3f5867
Other changes
- Add new
Paginationcomponent. - Removed
VerificationInterstitialScreenwhich is not needed anymore. - Removed now unused dependencies (
react-native-snap-carousel,react-native-shadow).
Tested
Yes. See https://celo-org.slack.com/archives/C0134SBQTQR/p1594909944001600
Related issues
- #4401
Backwards compatibility
Yes
pr closed time in 17 days
Pull request review commentcelo-org/celo-monorepo
const fontStyles = StyleSheet.create({ color: colors.dark, }, large: standards.large,- regular: standards.regular,+ regular: { ...standards.regular },
Why is this needed?
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
export default function ExchangeConfirmationCard(props: Props) { <TotalLineItem amount={totalAmount} /> </View> </View>- </SafeAreaView>- </ScrollView>+ </ScrollView>+ </SafeAreaView>
SafeAreaView should generally be inside ScrollView so it displays nicely on devices with a notch.
Any reason not to do that here?
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Allow users to buy CELO on mainnet through Moonpay
import crypto from 'crypto' import * as functions from 'firebase-functions'-import { MOONPAY_PUBLIC_KEY, MOONPAY_SECRET_KEY, MOONPAY_URL } from './config'+import {+ MOONPAY_PUBLIC_KEY_PROD,+ MOONPAY_PUBLIC_KEY_STAGING,+ MOONPAY_SECRET_KEY_PROD,+ MOONPAY_SECRET_KEY_STAGING,+ MOONPAY_URL_PROD,+ MOONPAY_URL_STAGING,+} from './config' const URL = require('url').URL -export const signMoonpay = functions.https.onRequest((request, response) => {+// TODO: This staging function is left in place to test the cUSD integration+// that we are waitin on from Moonpay. It will be removed after
nit: typo, waiting
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Allow users to buy CELO on mainnet through Moonpay
const pgpnpPubKeyStaging = '7FsWGsFnmVvRfMDpzz95Np76wf/1sPaK0Og9yiB+P8QbjiC8FV67NBans9hzZEkBaQMhiapzgMR6CkZIZPvgwQboAxl65JWRZecGe5V3XO4sdKeNemdAZ2TzQuWkuZoA' const signMoonpayUrlStaging = 'https://us-central1-celo-org-mobile.cloudfunctions.net/signMoonpay'
function name for staging should be changed to signMoonpayStaging too.
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Allow users to buy CELO on mainnet through Moonpay
"main": "dist/index.js", "scripts": { "serve": "firebase serve --only functions",- "copy-env-to-firebase": "firebase functions:config:set envs.public_key=$(grep PUBLIC_KEY .env | cut -d '=' -f 2-) envs.private_key=$(grep PRIVATE_KEY .env | cut -d '=' -f 2-)",- "predeploy": "yarn copy-env-to-firebase",- "deploy": "firebase deploy --only functions",+ "update-firebase-config:prod": "firebase functions:config:set envs.public_key_staging=$(grep PUBLIC_KEY_STAGING .env | cut -d '=' -f 2-) envs.secret_key_staging=$(grep SECRET_KEY_STAGING .env | cut -d '=' -f 2-)",+ "update-firebase-config:staging": "firebase functions:config:set envs.public_key_prod=$(grep PUBLIC_KEY_PROD .env | cut -d '=' -f 2-) envs.secret_key_prod=$(grep SECRET_KEY_PROD .env | cut -d '=' -f 2-)",+ "deploy:prod": "firebase use prod && yarn update-firebase-config:prod && firebase deploy --only functions:signMoonpayProd",+ "deploy:staging": "firebase use default && yarn update-firebase-config:staging && firebase deploy --only functions:signMoonpayStaging",
no change needed now, but noting we can probably start using a similar pattern as what we have for blockchain-api / notification-service with a deploy script taking the network name as parameter.
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Allow users to buy CELO on mainnet through Moonpay
import BackButton from 'src/components/BackButton.v2' import CurrencyDisplay from 'src/components/CurrencyDisplay' import LineItemRow from 'src/components/LineItemRow' import { DOLLAR_ADD_FUNDS_MIN_AMOUNT, DOLLAR_CASH_OUT_MIN_AMOUNT } from 'src/config'+import { CUSD_MOONPAY_ENABLED } from 'src/flags'
I think this doesn't work, we have to import { features } from 'src/flags and then use features.CUSD_MOONPAY_ENABLED.
comment created time in 17 days
push eventcelo-org/celo-monorepo
commit sha 1424b8048b9bb80a97c24707ac87b0a23856568f
Fix snapshot flakiness because of time
push time in 17 days
push eventcelo-org/celo-monorepo
commit sha 8749192bb541dc23c1d7d1a037f25ad0e111fe6e
Document MultiSig limitations (#4503) ### Description The MultiSig contract is not a "Swiss army knife" of multi signatures - it offers specific, limited functionality. This PR adds some documentation to make this clear.
commit sha 9956fef0f377ca25f4354ad4da1466779fead572
Fix typo
commit sha 58dc53bf9362c5f6a32c299055ef9f411aac8b8b
Remove unused styles
commit sha c4e6e0966e31b3f7caa0cb70c7c37b73a83973bf
Rename var
commit sha 18b0c913c60208d51c2693e79416a6282ed2ea44
Merge remote-tracking branch 'origin/master' into jeanregisser/verification-redesign
push time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet][ReDesign] Verification progress screen
-/**- * A custom style carousel based on react-native-snap-carousel- */--import colors from '@celo/react-components/styles/colors.v2'+import Card from '@celo/react-components/components/Card'+import Pagination from '@celo/react-components/components/Pagination' import fontStyles from '@celo/react-components/styles/fonts.v2'+import progressDots from '@celo/react-components/styles/progressDots'+import { Spacing } from '@celo/react-components/styles/styles.v2' import variables from '@celo/react-components/styles/variables'-import * as React from 'react'-import { Platform, StyleSheet, Text, View, ViewStyle } from 'react-native'-import { BoxShadow } from 'react-native-shadow'-import RNCarousel, { Pagination } from 'react-native-snap-carousel'--const ITEM_WIDTH = variables.width - 70-const ITEM_HEIGHT = 300+import React, { useState } from 'react'+import {+ Image,+ ImageSourcePropType,+ NativeScrollEvent,+ NativeSyntheticEvent,+ ScrollView,+ StyleProp,+ StyleSheet,+ Text,+ View,+ ViewStyle,+} from 'react-native' -interface OwnProps {- containerStyle: ViewStyle- items: CarouselItem[]-}+const ITEM_WIDTH = variables.width - Spacing.Thick24 * 2+const ITEM_HEIGHT = ITEM_WIDTH * (211 / 292)+// Visible width of items which are on the left/right of the active item+const ITEM_PARTIAL_VISIBLE_WIDTH = Spacing.Smallest8+const ITEM_HORIZONTAL_SPACING = Spacing.Regular16+const ITEM_SNAP_INTERVAL = ITEM_WIDTH + ITEM_HORIZONTAL_SPACING export interface CarouselItem { text: string- icon?: React.ReactElement+ icon: ImageSourcePropType } -function renderItem({ item, index }: { item: CarouselItem; index: number }) {- return (- <View style={styles.itemWrapper}>- {Platform.OS === 'android' ? (- <BoxShadow setting={shadowOpt}>- <View style={styles.itemContainer}>- {item.icon}- <Text style={styles.itemText}>{item.text}</Text>- </View>- </BoxShadow>- ) : (- <View style={styles.itemContainer}>- {item.icon}- <Text style={styles.itemText}>{item.text}</Text>- </View>- )}- </View>- )+interface Props {+ style: StyleProp<ViewStyle>+ items: CarouselItem[] } -function Carousel(props: OwnProps) {- const ref = React.useRef(null)- const [activeItem, setActiveItem] = React.useState(0)+function Carousel({ items, style }: Props) {+ const [activeIndex, setActiveIndex] = useState(0)++ const onScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => {+ const newnActiveIndex = Math.round(event.nativeEvent.contentOffset.x / ITEM_SNAP_INTERVAL)
Good catch 👍
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
[Wallet][ReDesign] Verification progress screen
"react-native-screens": "^2.7.0", "react-native-secure-randombytes": "^3.0.2", "react-native-send-intent": "git+https://github.com/celo-org/react-native-send-intent#a0f4b00",- "react-native-shadow": "^1.2.2",
Yes in the few places where we use a shadow, using elevation was good enough on Android to mimic the more controllable shadow supported on iOS, though indeed they don't look exactly the same.
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
class DappKitSignTxScreen extends React.Component<Props, State> { this.setState({ request }) } + getRequest = () => {+ return this.props.route.params.dappKitRequest+ }+ linkBack = () => {- if (!this.state.request) {- return- }+ const request = this.getRequest() - navigateHome({ dispatchAfterNavigate: requestTxSignature(this.state.request!) })+ navigateHome({ onAfterNavigate: () => this.props.requestTxSignature(request) })
It will keep the reference from being garbage collected until onAfterNavigate is called by requestAnimationFrame. Which is fine since it's done in less than a second.
comment created time in 17 days
Pull request review commentcelo-org/celo-monorepo
export function* appInit() { yield put(setLanguage(language)) } - const deepLink = yield call(Linking.getInitialURL)+ const deepLink: string | null = yield call(Linking.getInitialURL) const inSync = yield call(clockInSync) if (!inSync) { navigate(Screens.SetClock) return } if (deepLink) {- handleDeepLink(deepLink)+ // TODO: this should dispatch (put) but since this appInit+ // is called before the listener is set, we do it this way.+ // This is fragile, change me :D
Ah yes my thought was that the openDeepLink action should be dispatched to follow the same path as handling deep links when the app is already open.
This is to avoid surprises and have a consistent behavior (maybe a reducer does something with the action).
comment created time in 17 days
startedshirakaba/react-nativescript
started time in 18 days
startedanuraghazra/github-readme-stats
started time in 18 days
Pull request review commentcelo-org/celo-monorepo
[Wallet] Secure Send Navigation Bug Fix
export const v1Schema = { total: 0, }, matchedContacts: {},- isValidRecipient: false,
Yes this isn't going to break existing users.
If you decide not to add a migration, the type for validationSuccessful should be changed to boolean | undefined for correctness.
comment created time in 18 days