profile
viewpoint

celo-org/celo-monorepo 154

Official repository for core projects comprising the Celo platform

jeanregisser/jeanregisser.com 4

Personal website

jeanregisser/CEPubnub 2

iOS objective-c wrapper for Pubnub real-time messaging service

jeanregisser/git-achievements 2

Aquire achievements while using git.

jeanregisser/CocoaPods 1

An Objective-C library dependency manager.

celo-org/analytics-ios-integration-firebase 0

Segment's bundled integration for Firebase on iOS

celo-org/gosigar 0

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.

celo-org/react-native-tcp 0

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

Gonzalo Nardini

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. ![ezgif com-video-to-gif](https://user-images.githubusercontent.com/6062888/88598489-c54e9500-d03f-11ea-84c6-d83672bbc16d.gif)

view details

Alec Schaefer

commit sha 46d5c7f76fa0bcaec8d6a67284f9eb8434a1b32c

flake tracker fix (#4594) Fixes build error on master caused by a circle CI env variable unexpectedly being null on master.

view details

Yorke Rhodes

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._

view details

Jean Regisser

commit sha 129a3ec4e83788a8f67a89cfee322e878e2400b2

Merge remote-tracking branch 'origin/master' into jeanregisser/fix-ios-license

view details

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.

gnardini

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.

gnardini

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.

jeanregisser

comment created time in 8 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 38b7f324f06924499ba695d31b72e14d650e6f54

Fix copy script

view details

push time in 8 days

PR opened celo-org/celo-monorepo

Reviewers
[Wallet] Fix empty license page on iOS

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

+30 -15

0 comment

8 changed files

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

Jean Regisser

commit sha 8dbde1698315395cd915dc0863f10428635c79aa

Remove logs

view details

push time in 8 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha b052aa155cb42be5b301f6f1d48761aabff2a790

Show qr code payment reason in the send confirmation screen

view details

push time in 8 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha ce791ef58781f3a0f9ea67e250842437d1bd79b6

Fix local currency not being fetched

view details

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

Jean Regisser

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

view details

push time in 9 days

PR merged celo-org/celo-monorepo

Reviewers
Update dependencies due to security vulnerabilities

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 contractkit and utils which depends on fixed version elliptic@6.5.2
  • [ ] update ethers which also which depends on fixed version elliptic@6.3.3

Other changes

None

Tested

Waiting for test to pass on CircleCI.

Related issues

Discussed on Slack

Backwards compatibility

Should be 👀

+15 -45

1 comment

5 changed files

jeanregisser

pr closed time in 9 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 1bf8a790eb153d4fe304a74abe6c74cd02ccccec

Add resolution for dot-prop because of security vulnerability See https://www.npmjs.com/advisories/1213

view details

push time in 9 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 5b133155c3b30bf0b83b8db59ec6cf3bdb340af4

Revert "Update elliptic dependency due to security vulnerability" This reverts commit 5b8b3e03efb5338830643281b5b393c9d2c95437.

view details

Jean Regisser

commit sha b91677fbe02b97e2ec0dd06db221d441afa07f0a

Use yarn resolution for elliptic until we can republish our packages

view details

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).

jeanregisser

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

Reviewers
[NotificationService] Rename "Celo Gold" -> "CELO" in push notifications

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.

+2 -2

0 comment

2 changed files

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

Reviewers
Update elliptic dependency due to security vulnerability

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 contractkit and utils which depends on fixed version elliptic@6.5.2
  • [ ] update ethers which also which depends on fixed version elliptic@6.3.3

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.

+40 -43

0 comment

4 changed files

pr created time in 9 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 5b8b3e03efb5338830643281b5b393c9d2c95437

Update elliptic dependency due to security vulnerability See https://www.npmjs.com/advisories/1547

view details

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.

gnardini

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.

gnardini

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

gnardini

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.

gnardini

comment created time in 10 days

push eventcelo-org/celo-monorepo

J M Rossy

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

view details

Ivan Sorokin

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

view details

Jean Regisser

commit sha 9fd50d2de864afc9a9eedf24694cbd0222d30571

Rename state property

view details

Jean Regisser

commit sha 5b625afbb950816b9072cd89c60e57de12e1882f

Fix schema

view details

Jean Regisser

commit sha 34e78c1288aeb170b2d8918b760c82d29bf1096e

Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen

view details

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.

jeanregisser

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!

jeanregisser

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!

i1skn

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?

i1skn

comment created time in 10 days

PR opened celo-org/celo-monorepo

Reviewers
[Wallet] Fix "User did not share" error

Description

  • Error was thrown outside of the normal promise error handling path (Share.open was 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

+21 -15

0 comment

2 changed files

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

Victor "Nate" Graf

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.

view details

Javier Cortejoso

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 <trkporter@ucdavis.edu>

view details

Asa Oines

commit sha 52d5de63a990d3bb5dbf8333b59722e489f1588a

Check Smart Contract version numbers in CI (#4523)

view details

Jean Regisser

commit sha e83913c5098f201790015668c4be2fad4b254b28

Only hide window and use software gpu when CI env is set

view details

Jean Regisser

commit sha 90fad7f12e61bec71727e27e35fd986cf1681b76

Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen

view details

push time in 10 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 0d9422875279bbf35d0cf06753d8e4ef7d953596

Fix verify_locales on CI Though still segfaults locally on OSX :/

view details

push time in 11 days

push eventcelo-org/celo-monorepo

Hernan Bandura

commit sha a49c819393887479460a72b36198c6ad141d06a9

Remove unnecessary dependency from contractkit (#4546) Remove unnecessary dependency from contractkit

view details

Jean Regisser

commit sha b219b74b45b6547e1d6ca9207f3478d7153c04d7

Only show terms once and restore to onboarding education if the user didn't go far enough

view details

Jean Regisser

commit sha 780f14ac50e1ccd677efe7f9cda74fc2e7202054

Add analytics for create/restore account and cancel action

view details

Jean Regisser

commit sha 8dad21258fffba7b73d8bda7441c3ebc8971bb3d

Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen

view details

push time in 11 days

PR opened celo-org/celo-monorepo

[Wallet] Add new onboarding Welcome screen

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 Account or Restore Account the next few screens will be the same
    • RegulatoryTerms
    • NameAndNumber
    • PincodeSet
  • Then the next screen will be either EnterInviteCode or ImportWallet based on the initial choice.
  • Going back from those 2 screens will directly go back to the Welcome screen (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

image (1) image (2)

Related issues

  • Fixes #4401

Backwards compatibility

Yes

+374 -168

0 comment

27 changed files

pr created time in 11 days

push eventcelo-org/celo-monorepo

Asa Oines

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.

view details

Aaron DeRuvo

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 ![Screen Shot 2020-07-23 at 10 33 10 AM](https://user-images.githubusercontent.com/3814795/88318956-5afcc400-ccd0-11ea-9c4d-18ad805b3a3f.png) ![Screen Shot 2020-07-23 at 10 33 21 AM](https://user-images.githubusercontent.com/3814795/88318959-5c2df100-ccd0-11ea-9002-0fff611df0a5.png) ![Screen Shot 2020-07-23 at 10 33 35 AM](https://user-images.githubusercontent.com/3814795/88318962-5cc68780-ccd0-11ea-8e7d-aa282d910c8f.png) ![Screen Shot 2020-07-23 at 10 33 50 AM](https://user-images.githubusercontent.com/3814795/88318963-5d5f1e00-ccd0-11ea-999e-228c2df00033.png) ![Screen Shot 2020-07-23 at 10 34 03 AM](https://user-images.githubusercontent.com/3814795/88318966-5df7b480-ccd0-11ea-993c-e3cb6a8cea43.png) ### Related issues - Fixes #4507 - Fixes #4505 - Fixes #4506

view details

Jason Rodrigues

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

view details

Aaron DeRuvo

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?

view details

Nitya Subramanian

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

view details

Jean Regisser

commit sha 2c7ea83cc66d82d0a4040e545ab12a9895db10dd

Merge remote-tracking branch 'origin/master' into jeanregisser/onboarding-signup-or-restore-screen

view details

push time in 11 days

Pull request review commentcelo-org/celo-monorepo

Update CODEOWNERS

 * @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
aaronmgdr

comment created time in 11 days

Pull request review commentcelo-org/celo-monorepo

Update CODEOWNERS

 * @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
aaronmgdr

comment created time in 11 days

push eventcelo-org/celo-monorepo

Mariano Cortesi

commit sha 7b5d9f0b459505b6f7c88595e32ce4ddef9233f8

Add mariano@clabs.co gpg key to the website (#4471) * Add mariano@clabs.co gpg key to the website * add README to openpgp file Co-authored-by: Victor Graf <victor@clabs.co> Co-authored-by: Victor "Nate" Graf <victor@celo.org>

view details

Mariano Cortesi

commit sha b59a987aa2a11603541d1bdf1484111230f818a7

docs: update docker imgs for 1.0.1 release (#4516) Docs change for 1.0.1 release

view details

Aaron DeRuvo

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 ![Screen Shot 2020-07-23 at 1 48 48 PM](https://user-images.githubusercontent.com/3814795/88337581-cd2ed200-cceb-11ea-969e-91249992e832.png) ![Screen Shot 2020-07-23 at 1 49 03 PM](https://user-images.githubusercontent.com/3814795/88337586-cdc76880-cceb-11ea-83a7-3337411e533c.png) ### Related issues - Fixes

view details

Joshua Gutow

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._

view details

Jean Regisser

commit sha 7713e61ec609c19835c19b3aeabeaaa45fb2088b

Merge remote-tracking branch 'origin/master' into jeanregisser/fix-edu-bg-color

view details

Jean Regisser

commit sha b60dfd01fd2687ae6057cc42dceb9c19562260bd

Update snapshot

view details

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

jeanregisser

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.

jeanregisser

comment created time in 15 days

PR opened celo-org/celo-monorepo

Reviewers
[Wallet] Fix default background color for screens

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

+21 -120

0 comment

63 changed files

pr created time in 15 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha b71872d3e1eb7ee3b03b0be564970c1a3e064ab1

Update snapshots

view details

push time in 15 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 68081ec8fcd7a976adb63fb970965b7b078cf87b

More missed background

view details

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.

gnardini

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.

gnardini

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.

jmrossy

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.

jmrossy

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?

jmrossy

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

jmrossy

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?

jmrossy

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).

jmrossy

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.+     */

👍 🧹

jmrossy

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.

👍

jmrossy

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.

gnardini

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.

jeanregisser

comment created time in 16 days

PR opened celo-org/celo-monorepo

Reviewers
[Wallet] Fix bug because of untyped yield take action

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.

+32 -17

0 comment

6 changed files

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

Reviewers
[Wallet] Fix push permission never asked on iOS

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.

+22 -7

0 comment

3 changed files

pr created time in 16 days

push eventcelo-org/celo-monorepo

Jean Regisser

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 :/

view details

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

[Wallet] Visual refinement 2

 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.

aaronmgdr

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

Jean Regisser

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

view details

push time in 17 days

PR merged celo-org/celo-monorepo

Reviewers
[Wallet] Fix DAppKit automerge

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

Related issues

  • Part of #4415
  • Fixes #3729

Backwards compatibility

Yes

+131 -130

0 comment

13 changed files

jeanregisser

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

critesjosh

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.

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

gnardini

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).

gnardini

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.

gnardini

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 ;)

gnardini

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?

i1skn

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} />} />

👍

i1skn

comment created time in 17 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 57b64fe53731e0027a1a440e436e2441e996f8fc

Update snapshots

view details

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

annakaz

comment created time in 17 days

push eventcelo-org/celo-monorepo

Martin

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.

view details

Tarik Bellamine

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

view details

Jean Regisser

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

view details

Jean Regisser

commit sha e2278272d6ed6161a8bc5db577e07635f61b3309

Fix import

view details

Jean Regisser

commit sha 22ec6157e716ad1897811194b5f2f77299745bda

Fix typo

view details

Jean Regisser

commit sha 4e76e2a89020f32bc8aa58d1c8674c98169248cf

Update staging function url

view details

Jean Regisser

commit sha 5462cb178e47e83ac3a2c96b0f45d61993d317ce

Merge remote-tracking branch 'origin/master' into annakaz/ship-moonpay

view details

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

bowd

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

Jean Regisser

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

view details

push time in 17 days

PR merged celo-org/celo-monorepo

Reviewers
[Wallet][ReDesign] Verification progress screen automerge

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 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

+1812 -1101

0 comment

42 changed files

jeanregisser

pr closed time in 17 days

Pull request review commentcelo-org/celo-monorepo

Wallet visual refinement 2

 const fontStyles = StyleSheet.create({     color: colors.dark,   },   large: standards.large,-  regular: standards.regular,+  regular: { ...standards.regular },

Why is this needed?

aaronmgdr

comment created time in 17 days

Pull request review commentcelo-org/celo-monorepo

Wallet visual refinement 2

 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?

aaronmgdr

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

annakaz

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.

annakaz

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.

annakaz

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.

annakaz

comment created time in 17 days

push eventcelo-org/celo-monorepo

Jean Regisser

commit sha 1424b8048b9bb80a97c24707ac87b0a23856568f

Fix snapshot flakiness because of time

view details

push time in 17 days

push eventcelo-org/celo-monorepo

Martin

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.

view details

Jean Regisser

commit sha 9956fef0f377ca25f4354ad4da1466779fead572

Fix typo

view details

Jean Regisser

commit sha 58dc53bf9362c5f6a32c299055ef9f411aac8b8b

Remove unused styles

view details

Jean Regisser

commit sha c4e6e0966e31b3f7caa0cb70c7c37b73a83973bf

Rename var

view details

Jean Regisser

commit sha 18b0c913c60208d51c2693e79416a6282ed2ea44

Merge remote-tracking branch 'origin/master' into jeanregisser/verification-redesign

view details

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 👍

jeanregisser

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.

jeanregisser

comment created time in 17 days

Pull request review commentcelo-org/celo-monorepo

[Wallet] Fix DAppKit

 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.

jeanregisser

comment created time in 17 days

Pull request review commentcelo-org/celo-monorepo

[Wallet] Fix DAppKit

 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).

jeanregisser

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.

tarikbellamine

comment created time in 18 days

more