Commit Graph

47 Commits

Author SHA1 Message Date
Jaco Greeff
31dea14271
Fix explorer (v1), withObservable unload & democracy images (#2062)
* Fix explorer (v1), withObservable unload & democracy images

* API bump

* Seconding count

* DerivedCollectiveProposal type
2019-12-17 11:00:42 +01:00
Jaco Greeff
6c58db0187
Small cleanups on withCalls (#2040)
* Fixups

* More

* Some withCalls -> useCall

* Linting

* Always defined

* Re-apply democracy changes

* TimePeriod adjusted

* Cleanup imports

* Additional

* More conversions

* Small loading cleanups

* Small context updates
2019-12-13 15:55:15 +01:00
Jaco Greeff
c3e16ac040
s/useApiContext/useApi/ (#1900) 2019-11-16 20:21:46 +01:00
Jaco Greeff
e0acd15b43
useAccounts hook (#1898)
* useAccounts hook

* Drop some withRouter

* Add setImmediate to trackStream

* Combine unsubscribe into subscribe

* Use before define

* Ass trackPromise

* Cleanup mapping for params

* Addressbook display
2019-11-16 10:13:07 +01:00
Jaco Greeff
c167227845
Add useApiContext (#1890)
* Add useApiContext

* Add missing withApiContext import

* useCacheKey, rename headers

* Adjustment on sessionRewards naming

* Renames based on defacto standards
2019-11-15 10:51:12 +01:00
Jaco Greeff
df095c2829
Staking updates (#1815)
* Staking updates

* Bump API

* So currentElected first in next up

* Linting

* Remove unused state entries
2019-10-30 15:53:52 +01:00
Jaco Greeff
a6d2dcaf72
Expose and use StatusContext (#1725) 2019-10-15 10:07:54 +02:00
Eswara Sai
2a4d761e0f Added parser to extract i18n strings (#1710)
* Added parser to extract i18n strings

* Fixed issues with eslint for config file

* Moved i18n locales to apps/public folder

* Updated script to have i18n strings as default value
2019-10-11 15:12:36 +02:00
Jaco Greeff
5ee21ae275
Staking performance updates (#1670)
* Staking performance updates

* More default on props
2019-09-26 22:21:16 +02:00
Jaco Greeff
a66577eda4
More functional component conversions (#1633)
* More functional component conversions

* Cleanups

* functional Elapsed

* Status -> functional

* Couple more

* One more tiny one
2019-09-19 17:57:32 +02:00
Jaco Greeff
ec8be875df
typescript-eslint 2 (#1568)
* Setup for typescript-eslint 2

* Cleanup linting

* Bump ui version

* Exclude build folders
2019-09-01 13:34:56 +02:00
Jaco Greeff
e4c933cc87
Bump deps (#1560) 2019-08-30 09:09:11 +02:00
Jaco Greeff
e6ca2db884
Rename ui-* -> react-* (#1495)
* Rename ui-* -> react-*

* Rename actual folders

* react-app -> react-components

* CSS links
2019-08-12 13:12:05 +02:00
Jaco Greeff
b4de745cda
Support latest api (with dynamic types) (#1447)
* Make a start, halfway down with issues found...

* Around  80% through untangling  the linter

* Seems linted...

* Adjust latest

* Update for latest (Moment -> u64)

* Method -> Call

* Bump api from npm

* formatNumber (no unwrap needed)

* Update to latest ui packages

* Revert internal version downgrades
2019-07-29 12:24:43 +02:00
Jaco Greeff
8bb35dd9ff
Complete eslint swap (#1407) 2019-07-16 11:56:40 +02:00
Jaco Greeff
144c8bbd85
eslint fixes (round 2) (#1401)
* eslint fixes (round 2)

* ui-params converted

* Tiny.

* Classes fix

* Some type cleanups

* Cleanup traling ,

* < 1k

* Small additions

* <750

* Mini updates modifiers

* More ui-app cleanups

* 312 problems (182 errors, 130 warnings)
2019-07-15 23:17:19 +02:00
Jaco Greeff
0e2265ff70
Some initial pre-eslint cleanups (#1383)
* Some initial cleanups

* Make it lint

* Small s/type/interface/ additions

* Small minor s/type/interface/

* More type -> interface

* Add lint:new rule

* Some small updates

* Cleanup dangling tslint  issues

* Small updates

* ui-signer cleanups

* ui-reactive updated

* Make lint:new run

* Mini ui-params cleanups

* Some additions

* Tiny... and done for now.

* 1950 problems (1241 errors, 709 warnings)

* 1829 problems (1181 errors, 648 warnings)

* 1674 problems (1181 errors, 493 warnings) (no any... for now)

* Small additions.

* Array<T> -> T[] (all)
2019-07-14 22:27:12 +02:00
Jaco Greeff
a86f8231d5
Convert to new api.derive (multi-query) functions (#1173)
* Convert to new api.derive functions

* Ensure stashId passed-through

* Bump api

* Update validation details

* Lint fixes

* Bump API

* Drop linked nominator query
2019-05-17 18:08:26 +02:00
Jaco Greeff
343a02c5e5
Disable hot-start global controller query (RPC load) (#1145) 2019-05-13 16:11:04 +02:00
Jaco Greeff
01eba9476a
Add app dashboard (skeleton) (#1059)
* Add dashboard skeleton

* Populate dashboard

* Space comments

* typos

* Update index.tsx
2019-05-02 13:26:42 +02:00
kwingram25
95a3690c35 Replace withCall -> withCalls (#1021)
* Wiki link

* replace withCall => withCalls

* rv wiki

* fix typing errors -> withMulti

* Fix typing errors

* callOnResult
2019-04-30 16:28:44 +02:00
Jaco Greeff
ed1e58d9a4
Display session key with stashes (#911)
* Display session key with stashes

* Only display node info when connected
2019-04-07 18:20:02 +02:00
Ross Bulat
9a3489e54f Tabs Simplify and Summary Tidy-up (#885)
* tabs simple

* remove min width

* 3 stats iphone size

* node info media-small

* spacing

* center stat

* iphone SE size summary support

* line-height, safari UI bug

* mob spacing (uhoh, @media queries building up)

*      trailing whitespace

* normalise media breakpoints

* nits

* padding, rem-ing

* trailing whitespace
2019-04-03 16:32:16 +02:00
Jaco Greeff
27689e8816
ss58 & US language updates (substrate 1.0-rc) (#871)
* ss58 & US language updates

* All Finalised -> Finalized

* Remove unused status

* 0.28

* 0.28
2019-03-29 18:26:18 +01:00
Jaco Greeff
96615d5957
Bump UI, HDKD keyring (new substrate crypto) (#813)
* Bump UI, HDKD keyring (new substrate crypto)

* Bump ui/* versions

* Pull in latest util-crypto, bp39 fix

* Bump common

* Small enhancements, cleanups (testing WIP)

* Bump

* Update after merge

* Bumps, fix transfer calculation (value may be non-existent)

* Bumpo dependencies

* Label extrinsic hash

* Signature updates

* Update deps

* Adjust status display

* Close status items on click

* Update withRouter duplication

* API bump, (some) creation fixes

* Move bip39 out of the worker (fast enough now via WASM)

* Update after master merge

* Cleanup deps (re-write yarn.lock)
2019-03-20 17:06:29 +01:00
Jaco Greeff
338bd517a0
Remove /index imports (swap to bare) (#814)
* Remove /index imports (swap to bare)

* Bump deps
2019-03-14 10:45:58 +01:00
Jaco Greeff
7bb5fd0588
Inject react router into content (work-around) (#810) 2019-03-13 13:24:54 +01:00
Jaco Greeff
03d7865047
Expand https -> ws connection info (#749)
* Expand https -> ws connection info

* Update NodeInfo.tsx

* Update Connecting.tsx

* Remove apps--App (& Content/SideBar flex embedded)
2019-02-22 08:11:08 +01:00
Jaco Greeff
61674a7989
Add Signer interface for API (#683)
* Add Signer interface for API

* Attach signer to API instance

* Integrate signer with updates (untested)

* Update with working signer integration (logging an issue still)

* Restore console hooks, feedback on signed

* Remove unneeded console.log

* Marge install
2019-02-12 22:29:47 +01:00
Jaco Greeff
a8ed300dc4
Small init changes (static state) (#663)
* Small init changes (static state)

* Hide vanity on empty accounts

* Require accounts for apps, cleanup needsApi/needsCalls

* Display InputAddress when disable (but no options)

* Filter toolbox based on accounts

* Accounts gated via app, don't display add

* Cleanup linting

* Validation display & clear on settings types

* Split save for developer & general

* Add Reset button to dev settings
2019-01-31 18:02:47 +01:00
Jaco Greeff
653c2a505f
Basic info display for 123-code (#641)
* Add withCalls

* withCalls operational

* Basic header display & cleanups

* Global account selector for app

* Remove errant debug log

* Simple transfer applet working

* Update Upgrade.tsx

* Update InputNumber.tsx

* Update Transfer.tsx

* Move TxButton back to 123code (for the time being)

* Good enough for a v1
2019-01-27 12:50:47 +01:00
Jaco Greeff
e86c437e91
Warm up frequently-used subscriptions (#633) 2019-01-21 16:28:12 +01:00
Jaco Greeff
c52116adb9
Don't make storage queries with missing params (#631)
* Don't make storage queries with missing params

* Remove debug logs
2019-01-21 15:05:09 +01:00
Jaco Greeff
864171e00a
Simplify i18n templates (#623)
* Start...

* Complete simplify i18n
2019-01-20 13:14:27 +01:00
Jaco Greeff
014ae780e4
Split ui-api, update API version (#589)
* Split ui-api, update API version

* Update (awaiting API changes to go through)

* Cleanup ui-api exports

* Bump API (SubscriptionPromise support)

* Linting fixes

* Update renames

* Do display balances.Transfer (shows for non-owned accounts)

* Bump API
2019-01-12 09:38:07 +01:00
Jaco Greeff
fef9f61c65
Use ApiPromise instance, replace ApiObservable (#540)
* Expose ApiPromise, cleanup API props

* WIP

* First component via ApiPromise

* More items via ApiPromise

* More robust availability handling

* Disable routes based on API endpoint checks

* Handle promises

* Low-hanging fruit for call conversion

* Remove extra params

* Adjust rx components with children props

* Start pulling in derived values

* Additional derived

* Bump

* More derived values

* Add derive.balances.fees

* Additional account lookups

* derive lookup for Id -> Index mappings

* Cleanups, accountIdToIndex

* Rework for new API

* Update deps, all-ok after API bumps

* Add voting and validating balances

* Cleanup callback

* Democracy wrap-up

* 2019

* withApiPromise -> withApiCall

* Calculate referendum number

* Fix balances, withObservableBase -> withObservable

* Cleanup with actual interfaces

* withApiCall -> withCall

* Bumps

* api-observable types replaced

* Half-effort to adjust extrinsic creation

* No api-observable refs anymore

* Cleanup storage query app

* Cleanup call

* Voting works...

* Add Vote component

* Update API
2019-01-07 17:54:01 +01:00
Jaco Greeff
4f96fc0d3f
Merge next into master (#529)
* Update API deps

* Duplicate new Api from api

* Explorer renders

* Cleanup trapping

* Allow Moment values

* Vector -> Array

* Add mapping FIXME

* Updates

* proposals -> publicProposals

* QueueTx

* nonce -> accountNonce

* Cleanup (some) naming

* FIXME

* Cleanups

* cmp & isZero on UInt

* WIP... storage dropdowns may work after latest API PR...

* Misplaced .public

* Update exposed methods

* Remove getBlock checks (available in poc-3)

* Align method/section

* Align with API (method)

* api-codec -> types

* Reanme API interfaces

* Type updates, still very much a WIP

* We have updating queries... without params

* Chainstate app is working

* Get rid of some params imports

* Cleanups

* Remove app-example... outdated, non-working

* Remove app-example link from README

* Additional cleanups

* InputRpc dropdowns working

* We can make transfers (Transfer app)

* Call doesn't encode toU8a

* Cleanup to use extrinsics from Api

* Remove references to @polkadot/params

* Update deps

* Submitting transactions hsould work in app-*

* Bump

* Extrinsics app renders

* Extrinsic app can transfer

* Adapt travis.yml

* Force things to pass checks...

* Update @polkadot/dev for gh-pages -> next

* Bump dev (hopefully now gh-pages deploy)

* Default theme

* Don't skip signer for sending

* Don't throw on unknown types

* Signer queue rework

* Render input params for rpc

* Explorer click-through working

* Update deps

* WIP#327 - app-accounts with ss58 address inputs

* transformtoss58 returns valid address or null

* syntax

* app-accounts

* app-democracy

* app-extrinsics

* app-rpc

* app-staking

* app-transfer

* Generate ui-identicon from ss58 as input

currently handling null address with null return - there should be a better way to do this but it "works".

* ui-app

adapt onChange Props params

* manage identities with ss58 addresses rather than u8a.

also currently handling null value input, should be a better way to handle this but currently "works".

* ui-signer use ss58 address in keyring

* ui-signer combine duplicate imports

* ui-signer signMessage with ss58 address

derive public key by decoding ss58 input

* use 'accountId' as variable name instead of 'ss58'

* Addressing some issues

* sanity check for accountId by decoding and checking public key

* allow u8a account id types for more flexibility around short address input types in the future

* throw error on generate identicon with empty seed

* fix: accountId over publicKey

Transactions work in extrinsics and transfers.

* fix linting errors in  rpc, addresses, transfer, identicon

* accountId in stakelist

* Allow file upload for Bytes

* Extrinsic change updates correctly, Params track codec instances

* Unused import

* Cleanup conflicts, linting

* [next] Display balance with μ, k & m (#350)

* Display balance with μ, k & m

* balanceFormat to handle UInt

* let -> const

* Format static Balance properly

* Take care of new extrinsics format

* m -> M (not mili, mega)

* [next] Proposals & democracy updates (#352)

* Update README.md

* Proposals actually submit (non-valid atm)

* New API package

* Promposal propose

* Poposal decoding

* Proposal & Referendums show up

* Formats

* Proposal & voting works as expected

* Staking works as expected

* Staking & Democracy fully operational

* Update package.json

* [next] Update API deps (#354)

* Update API deps

* Update type locations

* Update api deps

* [next] Add mnemonic support from keyring (#356)

* Add mnemonic support from keyring

* Bump @polkadot/api

* Bump dependencies (#358)

* [next] Add app-settings (#359)

* [next] Add app-settings

* Update deps, cleanups

* Re-encode address for adding

* Action for seedType selection

* Revert denominations (#360)

* [next] Dependency bumps (#362)

* Bump API decoding

* Bump deps

* [next] Chain configs (#361)

* Revert denominations

* Chain Id

* Distinct colours

* Cleanup options for settings

* Adjust tests aftrer colour change

* Gated on isConnected & isReady

* Allow selection/add of AccountIndex

* Remove examples (code removed already)

* Reverse Id <-> Index lookups

* Index reverse lookups

* Usable AccountIndex

* [next] Bump API (#363)

* [next] Merge master (#364)

* Update README.md

* Re-lock account only after save

* trying to get mapping of nominators correct (#346)

* trying to get mapping of nominators correct

* changed double quote to single

* Fix for disabled chain state button bug (#351)

* merge prev and next params on Selection key change

* build error

* [next] Balance formatting (#365)

* Update README.md

* Re-lock account only after save

* trying to get mapping of nominators correct (#346)

* trying to get mapping of nominators correct

* changed double quote to single

* Fix for disabled chain state button bug (#351)

* merge prev and next params on Selection key change

* build error

* Load order (we need chain)

* Dropdown for seed type selection

* Allow SI unit selection on number inputs

* Remove unused function

* Cleanup BalanceFormatter

* Fix tests

* [next] Bump API version (#366)

* Bump API version

* Proposal construction & chain units

* Update Extrinsic -> Call

* Pass correct call params

* Cleanup linting

* Re-encode address on loading

* Bump

* Lint fix.

* [next] Import from package indexes (#370)

* [next] Import form package indexes

* Update deps, fix Transfer balance checks

* Add error on unlock

* Save account with hex encoded (not address)

* Import InputAddress for swap

* Bump @polkadot/api (staking nominators show up)

* Align api & util deps

* Bump @polkadot/api

* [next] Bump API, adjust call/method (#372)

* Bump API, adjust call/method

* Add votes correctly to yay/nay

* [next] Local Testnet

* Don't link block 0

* [next] FF Warning message (#374)

* FF Warning message

* Bump deps, massage message a bit

* Bump deps

* i18next upgrade changes

* Bump yarn to 1.10.1 in engines, travis (#379)

* [next] submitAndWatchExtrinsic for transactions (#377)

* WIP: Replace submitExtrinsic with submitAndWatchExtrinsic

TODO:
* don't `complete` when calling send, rather update as update messages come in from API
* adjust queue statuses in UI with new Status codec type from API.

* update api wrapper for subscribeAndWatch

* Update index.tsx

* subscribe to updates

* remove unneeded subscribe

* display result type

* Wrap up submitAndWatch status display

* Status background colours

* Revert indent

* Queue status icons (#380)

* [next] Bump dependencies (#383)

* Bump dependencies

* Update mock creation

* Don't mangle classes via uglify (#384)

* [next] Update status overlay styling (#385)

* Update status overlay styling

* Adjust colours for status messages

* Slight padding adjustments

* [next] refactor: Create export index files in ui-react-rx/src/{with/util} for single line destructuring imports (#388)

* refactor: Create ui-react-rx/src/with index of exports. Import single line destructuring

* refactor: Create ui-react-rx/src/util index of exports. Import single line destructuring

* refactor: Use ui-react-rx/src/ index of exports. Import single line destructuring

* refactor: Refactor to use exported index

* refactor: Refactor to use another exported index

* fix: Add missing license headers. Avoid import from index in same location

* [next] Support latest substrate master (#390)

* Update deps (api, compact support)

* Bump deps

* Update deps

* Compact<BlockNumber> for Header

* Handle Compact<*> rendering

* Cleanup warnings

* Update deps

* Not perfect, but warn on (invalid) hashes for blocks

* [next] keyring classify (#393)

* refactor: reorder imports and props alphabetically

* fix: Make class methods private

* fix: Restrict user restoring account to select only .json. Add missing withLabel

* refactor: Replace onBack with onCreateAccount and onRestoreAccount

* fix: Show console.log of error in try/catch of Backup/Restore

* fix: accountAll is array of objects

* refactor: Move Backup keyring logic into ui-keyring

* refactor: Move restoreAccount logic into ui-keyring

* refactor: Move validatePass to ui-keyring as isPassValid with MAX_PASSWORD_LEN

* refactor: Issue #138 convert closure to separate function declare, call, export

* refactor: Issue #138 convert function to ES6 class object

* refactor: Move addPair, create, createMnemonic, restore, save into Keyring class

* refactor: Move backup/encrypt/forget account, get accounts, and save account meta functions into Keyring class

* refactor: Move get address/addresses, forget/save address, and save recent functions into Keyring class

* refactor: Move isPassValid, isAvailable functions into Keyring class

* refactor: Move loadAll into Keyring class

* refactor: Move much of ui-keyring/options into Keyring class

* refactor: Move private methods to top of class

* fix: fix: Prevent creating multiple instances of Keyring class

* Prevent creating multiple instances of Keyring class. i.e. the following does not create the second instance:

```
const keyringInstance = new Keyring();
const keyringInstance2 = new Keyring();
```

* References:
	* https://codepen.io/JoeCoulam/pen/mRqbzz
	* https://medium.com/@dmnsgn/singleton-pattern-in-es6-d2d021d150ae
	* https://stackoverflow.com/questions/26205565/converting-singleton-js-objects-to-use-es6-classes/26227662#26227662

* fix: Prevent calling initOptions of Keyring singleton multiple times

* the following calls to initOptions are prevented since initOptions called when instance created with by loadAll() function:

```
const keyringInstance = new Keyring();
keyringInstance.initOptions();
keyringInstance.initOptions();
```

* test: Add test for Keyring singeton instance check and so initOptions only callable once

* feat: Move Keyring options back. Remove singleton check. Move initOptions check. Only export Keyring instance

* Move keyring options back into options folder

* Remove checking if Keyring is singleton

* Move checking if initOptions called multiple times and associated tests out of Keyring and into options folder file

* Add type to pair to fix linting

* Remove exporting Keyring class, only Keyring instance is exported

* refactor: Class-ify the Keyring options directory into a class named

* fix: Store state outside of Keyring instance

* refactor: Move keyring state into Keyring class. Add getters and setters

* Move observable accounts and addresses into Keyring class.

* Rename KeyringInstance interface to KeyringStruct (similar to app-settings)

* Add getter for keyring, accounts, and addresses to Keyring

* Add setter for keyring

* Add AccountSubject type

* Fix State type to use AccountSubject instead of AddressSubject

* Small private member tweaks

* Rework (overzealous private members)

* Fix rename in test

* [next] Block explorer event display (#392)

* Update README.md

* Re-lock account only after save

* trying to get mapping of nominators correct (#346)

* trying to get mapping of nominators correct

* changed double quote to single

* Fix for disabled chain state button bug (#351)

* merge prev and next params on Selection key change

* build error

* Updated required Node version in README (#367)

The minimum Node version is 10.1.0 as specified in the package.json 'engines'. The installation fails if the node version is below that (eg. v10.0.0 ), that's why I changed it in the README

* Simple (unformatted) event display

* section, method + types

* Display events on explorer

* Styling & overflow fixes

* Fix linting issues

* Node 10.13.0 LTS

* Revert message on block, reduce flicker

* [next] Update nvmrc version. Add missing packages to Readme. Indicate LTS required (#395)

* docs: Fix typo in Readme

* fix: Update nvmrc to version in package.json

* docs: Add missing packages to Readme. Indicate that LTS is required

* Render logs in expanded block display (#396)

* [next] Cleanup staking list balance displays (#397)

* Cleanup staking list balance displays

* Don't naked map balances (params passed)

* Cleanup block display with cleaner formatting (#398)

* Only filter dev accounts when in dev (#401)

* [next] Move BIP generation to worker (UI responsiveness) (#400)

* Move BIP generation to worker (responsive)

* Test & cleanup via local prod build

* [next] Fix length encoding for uploaded Bytes (#405)

* Fix length encoding for uploaded Bytes

* Remove addressed FIXME

* Cleanup linting, adjust encoding via helpers

* [next] Handle null nonce in extrinsics (in addition to undefined) (#407)

* Handle null nonce (in addition to undefined)

* Adjust types for partials

* Helper for submit RPC

* [next] Highlight validators (#402)

* Add isHiglight to IdentityIcon

* Display validator highlight in Address{Row,Summary}

* Highlight validators in AddressMini

* Highlight validators in AddressInput

* Display zero balalnce as 0 instead of 0.000f (#408)

* Cleanup explorer header display (#410)

* [next] Align article headers (all h3, no extra classes) (#411)

* Align article headers (all h3, no extra classes)

* Adjust overflowing columns in explorer

* Adjust app contemnt to cover screen (#412)

* [next] Retrieve hash instead of calculating (slower) (#415)

* Retrieve hash instead of calculating (slower)

* Cleanups

* Allow raw-key queries via the storage app (#416)

[next] Allow raw-key queries via the storage app

* [next] Remove IdentityIcon bond dependencies (#419)

* Remove IdentityIcon bond dependencies

* Cleanup tests

* Update README

* Update header

* Update headers

* Catch & display observable status errors (#422)

* [next] refactor: Move backup/restore functionality to Keyring. See details (#386)

* refactor: reorder imports and props alphabetically

* fix: Make class methods private

* fix: Restrict user restoring account to select only .json. Add missing withLabel

* refactor: Replace onBack with onCreateAccount and onRestoreAccount

* fix: Show console.log of error in try/catch of Backup/Restore

* fix: accountAll is array of objects

* refactor: Move Backup keyring logic into ui-keyring

* refactor: Move restoreAccount logic into ui-keyring

* refactor: Move validatePass to ui-keyring as isPassValid with MAX_PASSWORD_LEN

* fix: Change allAccounts type to SubjectInfo

* refactor: Example with clearer usage of  for React Dropzone

* [next] refactor: Issue #138. Convert closure into ES6 class object. Move methods into class (#387)

* refactor: Issue #138 convert closure to separate function declare, call, export

* refactor: Issue #138 convert function to ES6 class object

* refactor: Move addPair, create, createMnemonic, restore, save into Keyring class

* refactor: Move backup/encrypt/forget account, get accounts, and save account meta functions into Keyring class

* refactor: Move get address/addresses, forget/save address, and save recent functions into Keyring class

* refactor: Move isPassValid, isAvailable functions into Keyring class

* refactor: Move loadAll into Keyring class

* refactor: Move much of ui-keyring/options into Keyring class

* refactor: Move private methods to top of class

* fix: fix: Prevent creating multiple instances of Keyring class

* Prevent creating multiple instances of Keyring class. i.e. the following does not create the second instance:

```
const keyringInstance = new Keyring();
const keyringInstance2 = new Keyring();
```

* References:
	* https://codepen.io/JoeCoulam/pen/mRqbzz
	* https://medium.com/@dmnsgn/singleton-pattern-in-es6-d2d021d150ae
	* https://stackoverflow.com/questions/26205565/converting-singleton-js-objects-to-use-es6-classes/26227662#26227662

* fix: Prevent calling initOptions of Keyring singleton multiple times

* the following calls to initOptions are prevented since initOptions called when instance created with by loadAll() function:

```
const keyringInstance = new Keyring();
keyringInstance.initOptions();
keyringInstance.initOptions();
```

* test: Add test for Keyring singeton instance check and so initOptions only callable once

* feat: Move Keyring options back. Remove singleton check. Move initOptions check. Only export Keyring instance

* Move keyring options back into options folder

* Remove checking if Keyring is singleton

* Move checking if initOptions called multiple times and associated tests out of Keyring and into options folder file

* Add type to pair to fix linting

* Remove exporting Keyring class, only Keyring instance is exported

* refactor: Class-ify the Keyring options directory into a class named

* fix: Store state outside of Keyring instance

* refactor: Move keyring state into Keyring class. Add getters and setters

* Move observable accounts and addresses into Keyring class.

* Rename KeyringInstance interface to KeyringStruct (similar to app-settings)

* Add getter for keyring, accounts, and addresses to Keyring

* Add setter for keyring

* Add AccountSubject type

* Fix State type to use AccountSubject instead of AddressSubject

* Small private member tweaks

* Rework (overzealous private members)

* Fix rename in test

* merge latest from next. fix merge conflicts

* fix linting error

* fix: Remove unncessary code

* Bump API version (bugfixes) (#424)

* [next] Apply fee color classes correctly (#426)

* Apply fee color classes correctly

* Class ordering

* Adjust menu & IdentityIcon styling (#427)

* Cleanup proposal & referendum display (#429)

* [next] Cleanup Referendums & voting process (with Vec<KV>) (#431)

* Cleanup Referendums & voting process (with Vec<KV>)

* Remove FIXME (addressed)

* [next] Cleanup styling (#428)

* Adjust backgrounds to be slightly darker

* Cleanup validator/intentions lists

* update readme reflect removal of ui-react (#434)

* moved shared function to parent (#404)

* moved shared function to parent

* lint

* remove balance array dance

* lint

* Bump deps, metadata parsing (#436)

* article styling updates (#437)

* [next] Merge master, param change update (#438)

* Marge master, param change update

* Tie params to section.method

* [next] autoFocus app fields (#439)

* autoFocus app fields

* Toolbox autoFocus

* Cleanup warnings in staking nominate

* Align borders

* Remove unused var

* [next] Revert menu border override (#440)

* Revert menu border override

* Revert article single border

* Menu background

* Align grays

* Lighten content background

* [next] Support dynamic Tuple & Array inputs (#441)

* Allow Tuple value entry

* Fire Param events

* Remove extra debug log

* Allow entry of Array<*>

* Bump deps

* Bump deps (API d.ts fixed)

* [next] Display intention/validator name in staking list #303 (#448)

* Added getAccount() method to ui-keyring package

* Added getDisplayName function for staking accounts/ addresses

* removed deprecated argument from earlier approach

* formatting (added empty line)

* Removed unnecessary typecheck & encoding from getAccount(),

* Added getAccount to types.d.ts

* removed space

* changed type of `address` to string (failing build fix)

* [next] Backup warning modal on account creation #394 (#447)

* Added address summary and auto-download of backup file to 'create'-modal

* Removed deprecated code after falsy merge

* Fixed typo Plesae -> Please

* Move check for whenCreated property from saveAccount to separate method

* removed unnecessary return statement

* grammar fix 'was' -> 'is'

* Added Highlight to Modal class, styling adjustments

* removed surrounding <p> in modal content

* Changed Modal.Highlight to built in MUI Modal.Description

* renamed translation key of Modal.Description

* Moved timestamp creation back to save Account

* [next] Explicit Identityicon prefix (#446)

* set IdentityIcon default prefix

* Update with import from keyring

* Rework encoding/decoding of addresses

* Update keyring deps

* [next] Bump deps (#449)

* Bumpo deps, work around i18next definitions being wonky (again)

* Cleanup yarn.lock

* [next] add user notifications in App-Accounts (#391)

* add toaster for app-accounts status changes

* status notifs

* linter

* lint

* refactor with addressmini

* remove debugger statement

* fixintl, status obj creation pattern

* lint

* Track events globally, alert use (notification pop-up)  (#413)

* move Status component to ui-app

* move status stuff up the component tree

some more generalizations with action types

* global status

currently works in app-accounts and ui-signer

* I18n and linting

* lintlint

* style

* add notifs to app-address

* status notifs with backup, changepass

* addresses unnecessary translates

* lint

* Fix merge

* Vector should not render add/remove in isDisabled mode (#452)

* [next] Bump API version (#455)

* Bump API version

* Bump deps

* Update README and LICENSE

* Bump dependencies

* [next] Track extrinsics, don't allow until accountIndex is updated (#406)

* dont allow queueing until accountindex increments

* WIP: deny txn submit before account nonce increments

* readding blocked extrinsics to the queue. Still need to properly set the accountNonce though

* queue unclog

* remove unnecessary _this=this scoping dance

* Moving the need for `?:` to a separate issue

* update types to match codec, account for different accountid with same nonce

* Fix toString for undefined (#456)

[next] Fix toString for undefined

* [next] Cleanup translate HOC definitions (#457)

* Cleanup translate HOC definitions

* Alignment

* [next] Bump API for Grandpa compat (#461)

* Bump API for Grandpa compat

* Update types for new API

* [next] Handle byte display consistently (#463)

* Handle byte display consistently

* Chack blocked status against completed status

* Bump

* Democracy countdown (lauch & voting) (#464)

* Bump API to handle StorageData -> Bytes with prefix (#466)

* Bump dependencies, align with stricter TS checks (#467)

* Only remove local files, not nested (#468)

* Bump api deps (#469)

* Display nonce via toString(), cleanup blocked checks (#470)

* [next] Bump deps, update with linting rules (#472)

* Bump deps, update with linting rules

* Update root package config

* Revert testing ruleset config

* Update tslint config pulling in dev-react

* Bump deps with UI packages, remove now unused eslint config (#474)

* Move types.d.ts -> types.ts (#475)

* [next] Bump dependencies (#481)

* Bump deps

* Bump deps

* Cleanup lintin issues with 3.2.1

* Bump @polkadot/api with Tuple map support

* Format JSON results from RPC app

* [next] Make settings accessible from non-running node (#484)

* Add onCopy to IdentityIcon

* Allow settings to be accessible when no node

* Proper license naming for identicon (#488)

* [next] Split ui-{identicon,keyring,settings} into ui repo (#491)

* Split ui-{identicon,keyring,settings} into ui repo

* Correct settings import from ui-app

* Use @polkadot/ui-* split from npm

* Update with latest @polkadot/ui

* Migrate to travis-ci.com, bump deps

* Change non-local imports to direct

* #459 Add spread and copy buttons for substrate.code query (#465)

* #459 Add spread and copy buttons for substrate.code query

* fix code style checks

* render spread&copy buttons for all queries which produce byte code

* Type and name refinement

* #459 A first revision where spread functionality for Byte queries is implemented

* remove state property

* Review fixes

* Review fixes

* break query output for overflowing content

* call valueToText with -1

* Fix linter issue

* [next] Global shared status queue and consumer (#490)

* Global shared status queue and consumer

* Bump deps

* Adjust styling

* Remove copy (unimplemented), spread & concat

* [next] Display received events (balalnces.Transfer atm) (#494)

* Display received events (balalnces.Transfer atm)

* Cleanup Status class

* Keys for values in Vector

* Extra information on address decode errors (#495)

* [next] Cleanup React & API errors (#498)

* Cleanup React & API errors

* Revert value override, breaks input

* InputNumber does not switch between controlled and uncontrolled

* Status has key for entries

* Adjust receive icon

* Bump dependencies, cleanup Unknown types (#499)

* Bump dependencies, cleanup Unknown types

* Cleanup status styling, icon stretch

* [next] fix: Fixes #493. Contain logs digest item within div (#497)

* fix: Fixes #493. Contain logs digest item within div

* refactor: Remove monospace and drop-down css. Add only wrapping and space between elements

* fix: Remove AuthoritiesChange, forgotten how that got there, but not required

* Allow onCopy Status for IdentityIcon (#501)

* Allow onCopy Status for IdentityIcon

* Clanup same-package imports

* [CI Skip] Update .codeclimate.yml (#502)

* [next] Bump dependencies (#503)

* Bump dependencies

* Bump dependencies

* Downgrade react-dropzone (8.x has new context API)

* Bump deps (API types fix)

* Cater for check where key has no meta (#504)

* Align number inputs to 0 defaults (#506)

* fix InputAddress display (#509)

* [next] Bump dependencies (#512)

* Bump dependencies

* Don't change status (flicker) when completed

* Expand status timeout

* Pull svg from ui-assets (#513)

* [next] Read chain properties, inject (#514)

* Read chain properties, inject

* Linting

* Bump deps (#520)

* Bump deps

* ... and include lockfile

* [next] Support latest Polkadot types (#523)

* Bump deps, latest Polkadot types

* Rendered for ParaId

* [next] Charred Cherry support (#522)

* Charred Cherry support

* Update deps to include CC

* Update injection & new method interfaces

* Naming, extrinsic vs method

* Update ExtrinsicStatus results

* Bump deps

* [next] launguage -> language (#524)

* [next] Bump deps, support latest metadata struct (#525)

* Bump deps, support latest metadata

* Bumpdeps

* Bump dev

* Bump local deps

* Display target period * 2 (#526)

* Alexanber support (#528)

* Bump API

* Bump deps

* Fix referendums, chain id for Alexander

* Bump deps
2018-12-21 17:17:26 +01:00
Jaco Greeff
d3b6ed447e
Cleanup extra classes(...), additional semantic elements (#249) 2018-08-22 13:48:40 +02:00
Jaco Greeff
8155e94d05
Simplify routing, redirect to default (#228)
* Simplify routing, redirect to default

* Allow subroutes

* Cleanup unused scripts

* Pass through basePath (router prop)
2018-08-16 10:40:56 +02:00
Jaco Greeff
078e2e431a
Support enumerable accounts (#102)
Covert to TypeScript
2018-06-25 18:02:47 +02:00
Jaco Greeff
9c89026e6e
Copyright project authors (#95)
* Copyright project authors

* Add contributors
2018-06-13 22:32:49 +02:00
Jaco Greeff
6753dc0ad2
Use @babel 7 (#52)
* Use @babel 7

* Use @babel 7

* Use custom webpack config

* Minify input css

* Remove @flow header form webpack.config

* Webpack config re-usable

* Split with vendor/main bundles

* Use hash for main entry, specify chunkHash

* Import base postcss config

* Hashing uses blake2

* Align number formats

* Use contenthash fro extracted css

* Format number directly

* Split runtime (better caching)
2018-05-17 14:51:41 +02:00
Jaco Greeff
5f884c4b65
Add utility/toolbox app (#51)
* Upgrades

* Add & use Output component

* Render app in content

* Use update @polkadot/dev-react

* Add app-toolbox

* DRY className concat

* Hashing in place

* Verify signature operational

* Entry updates

* Verification operational

* Final cleanups before PR

* Bump version
2018-05-15 16:58:32 +02:00
Jaco Greeff
b11a6981a2
Optimise components (#39)
* ui-react-app -> ui-app

* CopyButton, Input & Password components

* Convert all to use ui-app/{Input, Label}

* Change to PureComponent where we have onChange listeners

* Cleanup layouts

* Swap dropdown components, remove uselexx constructors

* Allow address/account forget

* Bump

* Searching with headers operational

* flex grow/shrink for icon + account add

* Fix balance & transaction display (account/address management)

* Adjust balance layout

* Equalise padding
2018-05-11 18:08:10 +02:00
Jaco Greeff
072c5d73f1
Simplify app using setState (#23)
* Remove extra subjects from app-explorer

* Use bs58 addresses

* Base upgrades subject -> onChange

* app-storage & app-explorer works

* Remove useless placeholder

* Progres...

* Rename Submission -> Selection

* Baby steps... things display now...

* setState operational

* Explicit onChange

* Work around eslint issues (!!!)

* @flow fixes

* Small styling updates

* Small app content styling updates

* Simplify
2018-05-07 11:37:06 +02:00
Jaco Greeff
a5607ac90e
App for realtime storage queries (#11)
* Create app-storage structure

* Split shared components into ui-react-app

* Cleanup @flow issues

* Rename apps classes

* Split with ui-react-app operational

* Import es semantic-ui

* Selection section/key split into 2

* Basic storage queries (no-params) in-place

* Upgrades

* No-param queries operational

* Default values operational (dropdown)

* Additional cleanups, constrolled value

* @flow updates

* @flow fixes

* Move Params to ui-react-app (future-use in app-storage)

* Fix final @flow issues

* Query removal

* Cleanups

* Update README

* Upgrades

* Fixup cached components

* Bump @polkadot/rx-react

* Simple explorer animations

* Additional (final) cleanups
2018-05-04 15:07:44 +02:00
Jaco Greeff
b71e029cc8
Round out available extrinsic methods (#8)
* Expand methods

* Remove extra params label

* Move shared extrinsic definitions

* Split extrinsics into own packages

* Update entry location

* Include all method calls

* Expand to include all extrinsics

* Cleanup extrinsic definitions

* Build folder change
2018-04-29 16:52:55 +02:00