w3f/General-Grants-Program

Mobile wallet for Polkadot. - Polkawallet

Closed this issue · 4 comments

Short intro: My name is Fuyao Jiang, my name in Riot community is 0xthreebody. Early Polkadot community members, continuous attention from the inception of the project. I am the Chinese translator of polkadot wikipedia. One of the polkadot Chinese community groups, and participated in each version of the PoC test network. My company, wanqirong, is developing a supply chain platform based on substrate. I assembled a new small team to develop a mobile wallet for polkadot - Polkawallet. Website: http://polkawallet.io.

Project introduce:

Polkawallet provide Cross-chain asset one-stop management, convenient staking and governance, the private key is self-owned.

_20190104141328

In order to give users a more humane and more convenient experience, as the entrance of the polkadot network, the user is provided with more intuitive visual data and status change display to guarantee the user's right to know and network participation.

_20190104144252

  • Users can add assets, support Relaychain and Parachain to transfer, receive, and view the transfer history and state. Have the visual asset change analysis chart, make it easier for users to analyze assets. Users are notified when they receive the asset and can view the transfer details data.

    The private key is self-owned, and have the Gesture,Fingerprint, Facial recognition, Hot and cold wallet mechanism, users can set their own scheme. Our team is developing a new encryption scheme -- high - dimensional fractal encryption, will be used to safeguard the security of a user using the polkawallet.

screen4-1546691772332

  • Polkawallet makes it easier for validators and nominal ators to make their contributions, by making the charts more intuitive and having a detailed history of each validators, for better analysis and research.


_ _20190105203945

  • Polkawallet provides a more intuitive and convenient entry point for participating in governance. If there is a new referendum/proposals, the user is reminded and you can view the details. Users can governance directly from polkawallet and view the history governance records. So polkawallet also improves public Referenda engagement.

screen3

  • Polkawallet will follow in Polkadot footsteps and continue to expand the cross-chain ecosystem, which is a module for the near future. It will quickly integrate suitable cross-chain applications, and we believe that it will be a colorful page. Cross-chain asset exchange is just a side application.

  • Available for all major mobile platforms. Currently react native is used as a cross-platform solution, which will be developed separately in the future.

Complete SohowDemo


THE PLAN

_ _20190105215211

  • Polkadot js api debugging for react native (2018.12.17 - plan 2019.01.15 done [actual: 01.07 done])

    Problems arise when importing Polkadot js API to the React Native, Special thanks to @jacogr helped me debug the API for a long time, polkadot-js/api#481. We've made a breakthrough, but there are still incompatibilities on the Android side.polkadot-js/api#526.

_ _20181219003817

_ _20181221211242

  • Display page jump logic

  • Display page implementation

  • Functional & logic implementation

  • Release Beta version

  • Optimization and development

  • Integrate Parity Signer to Polkawallet

  • Validator server manager

  • New and more functions, including finance, cross-chain ecosystem


WHAT WE NEED

  • Polkawallet is a team I set up separately, which does not belong to my company. I put together a small team of three people. Other employees are busy developing supply chain projects, so I want to hire 1-2 React Native developers to speed up development. But my idle funds all invested in the Polkadot project last year. So I may apply to W3F for financial aid.
  • We need W3F to help us debug the polkadot API for React Native. Because React Native is so different from the desktop, there are many incompatibilities. @jacogr and me have been working on this issue for too long.
  • I'm sure w3F and Polkadot will help me promote Polkawallet, I have just sent a Twitter, already feel enthusiasm and attention. Thanks from the heart!

This is excellent. Great job guys! I retweeted your Twitter thread already. 😃

As I mentioned in the watercooler, I'd love to see support for the desktop (especially as I'm thinking about managing money offline). If you were also able to integrate the functionality from Parity Signer that would be awesome. Their use of QR codes is nice for getting data between a secure device and a dirty device. There will be some be some challenges perhaps getting QR codes to work for complicated extrinsics.

As you are probably aware, we do have grant money available; however, we ask for open source code in exchange for funds. The site: https://grants.web3.foundation

Thanks! I submitted the application, but I still hope that a part of open source, will be fully open source before the beta release.

Important progress: Today, @jacogr with me solved the polkadot js api for React Native!! It used to be a hand prick problem. Too many pit...
There have the show demo: query blockHead, Account Balance, and Transfer & get the transaction hash.
_ _20190107161840

01-07 16:47:01.741 12066 12097 I ReactNativeJS: transfer 99369 to Bob with hash 0x0f63ef893bdc6fab9517a993f6106c823c15ef0c4e0dd0ee888adad8da031043
01-07 16:47:01.758 12066 12097 I ReactNativeJS: accountNonce(5GoKvZWG5ZPYL1WUovuHW3zJBWBP5eT8CbqjdRY4Q6iMaDtZ) 4
01-07 16:47:01.758 12066 12097 I ReactNativeJS: blockPeriod 2 seconds
01-07 16:47:01.767 12066 12097 I ReactNativeJS: 'validators', [ { address: '5GoKvZWG5ZPYL1WUovuHW3zJBWBP5eT8CbqjdRY4Q6iMaDtZ',
01-07 16:47:01.767 12066 12097 I ReactNativeJS:     balance: '1152921504606449496' } ]
01-07 16:47:01.814 12066 12097 I ReactNativeJS: 
01-07 16:47:01.814 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:47:01.814 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:47:01.814 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:47:01.938 12066 12097 I ReactNativeJS: 
01-07 16:47:01.938 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:47:01.938 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:47:01.938 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:47:04.939 12066 12097 I ReactNativeJS: 
01-07 16:47:04.939 12066 12097 I ReactNativeJS: Received 3 events:
01-07 16:47:04.939 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:47:04.939 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:47:04.939 12066 12097 I ReactNativeJS: 	balances:Transfer:: (phase=ApplyExtrinsic)
01-07 16:47:04.940 12066 12097 I ReactNativeJS: 		[ Transfer succeeded (from, to, value, fees).]
01-07 16:47:04.940 12066 12097 I ReactNativeJS: 			AccountId: 5GoKvZWG5ZPYL1WUovuHW3zJBWBP5eT8CbqjdRY4Q6iMaDtZ
01-07 16:47:04.943 12066 12097 I ReactNativeJS: 			AccountId: 5FZEyVyZm7r8WPQ8racC8MfdYMsAJNqGVVQQR4zM5SbEwhDr
01-07 16:47:04.943 12066 12097 I ReactNativeJS: 			Balance: 99369
01-07 16:47:04.943 12066 12097 I ReactNativeJS: 			Balance: 0
01-07 16:47:04.943 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:47:04.943 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:47:08.738 12066 12097 I ReactNativeJS: 
01-07 16:47:08.738 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:47:08.738 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:47:08.738 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:47:12.699 12066 12097 I ReactNativeJS: 
01-07 16:47:12.699 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:47:12.699 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:47:12.699 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:47:16.743 12066 12097 I ReactNativeJS: 
01-07 16:47:16.743 12066 12097 I ReactNativeJS: Received 3 events:
01-07 16:47:16.744 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
... ...
01-07 16:49:04.698 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:49:04.698 12066 12097 I ReactNativeJS: 	democracy:Tabled:: (phase=Finalization)
01-07 16:49:04.698 12066 12097 I ReactNativeJS: 		[]
01-07 16:49:04.698 12066 12097 I ReactNativeJS: 			PropIndex: 0
01-07 16:49:04.698 12066 12097 I ReactNativeJS: 			Balance: 10000
01-07 16:49:04.700 12066 12097 I ReactNativeJS: 			Vec<AccountId>: [5Gw3s7q4QLkSWwknsiPtjujPv3XM4Trxi5d4PgKMMk3gfGTE]
01-07 16:49:04.700 12066 12097 I ReactNativeJS: 	democracy:Started:: (phase=Finalization)
01-07 16:49:04.700 12066 12097 I ReactNativeJS: 		[]
01-07 16:49:04.700 12066 12097 I ReactNativeJS: 			ReferendumIndex: 0
01-07 16:49:04.700 12066 12097 I ReactNativeJS: 			VoteThreshold: Super majority approval
01-07 16:49:08.667 12066 12097 I ReactNativeJS: 
... ... ...
01-07 16:50:00.722 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:50:00.722 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:50:00.722 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:50:04.719 12066 12097 I ReactNativeJS: 
01-07 16:50:04.719 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:50:04.719 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:50:04.719 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:50:08.693 12066 12097 I ReactNativeJS: 
01-07 16:50:08.693 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:50:08.693 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:50:08.693 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:50:12.702 12066 12097 I ReactNativeJS: 
01-07 16:50:12.702 12066 12097 I ReactNativeJS: Received 1 events:
01-07 16:50:12.702 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:50:12.702 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:50:16.725 12066 12097 I ReactNativeJS: 
01-07 16:50:16.725 12066 12097 I ReactNativeJS: Received 2 events:
01-07 16:50:16.725 12066 12097 I ReactNativeJS: 	system:ExtrinsicSuccess:: (phase=ApplyExtrinsic)
01-07 16:50:16.725 12066 12097 I ReactNativeJS: 		[ An extrinsic completed successfully.]
01-07 16:50:16.726 12066 12097 I ReactNativeJS: 	democracy:NotPassed:: (phase=Finalization)
01-07 16:50:16.726 12066 12097 I ReactNativeJS: 		[]
01-07 16:50:16.726 12066 12097 I ReactNativeJS: 			ReferendumIndex: 0

The validator server manager is also valuable.

  • Do the validator work directly through the polkawallet or the browser;
  • One-Click Setup polkadot or other parachain node;
  • One-Click update node version;
  • Security components;
  • The server running status;
  • The Node running status;
  • Process watch & hacking-watchdog;
  • Support parachain collector;
  • Humanized management;
  • The guard mechanism;
  • The agent staking mechanism, makes the validator address just have very few tokens.
  • Alert notification mechanism;
  • Enhanced right to know;