├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .travis.yml ├── Dockerfile ├── ISSUE_TEMPLATE.md ├── LICENSE ├── README.md ├── babel.config.js ├── config ├── abi-loader.js ├── import-sort-style.js ├── jest │ ├── config.base.js │ ├── config.e2e.js │ ├── config.unit.js │ ├── e2e-global-vars.js │ ├── setup-e2e.js │ └── setup.js ├── postcss.config.js ├── webpack.new.base.js ├── webpack.new.dev.js └── webpack.new.prod.js ├── dist └── i18nJson.js ├── favicon.png ├── gcregistry.json ├── i18nJson.js ├── index-presentation.html ├── index.html ├── ipscend.json ├── jest-puppeteer.config.js ├── main.js ├── mocks ├── README.md ├── fileMock.js └── styleMock.js ├── nodes └── mac │ └── geth ├── package.json ├── packages ├── core │ ├── dao │ │ ├── AbstactEthereumDAO.js │ │ ├── AbstractContractDAO.js │ │ ├── AbstractMultisigContractDAO.js │ │ ├── AbstractTokenDAO.js │ │ ├── AssetDonatorDAO.js │ │ ├── AssetHolderDAO.js │ │ ├── AssetsManagerDAO.js │ │ ├── BitcoinDAO.js │ │ ├── ChronoBankAssetDAO.js │ │ ├── ChronoBankPlatformDAO.js │ │ ├── ContractList.js │ │ ├── ContractsManagerDAO.js │ │ ├── ERC20DAO.js │ │ ├── ERC20ManagerDAO.js │ │ ├── ERC20TokenDAO.js │ │ ├── EthereumDAO.js │ │ ├── FeeInterfaceDAO.js │ │ ├── LaborHourDAO.js │ │ ├── MultisigWalletDAO.js │ │ ├── NemDAO.js │ │ ├── PlatformTokenExtensionGatewayManagerEmitterDAO.js │ │ ├── PlatformsManagerDAO.js │ │ ├── PollEmitterDAO.js │ │ ├── PollInterfaceDAO.js │ │ ├── PollInterfaceManagerDAO.js │ │ ├── RewardsDAO.js │ │ ├── TokenManagementExtensionDAO.js │ │ ├── TokenManagementExtensionManager.js │ │ ├── UserManagerDAO.js │ │ ├── VotingManagerDAO.js │ │ ├── WalletsManagerDAO.js │ │ ├── WavesDAO.js │ │ ├── abi │ │ │ ├── ERC20DAODefaultABI.js │ │ │ └── index.js │ │ └── constants │ │ │ ├── AssetDonatorDAO.js │ │ │ ├── AssetHolderDAO.js │ │ │ ├── AssetsManagerDAO.js │ │ │ ├── BitcoinDAO.js │ │ │ ├── ChronoBankAssetDAO.js │ │ │ ├── ChronoBankPlatformDAO.js │ │ │ ├── ERC20DAO.js │ │ │ ├── ERC20ManagerDAO.js │ │ │ ├── EthereumDAO.js │ │ │ ├── NemDAO.js │ │ │ ├── PendingManagerDAO.js │ │ │ ├── PlatformTokenExtensionGatewayManagerEmitterDAO.js │ │ │ ├── PlatformsManagerDAO.js │ │ │ ├── PollEmitterDAO.js │ │ │ ├── PollInterfaceDAO.js │ │ │ ├── RewardsDAO.js │ │ │ ├── UserManagerDAO.js │ │ │ ├── VotingManagerDAO.js │ │ │ ├── WalletsManagerDAO.js │ │ │ ├── WavesDAO.js │ │ │ └── index.js │ ├── describers │ │ ├── constants.js │ │ ├── events │ │ │ ├── EventDescriber.js │ │ │ ├── index.js │ │ │ └── lib │ │ │ │ └── assetEventDescribers.js │ │ ├── index.js │ │ ├── topics.js │ │ └── transactions │ │ │ ├── TransactionDescriber.js │ │ │ ├── index.js │ │ │ └── lib │ │ │ ├── assetsTxDescribers.js │ │ │ ├── depositTxDescribers.js │ │ │ ├── tokenTxDescribers.js │ │ │ └── votingTxDescribers.js │ ├── models │ │ ├── AbstractFetchingCollection.js │ │ ├── AbstractFetchingModel.js │ │ ├── AbstractJsModel.js │ │ ├── AbstractModel.js │ │ ├── AbstractModelOld.js │ │ ├── AdditionalActionModel.js │ │ ├── AllowanceCollection.js │ │ ├── Amount.js │ │ ├── CurrentTransactionNotificationModel.js │ │ ├── FileModel.js │ │ ├── FileSelect │ │ │ ├── FileCollection.js │ │ │ ├── FileExtension.js │ │ │ └── FileModel.js │ │ ├── HolderModel.js │ │ ├── LogInModel.js │ │ ├── LogListModel.js │ │ ├── ModelBase.js │ │ ├── PollDetailsModel.js │ │ ├── PollModel.js │ │ ├── PollModelOld.js │ │ ├── ProfileModel.js │ │ ├── ProfileModel.spec.js │ │ ├── SignInModel.js │ │ ├── SignerDeviceModel.js │ │ ├── SignerModel.js │ │ ├── TransferError.js │ │ ├── TransferExecModel.js │ │ ├── TxDescModel.js │ │ ├── TxEntryModel.js │ │ ├── TxError.js │ │ ├── TxExecModel.js │ │ ├── TxExecModelOld.js │ │ ├── TxModel.js │ │ ├── assetHolder │ │ │ ├── AssetHolderModel.js │ │ │ ├── AssetModel.js │ │ │ └── AssetsCollection.js │ │ ├── assetsManager │ │ │ └── MainAssetsManagerModel.js │ │ ├── constants.js │ │ ├── constants │ │ │ ├── AccountEntryModel.js │ │ │ ├── PollNoticeModel.js │ │ │ └── TransferError.js │ │ ├── contracts │ │ │ ├── ContractDAOModel.js │ │ │ └── ContractModel.js │ │ ├── describers │ │ │ ├── LogEventModel.js │ │ │ └── LogTxModel.js │ │ ├── device │ │ │ └── DeviceEntryModel.js │ │ ├── index.js │ │ ├── notices │ │ │ ├── AbstractNoticeModel.js │ │ │ ├── ApprovalNoticeModel.js │ │ │ ├── ArbitraryNoticeModel.js │ │ │ ├── AssetsManagerNoticeModel.js │ │ │ ├── ErrorNoticeModel.js │ │ │ ├── PollNoticeModel.js │ │ │ ├── ProfileNoticeModel.js │ │ │ ├── TokenNoticeModel.js │ │ │ ├── TransactionErrorNoticeModel.js │ │ │ ├── TransferErrorNoticeModel.js │ │ │ ├── TransferNoticeModel.js │ │ │ └── WalletNoticeModel.js │ │ ├── rewards │ │ │ ├── AbstractPeriodModel.js │ │ │ ├── RewardsCollection.js │ │ │ ├── RewardsCurrentPeriodModel.js │ │ │ ├── RewardsModel.js │ │ │ ├── RewardsModel.spec.js │ │ │ ├── RewardsPeriodModel.js │ │ │ └── RewardsPeriodModel.spec.js │ │ ├── tokens │ │ │ ├── BalanceModel.js │ │ │ ├── BalancesCollection.js │ │ │ ├── BlacklistModel.js │ │ │ ├── FeeModel.js │ │ │ ├── PausedModel.js │ │ │ ├── ReissuableModel.js │ │ │ ├── TokenModel.js │ │ │ └── TokensCollection.js │ │ ├── validator.js │ │ ├── validator.spec.js │ │ ├── voting │ │ │ ├── VotingCollection.js │ │ │ └── VotingMainModel.js │ │ └── wallet │ │ │ ├── AddressModel.js │ │ │ ├── AddressesCollection.js │ │ │ ├── AllowanceCollection.js │ │ │ ├── AllowanceModel.js │ │ │ ├── DerivedWalletModel.js │ │ │ ├── MainWalletModel.js │ │ │ ├── MultisigEthWalletModel.js │ │ │ ├── MultisigTransactionModel.js │ │ │ ├── MultisigWalletCollection.js │ │ │ ├── MultisigWalletPendingTxModel.js │ │ │ ├── OwnerCollection.js │ │ │ ├── OwnerModel.js │ │ │ ├── TransactionsCollection.js │ │ │ ├── TxHistoryModel.js │ │ │ ├── WalletModel.js │ │ │ ├── __snapshots__ │ │ │ └── MultisigWalletModel.spec.js.snap │ │ │ └── persistAccount │ │ │ ├── AbstractAccountModel.js │ │ │ ├── AccountCustomNetwork.js │ │ │ ├── AccountEntryModel.js │ │ │ ├── AccountModel.js │ │ │ ├── AccountProfileModel.js │ │ │ └── index.js │ ├── package.json │ ├── redux │ │ ├── abstractBitcoin │ │ │ ├── MiddlewareService.js │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ │ ├── abstractEthereum │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ ├── thunk.js │ │ │ └── utils │ │ │ │ ├── TransactionGuide.js │ │ │ │ └── TransactionHandler.js │ │ ├── assetsHolder │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ └── selectors │ │ │ │ ├── index.js │ │ │ │ └── models.js │ │ ├── assetsManager │ │ │ ├── __snapshots__ │ │ │ │ └── reducer.spec.js.snap │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── reducer.spec.js │ │ │ ├── selectors.js │ │ │ └── selectors │ │ │ │ ├── assetsManager.js │ │ │ │ └── models.js │ │ ├── bitcoin │ │ │ ├── BitcoinMiddlewareService.js │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── converter.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ │ ├── daos │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ └── selectors.js │ │ ├── dash │ │ │ ├── DashMiddlewareService.js │ │ │ ├── selectors.js │ │ │ └── thunks.js │ │ ├── device │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ └── reducer.js │ │ ├── ducks.js │ │ ├── eos │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors │ │ │ │ ├── mainSelectors.js │ │ │ │ └── tokens.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ │ ├── ethereum │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ │ ├── events │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ └── selectors.js │ │ ├── laborHour │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ └── thunks.js │ │ ├── modals │ │ │ ├── actions.js │ │ │ ├── actions.spec.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── reducer.spec.js │ │ │ └── thunks.js │ │ ├── multisigWallet │ │ │ ├── __snapshots__ │ │ │ │ └── reducer.spec.js.snap │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── reducer.spec.js │ │ │ ├── selectors.js │ │ │ └── selectors │ │ │ │ ├── balances.js │ │ │ │ ├── models.js │ │ │ │ └── tokens.js │ │ ├── nem │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ │ ├── notifier │ │ │ ├── actions.js │ │ │ ├── actions.spec.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ └── reducer.spec.js │ │ ├── persistAccount │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ └── utils.js │ │ ├── profile │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── service.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ │ ├── providers │ │ │ └── thunks.js │ │ ├── rewards │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ └── reducer.spec.js │ │ ├── serialize.js │ │ ├── session │ │ │ ├── __snapshots__ │ │ │ │ └── actions.spec.js.snap │ │ │ ├── actions.js │ │ │ ├── actions.spec.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── reducer.spec.js │ │ │ ├── selectors.js │ │ │ ├── selectors │ │ │ │ ├── models.js │ │ │ │ └── session.js │ │ │ └── thunks.js │ │ ├── settings │ │ │ └── erc20 │ │ │ │ └── tokens │ │ │ │ ├── actions.js │ │ │ │ ├── constants.js │ │ │ │ ├── reducer.js │ │ │ │ ├── reducer.spec.js │ │ │ │ └── selectors.js │ │ ├── tokens │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ │ ├── transaction │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ └── selectors.js │ │ ├── voting │ │ │ ├── __snapshots__ │ │ │ │ └── reducer.spec.js.snap │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── reducer.spec.js │ │ │ ├── selectors │ │ │ │ ├── index.js │ │ │ │ └── models.js │ │ │ ├── thunks.js │ │ │ └── types.js │ │ ├── wallet │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ ├── selectors │ │ │ │ ├── models.js │ │ │ │ └── selectors.js │ │ │ └── types.js │ │ ├── wallets │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors │ │ │ │ ├── balances.js │ │ │ │ ├── index.js │ │ │ │ ├── models.js │ │ │ │ ├── tokens.js │ │ │ │ ├── transactions.js │ │ │ │ ├── wallet.js │ │ │ │ └── wallets.js │ │ │ └── utils.js │ │ ├── watcher │ │ │ ├── __snapshots__ │ │ │ │ └── actions.spec.js.snap │ │ │ ├── actions.js │ │ │ ├── actions.spec.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ └── reducer.spec.js │ │ └── waves │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── selectors.js │ │ │ ├── thunks.js │ │ │ └── utils.js │ ├── services │ │ ├── AssetsManagerService.js │ │ ├── EventsService.js │ │ ├── MultisigWalletService.js │ │ ├── TokenService.js │ │ ├── VotingService.js │ │ ├── constants │ │ │ └── index.js │ │ ├── errors │ │ │ └── TrezorError.js │ │ └── signers │ │ │ ├── BitcoinCashLedgerDevice.js │ │ │ ├── BitcoinCashLedgerDeviceMock.js │ │ │ ├── BitcoinCashMemoryDevice.js │ │ │ ├── BitcoinCashTrezorDevice.js │ │ │ ├── BitcoinCashTrezorDeviceMock.js │ │ │ ├── BitcoinLedgerDevice.js │ │ │ ├── BitcoinLedgerDeviceMock.js │ │ │ ├── BitcoinMemoryDevice.js │ │ │ ├── BitcoinTrezorDevice.js │ │ │ ├── BitcoinTrezorDeviceMock.js │ │ │ ├── DashMemoryDevice.js │ │ │ ├── DashTrezorDevice.js │ │ │ ├── EosLedgerDevice.js │ │ │ ├── EosMemoryDevice.js │ │ │ ├── EthereumLedgerDevice.js │ │ │ ├── EthereumLedgerDeviceMock.js │ │ │ ├── EthereumMemoryDevice.js │ │ │ ├── EthereumTrezorDevice.js │ │ │ ├── EthereumTrezorDeviceMock.js │ │ │ ├── LitecoinTrezorDevice.js │ │ │ ├── MetamaskPlugin.js │ │ │ ├── NemMemoryDevice.js │ │ │ ├── NemTrezorDevice.js │ │ │ ├── NemTrezorDeviceMock.js │ │ │ ├── WavesLedgerDevice.js │ │ │ ├── WavesLedgerDeviceMock.js │ │ │ └── WavesMemoryDevice.js │ ├── utils │ │ ├── DecodeUtils.js │ │ ├── IPFS.js │ │ ├── IPFS.spec.js │ │ ├── Web3Converter.js │ │ ├── Web3Converter.spec.js │ │ ├── eventHistory.js │ │ ├── formatter.js │ │ ├── formatter.spec.js │ │ └── imageValidator.js │ └── web3 │ │ └── index.js ├── login-ui │ ├── components │ │ ├── AccountName │ │ │ ├── AccountName.js │ │ │ ├── AccountName.scss │ │ │ ├── AccountNameContainer.js │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── AccountSelector │ │ │ ├── AccountSelector.js │ │ │ ├── AccountSelector.scss │ │ │ ├── AccountSelectorContainer.js │ │ │ └── lang.js │ │ ├── BackButton │ │ │ ├── BackButton.js │ │ │ ├── BackButton.scss │ │ │ └── lang.js │ │ ├── BlockchainChoice │ │ │ ├── BlockchainChoice.js │ │ │ ├── BlockchainChoice.scss │ │ │ ├── BlockchainChoiceContainer.js │ │ │ ├── lang.js │ │ │ └── styles.js │ │ ├── CommonNetworkSelector │ │ │ ├── CommonNetworkSelector.js │ │ │ └── CommonNetworkSelector.scss │ │ ├── ConfirmMnemonic │ │ │ ├── ConfirmMnemonic.js │ │ │ ├── ConfirmMnemonic.scss │ │ │ ├── ConfirmMnemonicContainer.js │ │ │ ├── MnemonicButton.jsx │ │ │ ├── MnemonicButton.scss │ │ │ └── lang.js │ │ ├── CreateAccount │ │ │ ├── CreateAccount.js │ │ │ ├── CreateAccount.scss │ │ │ ├── CreateAccountContainer.js │ │ │ ├── lang.js │ │ │ ├── styles.js │ │ │ └── validate.js │ │ ├── DerivationPathForm │ │ │ ├── DerivationPathForm.js │ │ │ ├── DerivationPathForm.scss │ │ │ ├── DerivationPathFormContainer.js │ │ │ └── lang.js │ │ ├── GenerateMnemonic │ │ │ ├── GenerateMnemonic.js │ │ │ ├── GenerateMnemonic.scss │ │ │ ├── GenerateMnemonicContainer.js │ │ │ └── lang.js │ │ ├── GenerateWallet │ │ │ ├── GenerateWallet.js │ │ │ ├── GenerateWallet.scss │ │ │ ├── GenerateWalletContainer.js │ │ │ └── lang.js │ │ ├── LoginForm │ │ │ ├── LoginForm.js │ │ │ ├── LoginForm.scss │ │ │ ├── lang.js │ │ │ └── styles.js │ │ ├── LoginPageShared.scss │ │ ├── LoginUPort │ │ │ ├── LoginUPort.js │ │ │ ├── LoginUPort.scss │ │ │ └── lang.js │ │ ├── LoginWithLedger │ │ │ ├── LedgerAddress.js │ │ │ ├── LoginWithLedger.js │ │ │ ├── LoginWithLedger.scss │ │ │ ├── LoginWithLedgerContainer.js │ │ │ └── lang.js │ │ ├── LoginWithMetamask │ │ │ ├── LoginWithMetamask.js │ │ │ ├── LoginWithMetamask.scss │ │ │ ├── LoginWithMetamaskContainer.js │ │ │ └── lang.js │ │ ├── LoginWithMnemonic │ │ │ ├── LoginWithMnemonic.js │ │ │ ├── LoginWithMnemonic.scss │ │ │ ├── LoginWithMnemonicContainer.js │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── LoginWithOptions │ │ │ ├── LoginWithOptions.js │ │ │ ├── LoginWithOptions.scss │ │ │ └── lang.js │ │ ├── LoginWithPrivateKey │ │ │ ├── LoginWithPrivateKey.js │ │ │ ├── LoginWithPrivateKey.scss │ │ │ ├── LoginWithPrivateKeyContainer.js │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── LoginWithTrezor │ │ │ ├── LoginWithTrezor.js │ │ │ ├── LoginWithTrezor.scss │ │ │ ├── LoginWithTrezorContainer.js │ │ │ ├── TrezorAddress.js │ │ │ └── lang.js │ │ ├── LoginWithWallet │ │ │ ├── LoginWithWallet.js │ │ │ ├── LoginWithWallet.scss │ │ │ ├── LoginWithWalletContainer.js │ │ │ └── lang.js │ │ ├── NetworkCreateModal │ │ │ ├── NetworkCreateModal.js │ │ │ ├── NetworkCreateModalForm │ │ │ │ ├── NetworkCreateModalForm.js │ │ │ │ ├── NetworkCreateModalForm.scss │ │ │ │ ├── lang.js │ │ │ │ ├── styles.js │ │ │ │ └── validate.js │ │ │ ├── NetworkDeleteModal │ │ │ │ ├── NetworkDeleteModal.js │ │ │ │ ├── NetworkDeleteModal.scss │ │ │ │ └── lang.js │ │ │ └── lang.js │ │ ├── NetworkSelector │ │ │ ├── NetworkSelector.js │ │ │ └── lang.js │ │ ├── NetworkStatus │ │ │ ├── NetworkStatus.js │ │ │ ├── NetworkStatus.scss │ │ │ └── lang.js │ │ ├── NotFoundPage │ │ │ ├── NotFoundPage.js │ │ │ ├── NotFoundPage.scss │ │ │ └── lang.js │ │ ├── RecoverAccount │ │ │ ├── RecoverAccount.js │ │ │ ├── RecoverAccount.scss │ │ │ ├── RecoverAccountContainer.js │ │ │ └── lang.js │ │ ├── ResetPassword │ │ │ ├── ResetPassword.js │ │ │ ├── ResetPassword.scss │ │ │ ├── ResetPasswordContainer.js │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── UserRow │ │ │ ├── UserRow.js │ │ │ └── UserRow.scss │ │ ├── Warning │ │ │ ├── Warning.js │ │ │ ├── Warning.scss │ │ │ └── lang.js │ │ ├── constants.js │ │ ├── index.js │ │ └── stylesLoginPage.js │ ├── lang.js │ ├── package.json │ ├── redux │ │ ├── constants.js │ │ ├── navigation.js │ │ ├── thunks.js │ │ ├── userMonitorService.js │ │ └── utils.js │ └── settings.js ├── login │ ├── network │ │ ├── AbstractEthereumProvider.js │ │ ├── AbstractNode.js │ │ ├── AbstractProvider.js │ │ ├── BitcoinAbstractNode.js │ │ ├── BitcoinBlockexplorerNode.js │ │ ├── BitcoinMiddlewareNode.js │ │ ├── BitcoinNode.js │ │ ├── BitcoinProvider.js │ │ ├── DashProvider.js │ │ ├── EthereumMiddlewareNode.js │ │ ├── EthereumNode.js │ │ ├── EthereumProvider.js │ │ ├── HDWalletProvider.js │ │ ├── LaborHourNode.js │ │ ├── LaborHourProvider.js │ │ ├── MonitorService.js │ │ ├── NemAbstractNode.js │ │ ├── NemMiddlewareNode.js │ │ ├── NemNode.js │ │ ├── NemProvider.js │ │ ├── NetworkProvider.js │ │ ├── PublicBackendProvider.js │ │ ├── WavesAbstractNode.js │ │ ├── WavesMiddlewareNode.js │ │ ├── WavesNode.js │ │ ├── WavesProvider.js │ │ ├── Web3Provider.js │ │ ├── Web3Utils.js │ │ ├── __mocks__ │ │ │ └── sockjs-client.js │ │ ├── constants.js │ │ ├── metaMaskResolver.js │ │ ├── settings.js │ │ └── uportProvider.js │ ├── package.json │ ├── patches │ │ └── web3-provider-engine+14.0.6.patch │ ├── redux │ │ ├── ducks.js │ │ ├── monitor │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ └── reducer.js │ │ └── network │ │ │ ├── __snapshots__ │ │ │ └── reducer.spec.js.snap │ │ │ ├── actions.js │ │ │ ├── constants.js │ │ │ ├── reducer.js │ │ │ ├── reducer.spec.js │ │ │ ├── selectors.js │ │ │ └── thunks.js │ └── settings.js └── market │ ├── README.md │ ├── middleware │ ├── CryptocompareSocket.js │ ├── actions.js │ ├── constants.js │ ├── httpApi.js │ ├── index.js │ ├── reducers.js │ ├── thunks.js │ └── utils │ │ ├── ccc-streamer-utilities.js │ │ ├── constants.js │ │ └── index.js │ ├── package.json │ └── redux │ ├── actions.js │ ├── constants.js │ ├── initialState.js │ ├── reducers.js │ ├── selectors.js │ └── thunks.js ├── patches └── @ledgerhq │ └── hw-transport-u2f+4.32.0.patch ├── scripts ├── build.js ├── compress.js ├── i18npack.js ├── openChrome.applescript └── start.js ├── src ├── assets │ ├── chrono-bank-logo.svg │ ├── drawer_bg.svg │ ├── file-select │ │ ├── icon-attach.svg │ │ └── type │ │ │ ├── default.svg │ │ │ ├── doc.svg │ │ │ ├── image.svg │ │ │ ├── pdf.svg │ │ │ ├── ppt.svg │ │ │ └── xls.svg │ ├── fonts │ │ ├── ChronoBankIcons.eot │ │ ├── ChronoBankIcons.svg │ │ ├── ChronoBankIcons.ttf │ │ ├── ChronoBankIcons.woff │ │ ├── MyFontsWebfontsKit.css │ │ └── webfonts │ │ │ ├── 3420B9_0_0.eot │ │ │ ├── 3420B9_0_0.ttf │ │ │ ├── 3420B9_0_0.woff │ │ │ ├── 3420B9_0_0.woff2 │ │ │ ├── 3420B9_1_0.eot │ │ │ ├── 3420B9_1_0.ttf │ │ │ ├── 3420B9_1_0.woff │ │ │ ├── 3420B9_1_0.woff2 │ │ │ ├── 3420B9_2_0.eot │ │ │ ├── 3420B9_2_0.ttf │ │ │ ├── 3420B9_2_0.woff │ │ │ ├── 3420B9_2_0.woff2 │ │ │ ├── 3420B9_3_0.eot │ │ │ ├── 3420B9_3_0.ttf │ │ │ ├── 3420B9_3_0.woff │ │ │ ├── 3420B9_3_0.woff2 │ │ │ ├── 3420B9_4_0.eot │ │ │ ├── 3420B9_4_0.ttf │ │ │ ├── 3420B9_4_0.woff │ │ │ ├── 3420B9_4_0.woff2 │ │ │ ├── 3420B9_5_0.eot │ │ │ ├── 3420B9_5_0.ttf │ │ │ ├── 3420B9_5_0.woff │ │ │ ├── 3420B9_5_0.woff2 │ │ │ ├── 3420B9_6_0.eot │ │ │ ├── 3420B9_6_0.ttf │ │ │ ├── 3420B9_6_0.woff │ │ │ ├── 3420B9_6_0.woff2 │ │ │ ├── 3420B9_7_0.eot │ │ │ ├── 3420B9_7_0.ttf │ │ │ ├── 3420B9_7_0.woff │ │ │ ├── 3420B9_7_0.woff2 │ │ │ ├── 3420B9_8_0.eot │ │ │ ├── 3420B9_8_0.ttf │ │ │ ├── 3420B9_8_0.woff │ │ │ └── 3420B9_8_0.woff2 │ ├── img │ │ ├── 2fa │ │ │ └── 2-fa.png │ │ ├── appstore-white.svg │ │ ├── appstore.svg │ │ ├── arrow-down.svg │ │ ├── arrow-up.svg │ │ ├── asset_stub.svg │ │ ├── assets1.svg │ │ ├── assets2.svg │ │ ├── assets3.svg │ │ ├── assets4.svg │ │ ├── avaToken.svg │ │ ├── blocked-white.svg │ │ ├── checkbox-marked-circle.svg │ │ ├── chronowalletlogobright.svg │ │ ├── chronowallettext-white.svg │ │ ├── chronowallettextbright.svg │ │ ├── confirm-operation.svg │ │ ├── dash.svg │ │ ├── exit-white.svg │ │ ├── facebook.svg │ │ ├── folder-multiple.svg │ │ ├── github.svg │ │ ├── icn-add-token.svg │ │ ├── icn-bitcoin-cash.svg │ │ ├── icn-bitcoin.svg │ │ ├── icn-circle-plus.svg │ │ ├── icn-eos.svg │ │ ├── icn-eth.png │ │ ├── icn-ethereum.svg │ │ ├── icn-lht.svg │ │ ├── icn-litecoin.svg │ │ ├── icn-plus.svg │ │ ├── icn-time.png │ │ ├── icn-time.svg │ │ ├── icn-wallet-dialog-white.svg │ │ ├── icn-wallet-dialog.svg │ │ ├── icn-wallet-main-big.svg │ │ ├── icn-wallet-main.svg │ │ ├── icn-wallet-multi-big.svg │ │ ├── icn-wallet-multi.svg │ │ ├── icn-waves.svg │ │ ├── icn-xem.svg │ │ ├── icn-xmin.svg │ │ ├── icons │ │ │ ├── back.svg │ │ │ ├── check-green.svg │ │ │ ├── coin-blue.svg │ │ │ ├── copy.svg │ │ │ ├── delete-white.svg │ │ │ ├── facebook.svg │ │ │ ├── file-white.svg │ │ │ ├── github.svg │ │ │ ├── instagramm.svg │ │ │ ├── key-white.svg │ │ │ ├── ledger-nano-white.svg │ │ │ ├── list.svg │ │ │ ├── mnemonic-white.svg │ │ │ ├── plugin-white.svg │ │ │ ├── portfolio-white.svg │ │ │ ├── prev-white.svg │ │ │ ├── prev.svg │ │ │ ├── print-white.svg │ │ │ ├── qr.svg │ │ │ ├── reddit.svg │ │ │ ├── telegramm.svg │ │ │ ├── trezor-white.svg │ │ │ ├── twitter.svg │ │ │ ├── uport.svg │ │ │ ├── wallet-white.svg │ │ │ └── warning.svg │ │ ├── instagram.svg │ │ ├── logo-chrono-bank-full.svg │ │ ├── logo-chrono-wallet-bw.svg │ │ ├── marketsLogos │ │ │ ├── .!88899!yacuna.png │ │ │ ├── binance.png │ │ │ ├── bitbay.png │ │ │ ├── bitfinex.png │ │ │ ├── bitflyer.png │ │ │ ├── bitflyerln.png │ │ │ ├── bithump.png │ │ │ ├── bitmarket.png │ │ │ ├── bitso.png │ │ │ ├── bitsquare.png │ │ │ ├── bitstamp.png │ │ │ ├── bittrex.png │ │ │ ├── bleutrade.png │ │ │ ├── btc38.png │ │ │ ├── btcchina-rebrand-btcc.png │ │ │ ├── btce.png │ │ │ ├── btcmarkets.png │ │ │ ├── btcxindia.png │ │ │ ├── bter.png │ │ │ ├── ccedk.png │ │ │ ├── ccex-logo.png │ │ │ ├── cexio.png │ │ │ ├── chbtc_logo.png │ │ │ ├── coinbase.png │ │ │ ├── coincheck.png │ │ │ ├── coinfloor-logo.png │ │ │ ├── coinone.png │ │ │ ├── coinroom.png │ │ │ ├── coinse-logo.png │ │ │ ├── cryptopia.png │ │ │ ├── cryptox.png │ │ │ ├── default-logo.svg │ │ │ ├── ethdelta.png │ │ │ ├── exmo.png │ │ │ ├── gatecoin.png │ │ │ ├── gdax.jpg │ │ │ ├── gemini.png │ │ │ ├── hitbtc.jpg │ │ │ ├── hitbtc.png │ │ │ ├── itbit.png │ │ │ ├── junbi.png │ │ │ ├── korbit.png │ │ │ ├── kraken.png │ │ │ ├── kucoin.png │ │ │ ├── lakebtclogo.png │ │ │ ├── liqui.png │ │ │ ├── livecoin.png │ │ │ ├── localbitcoins-logo.png │ │ │ ├── luno.png │ │ │ ├── mercadobitcoin.png │ │ │ ├── novatext04.png │ │ │ ├── okcoin.png │ │ │ ├── paymium.png │ │ │ ├── poloniex.jpg │ │ │ ├── poloniex.png │ │ │ ├── quadrigacx.png │ │ │ ├── quoine.png │ │ │ ├── therocktrading.png │ │ │ ├── tidex.png │ │ │ ├── unocoin.png │ │ │ ├── vaultoro.png │ │ │ ├── viabtc.png │ │ │ ├── waves.png │ │ │ ├── yacuna.png │ │ │ ├── yobit.png │ │ │ ├── yunbi.png │ │ │ └── zaif.png │ │ ├── mnemonic-key-color.svg │ │ ├── play-white.svg │ │ ├── play.svg │ │ ├── profile-photo-1.jpg │ │ ├── r-0.svg │ │ ├── r-100.svg │ │ ├── r-25.svg │ │ ├── r-50.svg │ │ ├── r-75.svg │ │ ├── reddit.svg │ │ ├── s-0.svg │ │ ├── s-100.svg │ │ ├── s-25.svg │ │ ├── s-50.svg │ │ ├── s-75.svg │ │ ├── spinningwheel-1.gif │ │ ├── spinningwheel.gif │ │ ├── stripes-2-crop-footer.jpg │ │ ├── stripes-2-crop.jpg │ │ ├── telegramm.svg │ │ ├── twitter.svg │ │ └── wallet-title-bg.png │ └── index.js ├── components │ ├── Deposits │ │ ├── Deposit │ │ │ ├── Deposit.jsx │ │ │ ├── Deposit.scss │ │ │ └── lang.js │ │ ├── DepositWarningWidget │ │ │ ├── DepositWarningWidget.jsx │ │ │ ├── DepositWarningWidget.scss │ │ │ └── lang.js │ │ └── DepositsList │ │ │ ├── DepositsList.jsx │ │ │ ├── DepositsList.scss │ │ │ └── lang.js │ ├── WidgetContainer │ │ ├── WidgetContainer.jsx │ │ └── WidgetContainer.scss │ ├── assetsManager │ │ ├── AddPlatformDialog │ │ │ ├── AddPlatformDialog.jsx │ │ │ ├── AddPlatformForm.jsx │ │ │ ├── AddPlatformForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── AddTokenDialog │ │ │ ├── AddTokenDialog.jsx │ │ │ ├── AddTokenForm.jsx │ │ │ ├── AddTokenForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── AssetManager │ │ │ ├── AssetManager.jsx │ │ │ ├── AssetManager.scss │ │ │ └── lang.js │ │ ├── AssetManagerDialog │ │ │ ├── AssetManagerDialog.jsx │ │ │ ├── AssetManagerForm.jsx │ │ │ ├── AssetManagerForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── BlacklistDialog │ │ │ ├── BlacklistDialog.jsx │ │ │ ├── BlacklistDialog.scss │ │ │ └── lang.js │ │ ├── BlacklistForm │ │ │ ├── BlacklistForm.jsx │ │ │ ├── BlacklistForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── BlockAssetDialog │ │ │ ├── BlockAssetDialog.jsx │ │ │ ├── BlockAssetDialog.scss │ │ │ └── lang.js │ │ ├── HistoryTable │ │ │ ├── HistoryTable.jsx │ │ │ ├── HistoryTable.scss │ │ │ └── lang.js │ │ ├── PlatformInfo │ │ │ ├── PlatformInfo.jsx │ │ │ ├── PlatformInfo.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── PlatformsList │ │ │ ├── PlatformsList.jsx │ │ │ ├── PlatformsList.scss │ │ │ └── lang.js │ │ ├── ReissueAssetForm │ │ │ ├── ReissueAssetForm.jsx │ │ │ ├── ReissueAssetForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── RevokeDialog │ │ │ ├── RevokeDialog.jsx │ │ │ ├── RevokeForm.jsx │ │ │ ├── RevokeForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── lang.js │ │ └── styles.js │ ├── common │ │ ├── AvatarSelect │ │ │ ├── AvatarSelect.js │ │ │ └── AvatarSelect.scss │ │ ├── ChronoBankLogo │ │ │ ├── ChronoBankLogo.js │ │ │ └── ChronoBankLogo.scss │ │ ├── DatePicker │ │ │ ├── index.js │ │ │ └── style.scss │ │ ├── DocumentsList │ │ │ ├── DocumentsList.jsx │ │ │ └── DocumentsList.scss │ │ ├── DoughnutChart │ │ │ ├── DoughnutChart.jsx │ │ │ └── DoughnutChart.scss │ │ ├── FileSelect │ │ │ ├── FileIcon.js │ │ │ ├── FileIcon.scss │ │ │ ├── FileItem.js │ │ │ ├── FileItem.scss │ │ │ ├── FileSelect.js │ │ │ └── FileSelect.scss │ │ ├── GasSlider │ │ │ ├── GasSlider.jsx │ │ │ ├── GasSlider.scss │ │ │ └── lang.js │ │ ├── HashedIcon │ │ │ ├── TokenIcon.js │ │ │ ├── UserIcon.js │ │ │ └── utils.js │ │ ├── IPFSImage │ │ │ ├── IPFSImage.jsx │ │ │ └── IPFSImage.scss │ │ ├── ModalStack │ │ │ ├── ModalSelector.jsx │ │ │ ├── ModalStack.jsx │ │ │ ├── ModalStack.scss │ │ │ └── ModalStack.spec.js │ │ ├── Moment │ │ │ └── index.js │ │ ├── Points │ │ │ ├── Points.jsx │ │ │ └── Points.scss │ │ ├── Preloader │ │ │ ├── Preloader.js │ │ │ ├── Preloader.scss │ │ │ └── WithLoader.js │ │ ├── ProfileImage │ │ │ ├── ProfileImage.js │ │ │ └── ProfileImage.scss │ │ ├── SideStack │ │ │ ├── SideSelector.js │ │ │ ├── SideStack.jsx │ │ │ └── SideStack.scss │ │ ├── Slider │ │ │ ├── index.js │ │ │ └── style.scss │ │ ├── Snackbar │ │ │ ├── Snackbar.jsx │ │ │ └── Snackbar.scss │ │ ├── TheCookies │ │ │ ├── TheCookies.jsx │ │ │ ├── TheCookies.scss │ │ │ └── lang.js │ │ ├── TimePicker │ │ │ ├── index.js │ │ │ └── style.scss │ │ ├── Timer │ │ │ ├── Timer.js │ │ │ └── lang.js │ │ ├── TokenPrice │ │ │ └── TokenPrice.jsx │ │ ├── TokenValue │ │ │ ├── TokenValue.js │ │ │ └── TokenValue.scss │ │ ├── TokenValueSimple │ │ │ └── TokenValueSimple.jsx │ │ ├── TopButtons │ │ │ ├── TopButtons.jsx │ │ │ ├── TopButtons.scss │ │ │ └── buttons.js │ │ ├── TxConfirmations │ │ │ ├── TxConfirmations.jsx │ │ │ ├── TxConfirmations.scss │ │ │ └── lang.js │ │ ├── Value │ │ │ └── Value.jsx │ │ └── ui │ │ │ └── Button │ │ │ ├── Button.jsx │ │ │ └── Button.scss │ ├── constants.js │ ├── dashboard │ │ ├── ColoredSection │ │ │ ├── ColoredSection.jsx │ │ │ └── ColoredSection.scss │ │ ├── DepositTokens │ │ │ ├── DepositTokens.jsx │ │ │ ├── DepositTokensForm.jsx │ │ │ ├── DepositTokensForm.scss │ │ │ ├── DepositTokensModal.jsx │ │ │ └── validate.js │ │ ├── IconSection │ │ │ ├── IconSection.jsx │ │ │ └── IconSection.scss │ │ ├── MicroIcon │ │ │ ├── CopyIcon.jsx │ │ │ ├── MicroIcon.scss │ │ │ ├── PKIcon.jsx │ │ │ └── QRIcon.jsx │ │ ├── ProgressSection │ │ │ ├── ProgressSection.jsx │ │ │ └── ProgressSection.scss │ │ ├── ReceiveTokenModal │ │ │ ├── ReceiveTokenModal.jsx │ │ │ ├── ReceiveTokenModal.scss │ │ │ └── lang.js │ │ ├── Rewards │ │ │ ├── Rewards.jsx │ │ │ ├── Rewards.scss │ │ │ └── lang.js │ │ ├── RewardsPeriod │ │ │ ├── RewardsPeriod.jsx │ │ │ └── RewardsPeriod.scss │ │ ├── SendTokens │ │ │ ├── AbstractBitcoin │ │ │ │ ├── Form.jsx │ │ │ │ └── FormContainer.jsx │ │ │ ├── AbstractEthereum │ │ │ │ ├── Form.jsx │ │ │ │ └── FormContainer.jsx │ │ │ ├── Bitcoin │ │ │ │ ├── Form.jsx │ │ │ │ └── FormContainer.jsx │ │ │ ├── Dash │ │ │ │ ├── Form.jsx │ │ │ │ └── FormContainer.jsx │ │ │ ├── Eos │ │ │ │ ├── Form.jsx │ │ │ │ ├── FormContainer.jsx │ │ │ │ └── validate.js │ │ │ ├── Ethereum │ │ │ │ └── FormContainer.jsx │ │ │ ├── LaborHour │ │ │ │ └── FormContainer.jsx │ │ │ ├── Nem │ │ │ │ ├── Form.jsx │ │ │ │ ├── FormContainer.jsx │ │ │ │ └── normalize.js │ │ │ ├── SendTokens.jsx │ │ │ ├── Waves │ │ │ │ ├── Form.jsx │ │ │ │ └── FormContainer.jsx │ │ │ ├── form.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── SplitSection │ │ │ ├── SplitSection.jsx │ │ │ └── SplitSection.scss │ │ └── TransactionsTable │ │ │ ├── TransactionsTable.jsx │ │ │ ├── TransactionsTable.scss │ │ │ └── lang.js │ ├── dialogs │ │ ├── ActionRequestDeviceDialog │ │ │ ├── ActionRequestDeviceDialog.js │ │ │ ├── ActionRequestDeviceDialog.scss │ │ │ └── lang.js │ │ ├── AddTokenDialog │ │ │ ├── AddTokenDialog.jsx │ │ │ ├── AddTokenDialog.scss │ │ │ └── validate.js │ │ ├── ConfirmTxDialog │ │ │ ├── ConfirmTxDialog.jsx │ │ │ ├── ConfirmTxDialog.scss │ │ │ └── IPFSHash │ │ │ │ ├── IPFSHash.jsx │ │ │ │ └── IPFSHash.scss │ │ ├── CopyDialog │ │ │ ├── CopyDialog.jsx │ │ │ └── CopyDialog.scss │ │ ├── ModalDialog.jsx │ │ ├── ModalDialog.scss │ │ ├── ModalDialogBase │ │ │ ├── ModalDialogBase.js │ │ │ ├── ModalDialogBase.scss │ │ │ └── _ModalDialogBaseExtend.scss │ │ ├── PublishPollDialog │ │ │ ├── PublishPollDialog.jsx │ │ │ ├── PublishPollDialog.scss │ │ │ └── lang.js │ │ ├── TwoFA │ │ │ ├── TwoFADialog.jsx │ │ │ ├── TwoFAForm.jsx │ │ │ ├── TwoFAForm.scss │ │ │ └── lang.js │ │ ├── UpdateProvideDialog │ │ │ ├── UpdateProfileDialog.jsx │ │ │ ├── UpdateProfileDialog.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── UserActiveDialog │ │ │ ├── UserActiveDialog.jsx │ │ │ ├── UserActiveDialog.scss │ │ │ └── lang.js │ │ └── wallet │ │ │ ├── EditOwnersDialog │ │ │ └── EditOwnersDialog.js │ │ │ └── EditSignaturesDialog │ │ │ ├── EditSignaturesDialog.js │ │ │ ├── EditSignaturesForm.js │ │ │ ├── EditSignaturesForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ ├── forms │ │ └── EditManagersBaseForm │ │ │ ├── EditManagersBaseForm.js │ │ │ ├── EditManagersBaseForm.scss │ │ │ ├── ManagerItem.js │ │ │ └── validate.js │ ├── icons │ │ └── index.js │ ├── lang.js │ ├── login │ │ ├── AccountSelectorPage │ │ │ └── AccountSelectorPage.js │ │ ├── CreateAccountPage │ │ │ └── CreateAccountPage.js │ │ ├── LedgerLoginPage │ │ │ └── LedgerLoginPage.js │ │ ├── MetamaskLoginPage │ │ │ └── MetamaskLoginPage.js │ │ ├── MnemonicImportPage │ │ │ └── MnemonicImportPage.js │ │ ├── PrivateKeyImportPage │ │ │ └── PrivateKeyImportPage.js │ │ ├── RecoverAccountPage │ │ │ └── RecoverAccountPage.js │ │ ├── TrezorLoginPage │ │ │ └── TrezorLoginPage.js │ │ └── WalletImportPage │ │ │ └── WalletImportPage.js │ ├── micros │ │ ├── BalanceSubscription │ │ │ └── BalanceSubscription.js │ │ └── index.js │ ├── pages │ │ └── DashboardPage │ │ │ └── Breadcrumbs.js │ ├── voting │ │ ├── ActivatePollTopButton │ │ │ ├── ActivatePollTopButton.jsx │ │ │ └── ActivatePollTopButton.scss │ │ ├── EndPollTopButton │ │ │ ├── EndPollTopButton.jsx │ │ │ └── EndPollTopButton.scss │ │ ├── Poll │ │ │ ├── Poll.jsx │ │ │ ├── Poll.scss │ │ │ ├── PollActionMenu.jsx │ │ │ ├── PollActionMenu.scss │ │ │ └── lang.js │ │ ├── PollEditForm │ │ │ ├── PollEditForm.jsx │ │ │ ├── PollEditForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── PollStatus │ │ │ ├── PollStatus.jsx │ │ │ ├── PollStatus.scss │ │ │ └── lang.js │ │ ├── RemovePollTopButton │ │ │ ├── RemovePollTopButton.jsx │ │ │ └── RemovePollTopButton.scss │ │ └── VotingWarningWidgets │ │ │ ├── EmptyWarningWidget.jsx │ │ │ ├── PollDepositWarningWidget.jsx │ │ │ ├── lang.js │ │ │ └── styles.scss │ └── wallet │ │ ├── AddWalletWidget │ │ ├── AddCustomTokenTopButton │ │ │ ├── AddCustomTokenTopButton.jsx │ │ │ └── AddCustomTokenTopButton.scss │ │ ├── AddWalletWidget.jsx │ │ ├── AddWalletWidget.scss │ │ ├── CustomWalletForm │ │ │ ├── CusotmWalletForm.scss │ │ │ ├── CustomWalletForm.jsx │ │ │ ├── TokensList.jsx │ │ │ ├── TokensList.scss │ │ │ └── lang.js │ │ ├── MultisigWalletForm │ │ │ ├── MultisigWalletForm.jsx │ │ │ ├── MultisigWalletForm.scss │ │ │ ├── lang.js │ │ │ └── validate.js │ │ ├── SelectEthWallet │ │ │ ├── SelectEthWallet.jsx │ │ │ └── SelectEthWallet.scss │ │ ├── SelectWalletType │ │ │ ├── SelectWalletType.jsx │ │ │ └── SelectWalletType.scss │ │ ├── StandardWalletForm │ │ │ ├── StandardWalletForm.jsx │ │ │ ├── StandardWalletForm.scss │ │ │ └── lang.js │ │ ├── TimeLockedWalletForm │ │ │ ├── TimeLockedWalletForm.jsx │ │ │ ├── TimeLockedWalletForm.scss │ │ │ └── lang.js │ │ ├── WalletSettingsForm │ │ │ ├── WalletSettingsForm.jsx │ │ │ ├── WalletSettingsForm.scss │ │ │ └── lang.js │ │ └── lang.js │ │ ├── BlockchainChoiceModal │ │ └── BlockchainChoiceModalContainer.jsx │ │ ├── OwnersList │ │ ├── OwnerItem.jsx │ │ ├── OwnerItem.scss │ │ ├── OwnersList.jsx │ │ ├── OwnersList.scss │ │ ├── lang.js │ │ └── validate.js │ │ ├── OwnersListWidget │ │ ├── OwnersListWidget.jsx │ │ ├── OwnersListWidget.scss │ │ └── lang.js │ │ ├── PendingTxWidget │ │ ├── PendingTxWidget.jsx │ │ ├── PendingTxWidget.scss │ │ └── lang.js │ │ ├── SignaturesList │ │ ├── SignaturesList.jsx │ │ ├── SignaturesList.scss │ │ └── lang.js │ │ ├── SubIconForWallet │ │ ├── SubIconForWallet.jsx │ │ └── SubIconForWallet.scss │ │ ├── TokensListWidget │ │ ├── TokensListWidget.jsx │ │ ├── TokensListWidget.scss │ │ └── lang.js │ │ ├── TransactionsListWidget │ │ ├── TransactionsListWidget.jsx │ │ ├── TransactionsListWidget.scss │ │ └── lang.js │ │ ├── TwoFAWarningWidget │ │ ├── TwoFAWarningWidget.jsx │ │ ├── TwoFAWarningWidget.scss │ │ └── lang.js │ │ ├── TwoFaConfirmModal │ │ ├── TwoFaConfirmModal.jsx │ │ ├── TwoFaConfirmModal.scss │ │ ├── lang.js │ │ └── validate.js │ │ ├── TwoFaEnableForm │ │ ├── TwoFaEnableForm.jsx │ │ ├── TwoFaEnableForm.scss │ │ ├── lang.js │ │ └── validate.js │ │ ├── TwoFaWalletForm │ │ ├── TwoFaWalletForm.jsx │ │ ├── TwoFaWalletForm.scss │ │ └── lang.js │ │ ├── WalletName │ │ ├── WalletName.jsx │ │ └── lang.js │ │ ├── WalletToken │ │ ├── WalletToken.jsx │ │ └── WalletToken.scss │ │ ├── WalletWidget │ │ ├── WalletMainCoinBalance.jsx │ │ ├── WalletTokensList.jsx │ │ ├── WalletWidget.jsx │ │ ├── WalletWidget.scss │ │ └── lang.js │ │ ├── WalletWidgetDetail │ │ ├── WalletWidgetDetail.jsx │ │ ├── WalletWidgetDetail.scss │ │ └── lang.js │ │ └── WalletWidgetMini │ │ ├── WalletTokensCount.jsx │ │ ├── WalletWidgetMini.jsx │ │ ├── WalletWidgetMini.scss │ │ ├── WalletWidgetMiniUsdAmount.jsx │ │ └── lang.js ├── i18n │ ├── en-notices.js │ ├── en-tx-bitcoin.js │ ├── en-tx-eos.js │ ├── en-tx-general.js │ ├── en-tx-nem.js │ ├── en-tx-waves.js │ ├── en.js │ └── index.js ├── index.js ├── layouts │ ├── Footer │ │ ├── Footer.js │ │ ├── Footer.scss │ │ ├── lang.js │ │ ├── styles.js │ │ └── validate.js │ ├── Markup.jsx │ ├── Markup.scss │ ├── Splash │ │ ├── Splash.js │ │ ├── Splash.scss │ │ ├── lang.js │ │ └── styles.js │ ├── lang.js │ └── partials │ │ ├── AddWalletContent │ │ ├── AddWalletContent.jsx │ │ ├── AddWalletContent.scss │ │ └── lang.js │ │ ├── AssetsContent │ │ ├── AssetsContent.jsx │ │ ├── AssetsContent.scss │ │ └── lang.js │ │ ├── BrandLogo │ │ ├── BrandLogo.jsx │ │ └── BrandLogo.scss │ │ ├── DepositContent │ │ ├── DepositContent.jsx │ │ ├── DepositContent.scss │ │ └── lang.js │ │ ├── DepositsContent │ │ ├── DepositsContent.jsx │ │ ├── DepositsContent.scss │ │ └── lang.js │ │ ├── DrawerMainMenu │ │ ├── DrawerMainMenu.jsx │ │ ├── DrawerMainMenu.scss │ │ ├── MenuAssetsManagerMoreInfo │ │ │ ├── MenuAssetsManagerMoreInfo.jsx │ │ │ ├── MenuAssetsManagerMoreInfo.scss │ │ │ └── lang.js │ │ ├── MenuTokenMoreInfo │ │ │ ├── MenuTokenMoreInfo.jsx │ │ │ ├── MenuTokenMoreInfo.scss │ │ │ ├── lang.js │ │ │ └── selectors.js │ │ ├── MenuTokensList │ │ │ ├── MenuTokensList.jsx │ │ │ ├── MenuTokensList.scss │ │ │ └── lang.js │ │ └── lang.js │ │ ├── DrawerPartial │ │ ├── DrawerPartial.jsx │ │ └── DrawerPartial.scss │ │ ├── FooterPartial │ │ ├── FooterPartial.jsx │ │ ├── FooterPartial.scss │ │ └── lang.js │ │ ├── HeaderPartial │ │ ├── HeaderPartial.jsx │ │ └── HeaderPartial.scss │ │ ├── LocaleDropDown │ │ ├── LocaleDropDown.jsx │ │ ├── LocaleDropDown.scss │ │ └── styles.js │ │ ├── NewPollContent │ │ ├── NewPollContent.jsx │ │ ├── NewPollContent.scss │ │ └── lang.js │ │ ├── NotificationContent │ │ ├── NotificationContent.jsx │ │ ├── NotificationContent.scss │ │ └── lang.js │ │ ├── PersistWrapper │ │ ├── PersistWrapper.js │ │ └── PersistWrapper.scss │ │ ├── PollContent │ │ ├── PollContent.jsx │ │ ├── PollContent.scss │ │ └── lang.js │ │ ├── ProfileContent │ │ ├── ProfileContent.jsx │ │ ├── ProfileContent.scss │ │ └── lang.js │ │ ├── RewardsContent │ │ ├── RewardsContent.jsx │ │ ├── RewardsContent.scss │ │ └── lang.js │ │ ├── SidePanel │ │ ├── SidePanel.jsx │ │ └── SidePanel.scss │ │ ├── TwoFAContent │ │ ├── TwoFAContent.jsx │ │ ├── TwoFAContent.scss │ │ └── lang.js │ │ ├── VoteHistoryContent │ │ ├── VoteHistoryContent.jsx │ │ ├── VoteHistoryContent.scss │ │ └── lang.js │ │ ├── VotingContent │ │ ├── VotingContent.jsx │ │ ├── VotingContent.scss │ │ └── lang.js │ │ ├── WalletContent │ │ ├── WalletContent.jsx │ │ ├── WalletContent.scss │ │ └── lang.js │ │ ├── WalletsContent │ │ ├── WalletsContent.jsx │ │ ├── WalletsContent.scss │ │ └── lang.js │ │ ├── lang.js │ │ └── styles.js ├── menu.js ├── pages │ └── lib │ │ ├── AddWalletPage.jsx │ │ ├── AddWalletPage.scss │ │ ├── AssetsPage.jsx │ │ ├── AssetsPage.scss │ │ ├── DepositPage.jsx │ │ ├── DepositPage.scss │ │ ├── DepositsPage.jsx │ │ ├── DepositsPage.scss │ │ ├── NewPollPage.jsx │ │ ├── PollPage.jsx │ │ ├── RewardsPage.jsx │ │ ├── RewardsPage.scss │ │ ├── TwoFAPage.jsx │ │ ├── TwoFAPage.scss │ │ ├── VoteHistoryPage.jsx │ │ ├── VotingPage.jsx │ │ ├── VotingPage.scss │ │ ├── WalletPage.jsx │ │ ├── WalletPage.scss │ │ ├── WalletsPage.jsx │ │ ├── WalletsPage.scss │ │ └── index.js ├── redux │ ├── browserHistoryStore.js │ ├── configureStore.js │ ├── drawer │ │ ├── actions.js │ │ ├── constants.js │ │ └── reducer.js │ ├── ducks.js │ ├── i18n │ │ ├── actions.js │ │ ├── constants.js │ │ └── reducer.js │ ├── routing.js │ ├── sides │ │ ├── actions.js │ │ ├── actions.spec.js │ │ ├── constants.js │ │ ├── reducer.js │ │ ├── reducer.spec.js │ │ └── selectors.js │ └── ui │ │ ├── actions.js │ │ ├── constants.js │ │ ├── navigation.js │ │ ├── reducer.js │ │ ├── selectors.js │ │ └── thunks.js ├── router.js ├── styles.js ├── styles │ ├── partials │ │ ├── _mixins.scss │ │ └── _variables.scss │ └── themes │ │ ├── default.js │ │ ├── default.scss │ │ ├── fonts.scss │ │ ├── inversed.js │ │ └── variables.js ├── themeDefault.js ├── utils │ ├── ErrorList.js │ ├── LocalStorage.js │ ├── LocalStorage.spec.js │ ├── clipboard.js │ └── common.js └── ~styles ├── tests └── e2e │ ├── sendFunds.test.js │ ├── signIn.test.js │ ├── signOut.test.js │ ├── signUp.test.js │ └── utils │ ├── index.js │ ├── sendFunds.js │ └── signInOutUp.js └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = space 3 | end_of_line = lf 4 | indent_size = 2 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | 8 | [*.md] 9 | max_line_length = 0 10 | trim_trailing_whitespace = false 11 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/** 2 | dist/** 3 | tests/** 4 | config/** 5 | mocks/** 6 | nodes/** 7 | scripts/** 8 | **/node_modules/** 9 | .tmp/** 10 | *.json 11 | *.md 12 | *.less 13 | *.scss 14 | *.svg 15 | git 16 | **/*.spec.js 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | !/build/* 2 | .tern-port 3 | .DS_Store 4 | node_modules/ 5 | ChronoMint/ 6 | coverage/ 7 | .idea/ 8 | *.log 9 | *.bac 10 | .vscode 11 | 12 | build/ 13 | dist/ 14 | report/ 15 | .truffle-solidity-loader 16 | package-lock.json 17 | build.zip 18 | cert.pem 19 | key.pem 20 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Issue 2 | 3 | What the issue is, in broad strokes. 4 | 5 | ## Steps to Reproduce 6 | 7 | Please provide the shortest amount of steps to reproduce your issue. 8 | 9 | ## Expected Behavior 10 | 11 | What you expected to happen. 12 | 13 | ## Actual Results 14 | 15 | What actually happened. Please give examples and support it with screenshots, copied output or error messages. 16 | 17 | ## Environment 18 | 19 | * Operating System: 20 | * Truffle version: 21 | * Testrpc version: 22 | * Ethereum client: 23 | * node version: 24 | * npm version: 25 | -------------------------------------------------------------------------------- /config/abi-loader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | module.exports = function (source) { 7 | if (this.cacheable) { 8 | this.cacheable() 9 | } 10 | 11 | let value = typeof source === "string" 12 | ? JSON.parse(source) 13 | : source 14 | 15 | const { contractName, abi, networks } = value 16 | 17 | value = JSON.stringify({ contractName, abi, networks }) 18 | .replace(/\u2028/g, '\\u2028') 19 | .replace(/\u2029/g, '\\u2029') 20 | 21 | return value 22 | } 23 | -------------------------------------------------------------------------------- /config/jest/config.base.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | module.exports = { 7 | rootDir: '../..', 8 | testURL: 'http://localhost', 9 | setupFiles: [ 10 | '/config/jest/setup.js' 11 | ], 12 | transform: { 13 | '^.+\\.(js|jsx)?$': '/config/jest/transform.js' 14 | }, 15 | moduleDirectories: [ 16 | 'node_modules', 17 | 'src' 18 | ] 19 | }; 20 | -------------------------------------------------------------------------------- /config/jest/config.e2e.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | const config = require('./config.base'); 7 | 8 | config.globals = require('./e2e-global-vars'); 9 | config.verbose = true; 10 | config.setupTestFrameworkScriptFile = '/config/jest/setup-e2e.js'; 11 | 12 | config.testRegex = '.*\\.test\\.js$'; 13 | config.testPathIgnorePatterns = [ 14 | 'config/babel.test.js' 15 | ]; 16 | 17 | module.exports = config; 18 | -------------------------------------------------------------------------------- /config/jest/e2e-global-vars.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | module.exports = { 7 | TimeoutLength: 240000, 8 | windowSize: { 9 | width: 1200, 10 | height: 900 11 | } 12 | }; 13 | -------------------------------------------------------------------------------- /config/jest/setup-e2e.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import 'expect-puppeteer'; 7 | const settings = require('./e2e-global-vars'); 8 | 9 | jest.setTimeout(settings.TimeoutLength); 10 | -------------------------------------------------------------------------------- /config/jest/setup.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import 'babel-polyfill'; 7 | -------------------------------------------------------------------------------- /config/postcss.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | module.exports = { 7 | } 8 | -------------------------------------------------------------------------------- /dist/i18nJson.js: -------------------------------------------------------------------------------- 1 | var i18nJson = {} -------------------------------------------------------------------------------- /favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/favicon.png -------------------------------------------------------------------------------- /i18nJson.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // eslint-disable-next-line 7 | var i18nJson = {} 8 | -------------------------------------------------------------------------------- /ipscend.json: -------------------------------------------------------------------------------- 1 | { 2 | "versions": [ 3 | { 4 | "hash": "QmaJUTXy22JyWnjoy3d34j89ifzqdwKZC2QziKWMja7GsS", 5 | "timestamp": "2017-03-10T19:18:55.541Z" 6 | }, 7 | { 8 | "hash": "Qmdyua3KyAyJLH4p9u17WxW59sKhMSJPTCEDgMokqdKaCT", 9 | "timestamp": "2017-04-11T11:12:32.062Z" 10 | } 11 | ], 12 | "path": "build" 13 | } -------------------------------------------------------------------------------- /jest-puppeteer.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | module.exports = { 7 | server: { 8 | debug: true, 9 | launchTimeout: 240000, 10 | port: 3000, 11 | usedPortAction: 'kill', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /mocks/README.md: -------------------------------------------------------------------------------- 1 | We need this files to mock style and file loaders in our UI tests 2 | -------------------------------------------------------------------------------- /mocks/fileMock.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | -------------------------------------------------------------------------------- /mocks/styleMock.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | -------------------------------------------------------------------------------- /nodes/mac/geth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/nodes/mac/geth -------------------------------------------------------------------------------- /packages/core/dao/EthereumDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { ethereumProvider } from '@chronobank/login/network/EthereumProvider' 7 | 8 | import { AbstractEthereumDAO } from './AbstactEthereumDAO' 9 | import { BLOCKCHAIN_ETHEREUM, ETH } from './constants' 10 | 11 | export class EthereumDAO extends AbstractEthereumDAO { 12 | constructor () { 13 | super(ETH, BLOCKCHAIN_ETHEREUM, ethereumProvider, ...arguments) 14 | } 15 | } 16 | 17 | export default new EthereumDAO() 18 | -------------------------------------------------------------------------------- /packages/core/dao/LaborHourDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { laborHourProvider } from '@chronobank/login/network/LaborHourProvider' 7 | 8 | import { AbstractEthereumDAO } from './AbstactEthereumDAO' 9 | import { BLOCKCHAIN_LABOR_HOUR, LHT } from './constants' 10 | 11 | export class LaborHourDAO extends AbstractEthereumDAO { 12 | constructor () { 13 | super(LHT, BLOCKCHAIN_LABOR_HOUR, laborHourProvider, ...arguments) 14 | } 15 | } 16 | 17 | export default new LaborHourDAO() 18 | -------------------------------------------------------------------------------- /packages/core/dao/constants/AssetDonatorDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // eslint-disable-next-line import/prefer-default-export 7 | export const TX_REQUIRE_TIME = 'sendTime' 8 | -------------------------------------------------------------------------------- /packages/core/dao/constants/AssetHolderDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TX_DEPOSIT = 'deposit' 7 | export const TX_LOCK = 'lock' 8 | export const TX_WITHDRAW_SHARES = 'withdrawShares' 9 | export const ASSET_DEPOSIT_WITHDRAW = 'withdraw' 10 | -------------------------------------------------------------------------------- /packages/core/dao/constants/AssetsManagerDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TX_ASSET_CREATED = 'AssetCreated' 7 | export const TX_CREATE_ASSET_WITH_FEE = 'createAssetWithFee' 8 | export const TX_CREATE_ASSET_WITHOUT_FEE = 'createAssetWithoutFee' 9 | -------------------------------------------------------------------------------- /packages/core/dao/constants/BitcoinDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // eslint-disable-next-line import/prefer-default-export 7 | export const FETCH_NEW_BALANCE = 'TokenFetchNewBalance' 8 | -------------------------------------------------------------------------------- /packages/core/dao/constants/ChronoBankAssetDAO.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const CALL_BLACKLIST = 'blacklist' 7 | export const CALL_PAUSED = 'paused' 8 | export const TX_PAUSE = 'pause' 9 | export const TX_PAUSED = 'Paused' 10 | export const TX_RESTRICT = 'restrict' 11 | export const TX_RESTRICTED = 'Restricted' 12 | export const TX_UNPAUSE = 'unpause' 13 | export const TX_UNPAUSED = 'Unpaused' 14 | export const TX_UNRESTRICT = 'unrestrict' 15 | export const TX_UNRESTRICTED = 'Unrestricted' 16 | -------------------------------------------------------------------------------- /packages/core/dao/constants/ERC20DAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TX_APPROVE = 'approve' 7 | export const TX_TRANSFER = 'transfer' 8 | -------------------------------------------------------------------------------- /packages/core/dao/constants/ERC20ManagerDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const EVENT_ERC20_TOKENS_COUNT = 'erc20/count' 7 | export const EVENT_NEW_ERC20_TOKEN = 'erc20/newToken' 8 | export const TX_ADD_TOKEN = 'addToken' 9 | export const TX_MODIFY_TOKEN = 'setToken' 10 | export const TX_REMOVE_TOKEN = 'removeTokenByAddress' 11 | -------------------------------------------------------------------------------- /packages/core/dao/constants/EthereumDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const FETCH_NEW_BALANCE = 'TokenFetchNewBalance' 7 | export const TX_TRANSFER = 'transfer' 8 | -------------------------------------------------------------------------------- /packages/core/dao/constants/NemDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const NEM_DECIMALS = 6 7 | export const NEM_XEM_NAME = 'XEM' 8 | export const NEM_XEM_SYMBOL = 'XEM' 9 | -------------------------------------------------------------------------------- /packages/core/dao/constants/PendingManagerDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // to distinguish equal operations between completed and pending lists 7 | export const PENDING_ID_PREFIX = 'P-' 8 | 9 | export const TX_CONFIRM = 'confirm' 10 | export const TX_REVOKE = 'revoke' 11 | export const OPERATIONS_PER_PAGE = 10 12 | -------------------------------------------------------------------------------- /packages/core/dao/constants/PlatformTokenExtensionGatewayManagerEmitterDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TX_ASSET_CREATED = 'AssetCreated' 7 | -------------------------------------------------------------------------------- /packages/core/dao/constants/PlatformsManagerDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TX_ATTACH_PLATFORM = 'attachPlatform' 7 | export const TX_CREATE_PLATFORM = 'createPlatform' 8 | export const TX_DETACH_PLATFORM = 'detachPlatform' 9 | export const EVENT_PLATFORM_ATTACHED = 'PlatformAttached' 10 | export const EVENT_PLATFORM_DETACHED = 'PlatformDetached' 11 | export const EVENT_PLATFORM_REQUESTED = 'PlatformRequested' 12 | export const TX_REISSUE_ASSET = 'reissueAsset' 13 | -------------------------------------------------------------------------------- /packages/core/dao/constants/PollEmitterDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const EVENT_POLL_ACTIVATED = 'PollActivated' 7 | export const EVENT_POLL_CREATED = 'PollCreated' 8 | export const EVENT_POLL_ENDED = 'PollEnded' 9 | export const EVENT_POLL_REMOVED = 'PollRemoved' 10 | export const EVENT_POLL_UPDATED = 'PollUpdated' 11 | export const EVENT_POLL_VOTED = 'PollVoted' 12 | -------------------------------------------------------------------------------- /packages/core/dao/constants/PollInterfaceDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TX_ACTIVATE_POLL = 'activatePoll' 7 | export const TX_END_POLL = 'endPoll' 8 | export const TX_REMOVE_POLL = 'killPoll' 9 | export const TX_VOTE = 'vote' 10 | -------------------------------------------------------------------------------- /packages/core/dao/constants/RewardsDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const EE_REWARDS_ERROR = 'rewards/error' 7 | export const EE_REWARDS_PERIOD = 'rewards/newPeriod' 8 | export const EE_REWARDS_PERIOD_CLOSED = 'rewards/periodClosed' 9 | export const TX_CLOSE_PERIOD = 'closePeriod' 10 | export const TX_WITHDRAW_REWARD = 'withdrawReward' 11 | -------------------------------------------------------------------------------- /packages/core/dao/constants/UserManagerDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TX_ADD_CBE = 'addCBE' 7 | export const TX_REVOKE_CBE = 'revokeCBE' 8 | export const TX_SET_MEMBER_HASH = 'setMemberHash' 9 | export const TX_SET_OWN_HASH = 'setOwnHash' 10 | export const TX_SET_REQUIRED_SIGNS = 'setRequired' 11 | -------------------------------------------------------------------------------- /packages/core/dao/constants/VotingManagerDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // eslint-disable-next-line import/prefer-default-export 7 | export const TX_CREATE_POLL = 'createPoll' 8 | -------------------------------------------------------------------------------- /packages/core/dao/constants/WalletsManagerDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const EE_MS_WALLET_ADDED = 'MSWalletAdded' 7 | export const EE_MS_WALLET_REMOVED = 'MSWalletRemoved' 8 | export const EE_MS_WALLETS_COUNT = 'msWalletCount' 9 | -------------------------------------------------------------------------------- /packages/core/dao/constants/WavesDAO.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const WAVES_WAVES_SYMBOL = 'WAVES' 7 | export const WAVES_WAVES_NAME = 'WAVES' 8 | export const WAVES_DECIMALS = 8 9 | -------------------------------------------------------------------------------- /packages/core/describers/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const EVENT_TYPE_TRANSACTION = 'transaction' 7 | export const EVENT_TYPE_EVENT = 'event' 8 | 9 | export const EVENT_TYPE = { 10 | event: { 11 | title: EVENT_TYPE_EVENT, 12 | }, 13 | transaction: { 14 | title: EVENT_TYPE_TRANSACTION, 15 | }, 16 | } 17 | 18 | // works only in rinkeby, default amount of TIME that could be required for test from contract 19 | export const REQUIRED_TIME_AMOUNT = 1000000000 20 | -------------------------------------------------------------------------------- /packages/core/describers/events/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import * as asset from './lib/assetEventDescribers' 7 | 8 | export * from './EventDescriber' 9 | 10 | export const EVENT_DESCRIBERS = [ 11 | ...Object.values(asset), 12 | ] 13 | 14 | export const EVENT_DESCRIBERS_BY_TOPIC = EVENT_DESCRIBERS.reduce( 15 | (target, describer) => { 16 | const array = target[describer.topic] = target[describer.topic] || [] 17 | array.push(describer) 18 | return target 19 | }, 20 | {}, 21 | ) 22 | -------------------------------------------------------------------------------- /packages/core/describers/topics.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import * as eventDescribers from './events/lib/assetEventDescribers' 7 | 8 | export const ASSET_TOPICS = Object.entries(eventDescribers).reduce((describers, [, describer]) => { 9 | describers.push(describer.topic) 10 | return describers 11 | }, []) 12 | -------------------------------------------------------------------------------- /packages/core/models/AbstractJsModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PropTypes from 'prop-types' 7 | 8 | export default class AbstractJsModel { 9 | constructor (props, schema) { 10 | PropTypes.checkPropTypes(schema, props, 'prop', '' + this.class) 11 | Object.assign(this, props) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/models/AbstractModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PropTypes from 'prop-types' 7 | 8 | export default class AbstractModel { 9 | constructor (props, schema) { 10 | PropTypes.checkPropTypes() 11 | PropTypes.checkPropTypes(schema, props, 'prop', '' + this.class) 12 | Object.assign(this, props) 13 | } 14 | 15 | transform () { 16 | return { ...this } 17 | } 18 | 19 | mutate (values: Object) { 20 | return new this.constructor({ ...this, ...values }) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/core/models/FileModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ModelBase from './ModelBase' 7 | 8 | export default class FileModel extends ModelBase { 9 | static DEFAULTS = { 10 | name: null, 11 | size: 0, 12 | type: null, 13 | content: null, 14 | } 15 | 16 | static TYPES = { 17 | JSON: 'application/json', 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/core/models/HolderModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PropTypes from 'prop-types' 7 | import AbstractModel from './AbstractModel' 8 | 9 | const schemaFactory = () => ({ 10 | value: PropTypes.any, 11 | }) 12 | 13 | export default class HolderModel extends AbstractModel { 14 | constructor (props) { 15 | super(props, schemaFactory()) 16 | Object.assign(this, props) 17 | Object.freeze(this) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/core/models/LogInModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ModelBase from './ModelBase' 7 | 8 | export default class LogInModel extends ModelBase { 9 | static DEFAULTS = { 10 | address: null, 11 | password: null, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/models/ModelBase.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default class ModelBase { 7 | static DEFAULTS = {} 8 | 9 | constructor (data = {}) { 10 | this.parse(data) 11 | Object.freeze(this) 12 | } 13 | 14 | parse (origData) { 15 | const defaults = this.constructor.DEFAULTS || ModelBase.DEFAULTS 16 | const data = Object.assign({}, defaults, origData) 17 | 18 | for (const k in data) { 19 | if (data.hasOwnProperty(k) && defaults[k] !== undefined) { 20 | this[ k ] = data[ k ] 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/core/models/ProfileModel.spec.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ProfileModel from './ProfileModel' 7 | 8 | describe('user model', () => { 9 | it('should create model', () => { 10 | const model = new ProfileModel({ 11 | name: 'John', 12 | email: 'john@chronobank.io', 13 | company: 'ChronoBank', 14 | }) 15 | 16 | expect(model.name()).toEqual('John') 17 | expect(model.email()).toEqual('john@chronobank.io') 18 | expect(model.company()).toEqual('ChronoBank') 19 | }) 20 | }) 21 | -------------------------------------------------------------------------------- /packages/core/models/SignInModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ModelBase from './ModelBase' 7 | 8 | export default class SignInModel extends ModelBase { 9 | static DEFAULTS = { 10 | method: null, 11 | address: null, 12 | isHD: false, 13 | isHardware: false, 14 | key: '', 15 | } 16 | 17 | static METHODS = { 18 | PRIVATE_KEY: 'privateKey', 19 | MNEMONIC: 'mnemonic', 20 | WALLET: 'wallet', 21 | LEDGER: 'leger', 22 | TREZOR: 'trezor', 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/core/models/TransferError.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default class TransferError extends Error { 7 | constructor (message, code) { 8 | super(message) 9 | this.code = code 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/models/TxError.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default class TxError extends Error { 7 | constructor (message, code, codeValue = null) { 8 | super(message) 9 | this.code = code 10 | this.codeValue = codeValue 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/core/models/assetHolder/AssetsCollection.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import AssetModel from './AssetModel' 7 | import { abstractFetchingCollection } from '../AbstractFetchingCollection' 8 | 9 | export default class AssetsCollection extends abstractFetchingCollection({ 10 | emptyModel: new AssetModel(), 11 | }) { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/models/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const FULL_DATE = 'HH:mm, MMMM Do, YYYY' 7 | export const SHORT_DATE = 'MMM Do, YYYY' 8 | 9 | export const dateFormatOptions = { 10 | year: 'numeric', 11 | month: 'long', 12 | day: 'numeric', 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/models/constants/AccountEntryModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const WALLET_TYPE_MEMORY = 'memory' 7 | export const WALLET_TYPE_TREZOR = 'trezor' 8 | export const WALLET_TYPE_LEDGER = 'ledger' 9 | export const WALLET_TYPE_METAMASK = 'metamask' 10 | -------------------------------------------------------------------------------- /packages/core/models/constants/PollNoticeModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const IS_ACTIVATED = 'isActivated' 7 | export const IS_CREATED = 'isCreated' 8 | export const IS_ENDED = 'isEnded' 9 | export const IS_REMOVED = 'isRemoved' 10 | export const IS_UPDATED = 'isUpdated' 11 | export const IS_VOTED = 'isVoted' 12 | -------------------------------------------------------------------------------- /packages/core/models/constants/TransferError.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const TRANSFER_CANCELLED = 'TRANSFER_CANCELLED' 7 | export const TRANSFER_UNKNOWN = 'TRANSFER_UNKNOWN' 8 | -------------------------------------------------------------------------------- /packages/core/models/notices/ArbitraryNoticeModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractNoticeModel } from './AbstractNoticeModel' 7 | 8 | export default class ArbitraryNoticeModel extends abstractNoticeModel({ 9 | key: null, 10 | params: {}, 11 | }) { 12 | message () { 13 | return { 14 | value: this.get('key'), 15 | ...this.get('params'), 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/core/models/notices/ErrorNoticeModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractNoticeModel } from './AbstractNoticeModel' 7 | 8 | export default class ErrorNoticeModel extends abstractNoticeModel({ 9 | message: null, 10 | }) { 11 | icon () { 12 | return 'notices.error.icon' 13 | } 14 | 15 | title () { 16 | return 'notices.error.title' 17 | } 18 | 19 | details () { 20 | return [] 21 | } 22 | 23 | message () { 24 | return { 25 | value: this.get('message'), 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /packages/core/models/rewards/AbstractPeriodModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingModel } from '../AbstractFetchingModel' 7 | 8 | export const abstractPeriodModel = (defaultValues) => class AbstractPeriodModel extends abstractFetchingModel({ 9 | 10 | ...defaultValues, 11 | }) { 12 | 13 | } 14 | 15 | export default abstractPeriodModel() 16 | -------------------------------------------------------------------------------- /packages/core/models/tokens/BalancesCollection.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import BalanceModel from './BalanceModel' 7 | import { abstractFetchingCollection } from '../AbstractFetchingCollection' 8 | 9 | export default class BalancesCollection extends abstractFetchingCollection({ 10 | emptyModel: new BalanceModel(), 11 | }) { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/models/tokens/FeeModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingModel } from '../AbstractFetchingModel' 7 | 8 | export default class FeeModel extends abstractFetchingModel({ 9 | fee: null, 10 | withFee: null, 11 | feeAddress: null, 12 | }) { 13 | fee (value) { 14 | return this._getSet('fee', value) 15 | } 16 | 17 | withFee (value) { 18 | return this._getSet('withFee', value) 19 | } 20 | 21 | feeAddress (value) { 22 | return this._getSet('feeAddress', value) 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /packages/core/models/tokens/PausedModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingModel } from '../AbstractFetchingModel' 7 | 8 | export default class PausedModel extends abstractFetchingModel({ 9 | value: null, 10 | }) { 11 | value (value) { 12 | return this._getSet('value', value) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/core/models/tokens/ReissuableModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingModel } from '../AbstractFetchingModel' 7 | 8 | export default class ReissuableModel extends abstractFetchingModel({ 9 | value: null, 10 | }) { 11 | value (value) { 12 | return this._getSet('value', value) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/core/models/voting/VotingCollection.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingCollection } from '../AbstractFetchingCollection' 7 | 8 | export default class VotingCollection extends abstractFetchingCollection({}) { 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/models/wallet/AddressModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingModel } from '../AbstractFetchingModel' 7 | 8 | export default class AddressModel extends abstractFetchingModel({ 9 | address: null, 10 | }) { 11 | address (value) { 12 | return this._getSet('address', value) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/core/models/wallet/AddressesCollection.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingCollection } from '../AbstractFetchingCollection' 7 | import AddressModel from './AddressModel' 8 | 9 | export default class AddressesCollection extends abstractFetchingCollection({ 10 | emptyModel: new AddressModel(), 11 | }) { 12 | } 13 | -------------------------------------------------------------------------------- /packages/core/models/wallet/AllowanceCollection.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import AllowanceModel from './AllowanceModel' 7 | import { abstractFetchingCollection } from '../AbstractFetchingCollection' 8 | 9 | export default class AllowanceCollection extends abstractFetchingCollection({ 10 | emptyModel: new AllowanceModel(), 11 | }) { 12 | item (spender, tokenId) { 13 | return this.list().get(`${spender}-${tokenId}`) || this.emptyModel() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/core/models/wallet/AllowanceModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import Amount from '../Amount' 7 | import { abstractFetchingModel } from '../AbstractFetchingModel' 8 | 9 | export default class AllowanceModel extends abstractFetchingModel({ 10 | amount: new Amount(0, null, false), 11 | spender: null, //address 12 | token: null, // id 13 | }) { 14 | id () { 15 | // double key 16 | return `${this.get('spender')}-${this.get('token')}` 17 | } 18 | 19 | amount (value) { 20 | return this._getSet('amount', value) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/core/models/wallet/OwnerCollection.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import OwnerModel from './OwnerModel' 7 | import { abstractFetchingCollection } from '../AbstractFetchingCollection' 8 | 9 | export default class OwnerCollection extends abstractFetchingCollection({ 10 | emptyModel: new OwnerModel(), 11 | }) { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /packages/core/models/wallet/OwnerModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { abstractFetchingModel } from '../AbstractFetchingModel' 7 | 8 | export default class OwnerModel extends abstractFetchingModel({ 9 | address: null, 10 | }) { 11 | id () { 12 | return this.address() 13 | } 14 | 15 | address (value) { 16 | return this._getSet('address', value) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/core/models/wallet/persistAccount/AbstractAccountModel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PropTypes from 'prop-types' 7 | 8 | class AbstractAccountModel { 9 | constructor (props, schema) { 10 | PropTypes.checkPropTypes(schema, props, 'prop', '' + this.class) 11 | Object.assign(this, props) 12 | } 13 | } 14 | 15 | export default AbstractAccountModel 16 | -------------------------------------------------------------------------------- /packages/core/models/wallet/persistAccount/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import AbstractAccountModel from './AbstractAccountModel' 7 | import AccountEntryModel from './AccountEntryModel' 8 | import AccountModel from './AccountModel' 9 | import AccountProfileModel from './AccountProfileModel' 10 | import AccountCustomNetwork from './AccountCustomNetwork' 11 | 12 | export { 13 | AbstractAccountModel, 14 | AccountEntryModel, 15 | AccountModel, 16 | AccountProfileModel, 17 | AccountCustomNetwork, 18 | } 19 | -------------------------------------------------------------------------------- /packages/core/redux/abstractEthereum/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | NONCE_UPDATE, 8 | } from './constants' 9 | 10 | export const nonceUpdate = (blockchain) => (address, nonce) => ({ 11 | type: NONCE_UPDATE, 12 | address, 13 | blockchain, 14 | nonce, 15 | }) 16 | -------------------------------------------------------------------------------- /packages/core/redux/abstractEthereum/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_NAME = 'abstractEthereum' 7 | 8 | export const NONCE_UPDATE = 'TX/ETH/NONCE_UPDATE' 9 | -------------------------------------------------------------------------------- /packages/core/redux/abstractEthereum/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { createSelector } from 'reselect' 7 | 8 | import { DUCK_NAME } from './constants' 9 | 10 | const mainScopeSelector = () => (state) => state.get(DUCK_NAME) 11 | 12 | export const blockchainScopeSelector = (blockchain) => createSelector( 13 | mainScopeSelector(), 14 | (scope) => scope[blockchain], 15 | ) 16 | -------------------------------------------------------------------------------- /packages/core/redux/assetsHolder/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const ASSET_HOLDER_ADDRESS = 'assetHolder/timeHolderAddress' 7 | export const ASSET_HOLDER_ASSET_UPDATE = 'assetHolder/assetUpdate' 8 | export const ASSET_HOLDER_INIT = 'assetHolder/INIT' 9 | export const DUCK_ASSETS_HOLDER = 'assetsHolder' 10 | -------------------------------------------------------------------------------- /packages/core/redux/assetsHolder/selectors/models.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { DUCK_ASSETS_HOLDER } from '../constants' 7 | 8 | // eslint-disable-next-line import/prefer-default-export 9 | export const getAssetsHolderAssets = (state) => { 10 | return state.get(DUCK_ASSETS_HOLDER).assets() 11 | } 12 | 13 | -------------------------------------------------------------------------------- /packages/core/redux/assetsManager/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export { getSelectedTokenId, getAssets, getPlatforms } from './selectors/models' 7 | export { getSelectedToken, getUserTokens } from './selectors/assetsManager' 8 | -------------------------------------------------------------------------------- /packages/core/redux/assetsManager/selectors/models.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { DUCK_ASSETS_MANAGER } from '../constants' 7 | 8 | export const getSelectedTokenId = (state) => { 9 | return state.get(DUCK_ASSETS_MANAGER).selectedToken() 10 | } 11 | 12 | export const getAssets = (state) => { 13 | return state.get(DUCK_ASSETS_MANAGER).assets() 14 | } 15 | 16 | export const getPlatforms = (state) => { 17 | return state.get(DUCK_ASSETS_MANAGER).platformsList() 18 | } 19 | -------------------------------------------------------------------------------- /packages/core/redux/daos/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_DAO = 'dao' 7 | 8 | export const DAOS_INITIALIZED = 'daos/initialized' 9 | export const DAOS_REGISTER = 'daos/register' 10 | -------------------------------------------------------------------------------- /packages/core/redux/eos/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_EOS = 'eos' 7 | export const EOS = 'EOS' 8 | 9 | export const EOS_UPDATE = 'EOS/UPDATE' 10 | export const EOS_UPDATE_TOKEN = 'EOS/TOKEN/UPDATE' 11 | export const EOS_UPDATE_WALLET = 'EOS/WALLET/CREATE' 12 | export const EOS_UPDATE_WATCH_TIMEOUT_ID = 'EOS/TX/UPDATE_WATCH_TIMEOUT_ID' 13 | export const TX_CREATE = 'EOS/TX/CREATE' 14 | export const TX_REMOVE = 'EOS/TX/REMOVE' 15 | export const TX_UPDATE = 'EOS/TX/UPDATE' 16 | -------------------------------------------------------------------------------- /packages/core/redux/eos/selectors/tokens.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { createSelector } from 'reselect' 7 | import { getEOSWallet } from './mainSelectors' 8 | 9 | export const getEOSWalletsTokens = (walletId) => createSelector( 10 | [ 11 | getEOSWallet(walletId), 12 | ], 13 | ( 14 | wallet, 15 | ) => { 16 | return Object.keys(wallet.balances) 17 | }, 18 | ) 19 | -------------------------------------------------------------------------------- /packages/core/redux/ethereum/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | WEB3_UPDATE, 8 | } from './constants' 9 | 10 | export const ethWeb3Update = (web3) => ({ 11 | type: WEB3_UPDATE, 12 | web3, 13 | }) 14 | -------------------------------------------------------------------------------- /packages/core/redux/ethereum/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_ETHEREUM = 'ethereum' 7 | export const WEB3_UPDATE = 'TX/ETH/WEB3_UPDATE' 8 | -------------------------------------------------------------------------------- /packages/core/redux/ethereum/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | WEB3_UPDATE, 8 | } from './constants' 9 | 10 | const initialState = () => ({ 11 | web3: null, 12 | }) 13 | 14 | const mutations = { 15 | [WEB3_UPDATE]: (state, { web3 }) => ({ 16 | ...state, 17 | web3, 18 | }), 19 | } 20 | 21 | export default (state = initialState(), { type, ...payload }) => { 22 | return (type in mutations) 23 | ? mutations[type](state, payload) 24 | : state 25 | } 26 | -------------------------------------------------------------------------------- /packages/core/redux/ethereum/utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { DEFAULT_PATH } from '../../services/signers/EthereumMemoryDevice' 7 | 8 | export const getEthereumDerivedPath = () => { 9 | return DEFAULT_PATH 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/redux/events/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_EVENTS = 'events' 7 | 8 | export const EVENTS_LOGS_LOADING = 'events/loading' 9 | export const EVENTS_LOGS_LOADED = 'events/loaded' 10 | export const EVENTS_LOGS_UPDATED = 'events/updated' 11 | 12 | export const ADD_EVENT_TO_HISTORY = 'events/addToHistory' 13 | -------------------------------------------------------------------------------- /packages/core/redux/events/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { createSelector } from 'reselect' 7 | import LogListModel from '../../models/LogListModel' 8 | import { getAccount } from '../../redux/session/selectors' 9 | 10 | export const eventsSelector = () => (state) => state.get('events') 11 | 12 | export const getHistoryEvents = (historyKey) => createSelector( 13 | [ 14 | eventsSelector(), 15 | getAccount, 16 | ], 17 | (history, account) => { 18 | return history[historyKey] || new LogListModel({ address: account }) 19 | }, 20 | ) 21 | -------------------------------------------------------------------------------- /packages/core/redux/laborHour/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | WEB3_UPDATE, 8 | } from './constants' 9 | 10 | export const laborHourWeb3Update = (web3) => ({ 11 | type: WEB3_UPDATE, 12 | web3, 13 | }) 14 | -------------------------------------------------------------------------------- /packages/core/redux/laborHour/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_LABOR_HOUR = 'laborHour' 7 | export const WEB3_UPDATE = 'TX/LHT/WEB3_UPDATE' 8 | -------------------------------------------------------------------------------- /packages/core/redux/laborHour/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | WEB3_UPDATE, 8 | } from './constants' 9 | 10 | const initialState = () => ({ 11 | web3: null, 12 | }) 13 | 14 | const mutations = { 15 | [WEB3_UPDATE]: (state, { web3 }) => ({ 16 | ...state, 17 | web3, 18 | }), 19 | } 20 | 21 | export default (state = initialState(), { type, ...payload }) => { 22 | return (type in mutations) 23 | ? mutations[type](state, payload) 24 | : state 25 | } 26 | -------------------------------------------------------------------------------- /packages/core/redux/laborHour/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { createSelector } from 'reselect' 7 | 8 | import { DUCK_LABOR_HOUR } from './constants' 9 | 10 | const laborHourSelector = () => (state) => state.get(DUCK_LABOR_HOUR) 11 | 12 | export const web3Selector = () => createSelector( 13 | laborHourSelector(), 14 | (laborHour) => { 15 | // laborHour.web3 this is a Holder model 16 | return laborHour == null ? null : laborHour.web3.value 17 | } 18 | ) 19 | -------------------------------------------------------------------------------- /packages/core/redux/modals/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_MODALS = 'modals' 7 | 8 | export const MODALS_OPEN = 'MODALS/OPEN' 9 | export const MODALS_REPLACE = 'MODALS/REPLACE' 10 | export const MODALS_CLOSE = 'MODALS/CLOSE' 11 | export const MODALS_CLEAR = 'MODALS/CLEAR' 12 | -------------------------------------------------------------------------------- /packages/core/redux/multisigWallet/selectors/tokens.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { createSelector } from 'reselect' 7 | import { tokensCountBalanceSelector } from './balances' 8 | 9 | // eslint-disable-next-line import/prefer-default-export 10 | export const multisigTokensCountSelector = (address: string) => createSelector( 11 | [ 12 | tokensCountBalanceSelector(address), 13 | ], 14 | ( 15 | balances, 16 | ) => { 17 | return balances.length 18 | }, 19 | ) 20 | -------------------------------------------------------------------------------- /packages/core/redux/notifier/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_NOTIFIER = 'notifier' 7 | 8 | export const NOTIFIER_CLOSE = 'notifier/CLOSE' 9 | export const NOTIFIER_MESSAGE = 'notifier/MESSAGE' 10 | export const NOTIFIER_READ = 'notifier/READ' 11 | 12 | -------------------------------------------------------------------------------- /packages/core/redux/profile/utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | * 5 | * @flow 6 | */ 7 | 8 | export const getRequestConfigWithAuthorization = (bearer: string, config = {}) => ({ 9 | ...config.headers, 10 | Authorization: `Bearer ${bearer}`, 11 | }) 12 | 13 | export const getPostConfigWithAuthorizationSignature = (signature: string, config = {}) => ({ 14 | ...config.headers, 15 | Authorization: `Signature ${signature}`, 16 | }) 17 | -------------------------------------------------------------------------------- /packages/core/redux/rewards/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_REWARDS = 'rewards' 7 | 8 | export const REWARDS_ASSET = 'rewards/ASSET' 9 | export const REWARDS_BASE_INFO = 'rewards/baseInfo' 10 | export const REWARDS_INIT = 'rewards/init' 11 | export const REWARDS_PERIOD = 'rewards/period' 12 | export const REWARDS_PERIOD_COUNT = 'rewards/periodCount' 13 | -------------------------------------------------------------------------------- /packages/core/redux/session/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export { getAccount, getProfile, getGasSliderCollection } from './selectors/models' 7 | export { 8 | getGasPriceMultiplier, 9 | getAddressesList, 10 | getBlockchainAddressesList, 11 | isCBE, 12 | getAccountProfileSummary, 13 | } from './selectors/session' 14 | -------------------------------------------------------------------------------- /packages/core/redux/settings/erc20/tokens/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_SETTINGS_ERC20_TOKENS = 'settingsERC20Tokens' 7 | export const TOKENS_FORM = 'settings/TOKENS_FORM' 8 | export const TOKENS_FORM_FETCH = 'settings/TOKENS_FORM_FETCH' 9 | -------------------------------------------------------------------------------- /packages/core/redux/settings/erc20/tokens/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { createSelector } from 'reselect' 7 | import { getTokens } from '../../../tokens/selectors' 8 | import TokenModel from '../../../../models/tokens/TokenModel' 9 | 10 | export const getChronobankTokens = () => createSelector([ getTokens ], 11 | (tokens) => { 12 | return tokens.items().filter((token: TokenModel) => token.isERC20(), 13 | ) 14 | }, 15 | ) 16 | -------------------------------------------------------------------------------- /packages/core/redux/tokens/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_TOKENS = 'tokens' 7 | export const TOKENS_UPDATE = 'tokens/update' 8 | export const TOKENS_UPDATE_LATEST_BLOCK = 'tokens/updateLatestBlock' 9 | export const TOKENS_INIT = 'tokens/init' 10 | export const TOKENS_FETCHING = 'tokens/fetching' 11 | export const TOKENS_FETCHED = 'tokens/fetched' 12 | export const TOKENS_REMOVE = 'tokens/remove' 13 | export const TOKENS_FAILED = 'tokens/failed' 14 | -------------------------------------------------------------------------------- /packages/core/redux/transaction/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | TX_CREATE, 8 | TX_UPDATE, 9 | } from './constants' 10 | 11 | export const txCreate = (blockchain) => (entry) => ({ 12 | type: TX_CREATE, 13 | blockchain, 14 | entry, 15 | }) 16 | 17 | export const txUpdate = (blockchain) => (key, address, tx) => ({ 18 | type: TX_UPDATE, 19 | address, 20 | blockchain, 21 | key, 22 | tx, 23 | }) 24 | -------------------------------------------------------------------------------- /packages/core/redux/transaction/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_NAME = 'transaction' 7 | 8 | export const TX_REMOVE = 'TX/REMOVE' 9 | export const TX_CREATE = 'TX/CREATE' 10 | export const TX_UPDATE = 'TX/UPDATE' 11 | -------------------------------------------------------------------------------- /packages/core/redux/voting/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_VOTING = 'voting' 7 | 8 | export const POLLS_CREATE = 'voting/POLLS_CREATE' 9 | export const POLLS_LIST = 'voting/POLLS_LIST' 10 | export const POLLS_LOAD = 'voting/POLLS_LOAD' 11 | export const POLLS_REMOVE = 'voting/POLLS_REMOVE' 12 | export const POLLS_SELECTED = 'voting/POLLS_SELECTED' 13 | export const POLLS_UPDATE = 'voting/POLLS_UPDATE' 14 | export const POLLS_VOTE_LIMIT = 'voting/POLLS_VOTE_LIMIT' 15 | -------------------------------------------------------------------------------- /packages/core/redux/voting/selectors/models.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { DUCK_VOTING } from '../constants' 7 | 8 | export const getVoting = (state) => { 9 | return state.get(DUCK_VOTING) 10 | } 11 | 12 | export const getPolls = (state) => { 13 | return getVoting(state).list() 14 | } 15 | 16 | export const getSelectedPollFromDuck = (state) => { 17 | return getPolls(state).item(state.get(DUCK_VOTING).selectedPoll()) 18 | } 19 | 20 | export const getLastVoting = (state) => { 21 | return getVoting(state).lastPoll() 22 | } 23 | -------------------------------------------------------------------------------- /packages/core/redux/voting/types.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PropTypes from 'prop-types' 7 | 8 | export const PTPoll = PropTypes.shape({ 9 | 10 | }) 11 | -------------------------------------------------------------------------------- /packages/core/redux/wallet/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_WALLET = 'wallet' 7 | 8 | export const WALLET_SELECT_WALLET = 'WALLET/select_wallet' 9 | export const WALLET_SWITCH_WALLET = 'WALLET/switch_wallet' 10 | -------------------------------------------------------------------------------- /packages/core/redux/wallets/selectors/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { createSelector } from 'reselect' 7 | import { getIsHave2FAWalletsFromState, getTwoFaCheckedFromState } from './models' 8 | 9 | export const getTwoFaChecked = createSelector( 10 | [ 11 | getTwoFaCheckedFromState, 12 | ], 13 | ( 14 | twoFAConfirmed, 15 | ) => twoFAConfirmed, 16 | ) 17 | export const isHave2FAWallets = createSelector( 18 | [ 19 | getIsHave2FAWalletsFromState, 20 | ], 21 | ( 22 | isTwoFA, 23 | ) => isTwoFA, 24 | ) 25 | -------------------------------------------------------------------------------- /packages/core/redux/watcher/__snapshots__/actions.spec.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`watcher actions should dispatch cbeWatcher 1`] = ` 4 | [ 5 | { 6 | "type": "watcher/CBE" 7 | } 8 | ] 9 | `; 10 | 11 | exports[`watcher actions should dispatch watcher 1`] = ` 12 | [ 13 | { 14 | "type": "AssetsManager/GET_ASSETS_MANAGER_COUNTS_START" 15 | }, 16 | { 17 | "type": "AssetsManager/GET_TRANSACTIONS_START" 18 | }, 19 | { 20 | "isInited": true, 21 | "type": "market/INIT" 22 | }, 23 | { 24 | "type": "watcher/USER" 25 | } 26 | ] 27 | `; 28 | -------------------------------------------------------------------------------- /packages/core/redux/watcher/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_WATCHER = 'watcher' 7 | 8 | // next two actions represents start of the events watching 9 | export const WATCHER = 'watcher/USER' 10 | export const WATCHER_CBE = 'watcher/CBE' 11 | 12 | export const WATCHER_TX_SET = 'watcher/TX_SET' 13 | export const WATCHER_TX_END = 'watcher/TX_END' 14 | -------------------------------------------------------------------------------- /packages/core/services/EventsService.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import EventEmitter from 'events' 7 | 8 | class EventsService extends EventEmitter { 9 | constructor () { 10 | super(...arguments) 11 | } 12 | } 13 | 14 | export default new EventsService() 15 | -------------------------------------------------------------------------------- /packages/core/services/constants/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const EE_CONFIRMATION = 'Confirmation' 7 | export const EE_REVOKE = 'Revoke' 8 | export const EE_DEPOSIT = 'Deposit' 9 | export const EE_CONFIRMATION_NEEDED = 'ConfirmationNeeded' 10 | export const EE_SINGLE_TRANSACTION = 'SingleTransact' 11 | export const EE_MULTI_TRANSACTION = 'MultiTransact' 12 | export const EE_OWNER_REMOVED = 'OwnerRemoved' 13 | export const EE_OWNER_ADDED = 'OwnerAdded' 14 | export const EE_REQUIREMENT_CHANGED = 'RequirementChanged' 15 | -------------------------------------------------------------------------------- /packages/core/services/errors/TrezorError.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default class TrezorError extends Error { 7 | constructor (code, ...params) { 8 | super(...params) 9 | 10 | if (Error.captureStackTrace) { 11 | Error.captureStackTrace(this, TrezorError) 12 | } 13 | 14 | this.code = code 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/core/services/signers/DashTrezorDevice.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | BLOCKCHAIN_DASH, 8 | TESTNET, 9 | } from '../../dao/constants' 10 | import BitcoinTrezorDevice from './BitcoinTrezorDevice' 11 | 12 | export default class DashTrezorDevice extends BitcoinTrezorDevice { 13 | constructor ({ address, network, isTestnet }) { 14 | super({ address, network, isTestnet }) 15 | this.coin = isTestnet ? TESTNET : BLOCKCHAIN_DASH 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/core/services/signers/EosLedgerDevice.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // import EventEmitter from 'events' 7 | // import TransportU2F from '@ledgerhq/hw-transport-u2f' 8 | // import AppEos from './eosledger' 9 | 10 | export default class EosLedgerDevice /*extends EventEmmiter*/ { 11 | constructor ({ network }) { 12 | // super() 13 | this.network = network 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/core/services/signers/LitecoinTrezorDevice.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { BLOCKCHAIN_LITECOIN, TESTNET } from '../../dao/constants' 7 | import BitcoinTrezorDevice from './BitcoinTrezorDevice' 8 | 9 | export default class LitecoinTrezorDevice extends BitcoinTrezorDevice { 10 | constructor ({ address, network, isTestnet }) { 11 | super({ address, network, isTestnet }) 12 | this.coin = isTestnet ? TESTNET : BLOCKCHAIN_LITECOIN 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/core/services/signers/WavesLedgerDeviceMock.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import WavesMemoryDevice from './WavesMemoryDevice' 7 | 8 | export const MOCK_PRIVATE_SEED = 'cfc237b5d387c438cfdf647f686807ade5d6284cc7302d1ba5e4dd7e16b4e91b' 9 | 10 | export default class WavesLedgerDeviceMock extends WavesMemoryDevice { 11 | constructor ({ network }) { 12 | super({ network, seedPhrase: MOCK_PRIVATE_SEED }) 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /packages/core/utils/eventHistory.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { sha3_256 } from 'js-sha3' 7 | 8 | export const getHistoryKey = (topics, address) => { 9 | return sha3_256([address, '-', ...topics].join('')) 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/web3/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import Web3 from 'web3' 7 | 8 | export default (network) => { 9 | if (!network.ws) { 10 | return null 11 | } 12 | const web3Provider = new Web3.providers.WebsocketProvider(network.ws) 13 | return new Web3(web3Provider) 14 | } 15 | -------------------------------------------------------------------------------- /packages/login-ui/components/AccountName/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Account Name', 8 | description: 'We could not find the provided address.', 9 | descriptionExtra: 'A new ChronoWallet account will be created with the same password as in provided wallet file.', 10 | accountNamePlaceholder: 'Enter your account name', 11 | or: 'or', 12 | back: 'Back', 13 | submit: 'Choose active blockchains', 14 | } 15 | -------------------------------------------------------------------------------- /packages/login-ui/components/AccountName/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import * as validator from '@chronobank/core/models/validator' 8 | 9 | export default (values) => { 10 | 11 | const accountName = values.get('accountName') 12 | 13 | const accountNameErrors = new ErrorList() 14 | accountNameErrors.add(validator.required(accountName)) 15 | 16 | return { 17 | accountName: accountNameErrors.getErrors(), 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/login-ui/components/AccountSelector/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'My Accounts', 8 | description: 'Browse account stored on your device.', 9 | descriptionExtra: 'If you have created an account before you may use Add an Existing Account option below.', 10 | button: 'Add an existing account', 11 | createAccount: 'Create New Account', 12 | emptyList: 'Sorry, there are no accounts to display', 13 | or: 'or', 14 | } 15 | -------------------------------------------------------------------------------- /packages/login-ui/components/BackButton/BackButton.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | 8 | .root { 9 | display: flex; 10 | align-items: center; 11 | padding: 0; 12 | } 13 | 14 | .arrow { 15 | margin-right: 8px; 16 | font-size: 19px; 17 | } 18 | 19 | .button { 20 | button { 21 | color: $color-white; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/login-ui/components/BackButton/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | backTo: { 8 | options: 'Back to options', 9 | loginWithMnemonic: 'Back to login with Mnemonic', 10 | loginWithWallet: 'Back to login with wallet', 11 | }, 12 | back: 'Back', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/BlockchainChoice/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'BlockchainChoice' 7 | 8 | export const en = { 9 | title: 'Set Your Wallets', 10 | description: 'Enable wallets you need to store funds in. You may also change these settings later.', 11 | saveButtonTitle: 'Finish', 12 | updateButtonTitle: 'Update', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/BlockchainChoice/styles.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | textField: { 8 | underlineStyle: { 9 | borderColor: '#A3A3CC', 10 | bottom: 0, 11 | }, 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/ConfirmMnemonic/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Confirm back-up phrase', 8 | description: 'Click on back-up phrase words in the correct order.', 9 | startOver: 'Start Over', 10 | undo: 'Undo', 11 | done: 'Done', 12 | back: 'Back', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/CreateAccount/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Create New Account', 8 | description: 'Created account will be encrypted using given password and stored in your\n' + 9 | ' browser\'s local storage.', 10 | walletName: 'Account name', 11 | password: 'Password', 12 | confirmPassword: 'Confirm Password', 13 | login: 'Create new account', 14 | or: 'or', 15 | useAccount: 'Use an existing account', 16 | } 17 | -------------------------------------------------------------------------------- /packages/login-ui/components/CreateAccount/styles.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | textField: { 8 | underlineStyle: { 9 | borderColor: '#A3A3CC', 10 | bottom: 0, 11 | }, 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/DerivationPathForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'HD derivation path', 8 | mnemonic: 'Mnemonic', 9 | path: 'Enter HD derivation path (e.g. m\'/40\'/0\'/0\'/0)', 10 | submit: 'ok', 11 | or: 'or', 12 | back: 'back', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/GenerateWallet/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Download a Wallet File', 8 | description: 'You can use this wallet file to add your account available in' + 9 | ' another browser, for example. The file is protected by the same password as you\'ve created.', 10 | descriptionExtra: 'The file is protected by the same password as you created before.', 11 | download: 'Download', 12 | finish: 'Finish', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Log In', 8 | subTitle: 'Welcome back!', 9 | enterPassword: 'Enter Password', 10 | submitButton: 'Log In', 11 | forgotPassword: 'Forgot your password?', 12 | } 13 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginForm/styles.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | input: { 8 | '&:after': { 9 | borderColor: '#424066', 10 | }, 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginPageShared.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // shared classes 7 | %buttonIcon { 8 | // overrides for Icon 9 | margin-left: 0 !important; 10 | margin-right: 12px !important; 11 | } 12 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginUPort/LoginUPort.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .root { 7 | display: flex; 8 | justify-content: space-between; 9 | align-items: stretch; 10 | } 11 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginUPort/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | login: 'Login', 8 | } 9 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginWithMetamask/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Add an Address', 8 | login: 'Login', 9 | or: 'or', 10 | back: 'back', 11 | ethAddress: 'Ethereum address', 12 | isConnected: { 13 | successTitle: 'Trezor plugged', 14 | errorTitle: 'Plug in your device', 15 | errorTip: 'In order to continue please plug in your Trezor device.', 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginWithMnemonic/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Mnemonic form', 8 | description: 'Type or copy your mnemonic key into the box below', 9 | mnemonic: 'Mnemonic', 10 | submit: 'Submit', 11 | or: 'or', 12 | back: '', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginWithMnemonic/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import * as validator from '@chronobank/core/models/validator' 8 | 9 | export default (values) => { 10 | 11 | const mnemonic = values.get('mnemonic') 12 | 13 | const mnemonicErrors = new ErrorList() 14 | mnemonicErrors.add(validator.required(mnemonic)) 15 | 16 | return { 17 | mnemonic: mnemonicErrors.getErrors(), 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginWithOptions/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | mnemonicKey: 'Mnemonic Key', 8 | walletFile: 'Wallet File', 9 | privateKey: 'Private Key', 10 | title: 'Add an Existing Account', 11 | createAccount: 'Create New Account', 12 | or: 'or', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginWithPrivateKey/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Enter a Private Key', 8 | description: 'Type or copy your private key into the box below', 9 | privateKey: 'Private key', 10 | submit: 'Submit', 11 | or: 'or', 12 | back: 'back', 13 | 14 | } 15 | -------------------------------------------------------------------------------- /packages/login-ui/components/LoginWithPrivateKey/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import * as validator from '@chronobank/core/models/validator' 8 | 9 | export default (values) => { 10 | 11 | const privateKey = values.get('pk') 12 | 13 | const privateKeyErrors = new ErrorList() 14 | privateKeyErrors.add(validator.required(privateKey)) 15 | privateKeyErrors.add(validator.privateKey(privateKey)) 16 | 17 | return { 18 | pk: privateKeyErrors.getErrors(), 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/login-ui/components/NetworkCreateModal/NetworkCreateModalForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | address: 'IP address or domain name', 8 | socket: 'Web socket', 9 | alias: 'Alias', 10 | cancel: 'Cancel', 11 | save: 'Save', 12 | add: 'Add', 13 | } 14 | -------------------------------------------------------------------------------- /packages/login-ui/components/NetworkCreateModal/NetworkCreateModalForm/styles.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | label: { 8 | color: '#A3A3CC', 9 | transformOrigin: 'top left', 10 | textAlign: 'left', 11 | }, 12 | style: { 13 | // height: 62, 14 | marginBottom: 18, 15 | }, 16 | inputStyle: { 17 | color: '#A3A3CC', 18 | textAlign: 'left', 19 | marginTop: 0, 20 | paddingTop: 18, 21 | }, 22 | shrink: { 23 | transformOrigin: 'top left', 24 | textAlign: 'left', 25 | }, 26 | } 27 | -------------------------------------------------------------------------------- /packages/login-ui/components/NetworkCreateModal/NetworkDeleteModal/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Delete an Address', 8 | } 9 | -------------------------------------------------------------------------------- /packages/login-ui/components/NetworkCreateModal/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | titleAddMode: 'Add a Network', 8 | titleEditMode: 'Edit a Network', 9 | } 10 | -------------------------------------------------------------------------------- /packages/login-ui/components/NetworkSelector/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | network: 'Network', 8 | } 9 | -------------------------------------------------------------------------------- /packages/login-ui/components/NetworkStatus/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | network: 'Network', 8 | } 9 | -------------------------------------------------------------------------------- /packages/login-ui/components/NotFoundPage/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | pageNotFound: 'The document you\'re trying to access is not found.', 8 | button: 'Create New Account', 9 | or: 'or', 10 | useExistingAccount: 'Use an existing account', 11 | } 12 | -------------------------------------------------------------------------------- /packages/login-ui/components/RecoverAccount/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Enter mnemonic to reset password', 8 | word: 'Word', 9 | resetPassword: 'Reset password', 10 | or: 'or', 11 | back: 'Back', 12 | } 13 | -------------------------------------------------------------------------------- /packages/login-ui/components/ResetPassword/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | title: 'Reset password', 8 | password: 'Enter New Password', 9 | confirmPassword: 'Confirm New Password', 10 | reset: 'Reset', 11 | } 12 | -------------------------------------------------------------------------------- /packages/login-ui/components/Warning/Warning.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .warningBox { 7 | margin-top: 28px; 8 | display: flex; 9 | align-items: center; 10 | } 11 | 12 | .warningIcon { 13 | flex-grow: 0; 14 | margin-right: 20px; 15 | font-size: 40px !important; 16 | } 17 | 18 | .warningText { 19 | flex-grow: 1; 20 | font-size: 12px; 21 | font-weight: 300; 22 | } 23 | -------------------------------------------------------------------------------- /packages/login-ui/components/Warning/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const en = { 7 | text: `Keep it safe!
8 | Make a backup!
9 | Don't share it with anyone!
10 | Don't lose it! It cannot be recovered if you lose it.`, 11 | } 12 | -------------------------------------------------------------------------------- /packages/login-ui/components/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const FORM_CREATE_HW_ACCOUNT = 'CreateAccountForm' 7 | 8 | export const PASSWORD_LENGTH_MIN = 8 9 | -------------------------------------------------------------------------------- /packages/login-ui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@chronobank/login-ui", 3 | "version": "0.6.1", 4 | "author": "chronobank", 5 | "license": "AGPL-3.0" 6 | } 7 | -------------------------------------------------------------------------------- /packages/login-ui/settings.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import MnemonicGenerateIcon from 'assets/img/mnemonic-key-color.svg' 7 | import theme from 'styles/themes/default' 8 | import inverted from 'styles/themes/inversed' 9 | import colors from 'styles/themes/variables' 10 | 11 | export const assets = { 12 | MnemonicGenerateIcon, 13 | } 14 | 15 | export const styles = { 16 | colors, 17 | inverted, 18 | theme, 19 | } 20 | 21 | export Button from 'components/common/ui/Button/Button' 22 | -------------------------------------------------------------------------------- /packages/login/network/__mocks__/sockjs-client.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | const MockSocket = require('socket.io-mock') 7 | 8 | module.exports = MockSocket 9 | -------------------------------------------------------------------------------- /packages/login/patches/web3-provider-engine+14.0.6.patch: -------------------------------------------------------------------------------- 1 | patch-package 2 | --- a/node_modules/web3-provider-engine/subproviders/filters.js 3 | +++ b/node_modules/web3-provider-engine/subproviders/filters.js 4 | @@ -26,7 +26,7 @@ function FilterSubprovider(opts) { 5 | self.asyncBlockHandlers = {} 6 | self.asyncPendingBlockHandlers = {} 7 | self._ready = new Stoplight() 8 | - self._ready.setMaxListeners(opts.maxFilters || 25) 9 | + self._ready.setMaxListeners(opts.maxFilters) 10 | self._ready.go() 11 | self.pendingBlockTimeout = opts.pendingBlockTimeout || 4000 12 | self.checkForPendingBlocksActive = false 13 | -------------------------------------------------------------------------------- /packages/login/redux/ducks.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { combineReducers } from 'redux-immutable' 7 | 8 | import monitor from './monitor/reducer' 9 | import network from './network/reducer' 10 | 11 | const loginReducers = { 12 | monitor, 13 | network, 14 | } 15 | 16 | export default loginReducers 17 | 18 | // for further development 19 | export const combinedLoginReducers = combineReducers(loginReducers) 20 | -------------------------------------------------------------------------------- /packages/login/redux/monitor/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_MONITOR = 'monitor' 7 | 8 | export const CHANGE_NETWORK_STATUS = 'monitor/CHANGE_NETWORK_STATUS' 9 | export const CHANGE_SYNC_STATUS = 'monitor/CHANGE_SYNC_STATUS' 10 | -------------------------------------------------------------------------------- /packages/login/settings.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import web3Converter from '@chronobank/core/utils/Web3Converter' 7 | 8 | export const utils = { 9 | web3Converter, 10 | } 11 | -------------------------------------------------------------------------------- /packages/market/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@chronobank/market", 3 | "version": "1.0.0", 4 | "dependencies": { 5 | "axios": "^0.16.2", 6 | "socket.io-client": "^2.0.3" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/market/redux/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import * as ActionTypes from './constants' 7 | 8 | export const marketAddToken = (symbol) => ({ 9 | type: ActionTypes.MARKET_ADD_TOKEN, 10 | symbol, 11 | }) 12 | 13 | export const marketSelectCoin = (coin) => ({ 14 | type: ActionTypes.MARKET_SELECT_COIN, 15 | coin, 16 | }) 17 | 18 | export const marketSelectCoinFailure = (coin) => ({ 19 | type: ActionTypes.MARKET_SELECT_COIN_FAILURE, 20 | coin, 21 | }) 22 | -------------------------------------------------------------------------------- /packages/market/redux/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_MARKET = 'market' 7 | 8 | export const MARKET_ADD_TOKEN = 'MARKET_ADD_TOKEN' 9 | export const MARKET_SELECT_COIN = 'MARKET_MARKET_SELECT_COIN' 10 | export const MARKET_SELECT_COIN_FAILURE = 'MARKET_MARKET_SELECT_FAILURE' 11 | export const MARKET_RESET = 'MARKET_RESET' 12 | export const MARKET_STOP = 'MARKET_STOP' 13 | -------------------------------------------------------------------------------- /packages/market/redux/initialState.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | initState: false, 8 | socketStatus: null, 9 | tokens: ['ETH', 'TIME'], 10 | currencies: ['USD'], 11 | prices: {}, 12 | rates: {}, 13 | selectedCurrency: 'USD', 14 | lastMarket: {}, 15 | selectedCoin: 'ETH', 16 | } 17 | -------------------------------------------------------------------------------- /src/assets/file-select/icon-attach.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/file-select/type/default.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/file-select/type/doc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/file-select/type/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/file-select/type/ppt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/file-select/type/xls.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/fonts/ChronoBankIcons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/ChronoBankIcons.eot -------------------------------------------------------------------------------- /src/assets/fonts/ChronoBankIcons.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/ChronoBankIcons.svg -------------------------------------------------------------------------------- /src/assets/fonts/ChronoBankIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/ChronoBankIcons.ttf -------------------------------------------------------------------------------- /src/assets/fonts/ChronoBankIcons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/ChronoBankIcons.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_0_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_0_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_0_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_0_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_0_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_0_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_0_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_0_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_1_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_1_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_1_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_1_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_1_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_1_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_1_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_1_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_2_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_2_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_2_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_2_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_2_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_2_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_2_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_2_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_3_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_3_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_3_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_3_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_3_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_3_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_3_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_3_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_4_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_4_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_4_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_4_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_4_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_4_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_4_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_4_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_5_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_5_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_5_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_5_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_5_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_5_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_5_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_5_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_6_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_6_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_6_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_6_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_6_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_6_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_6_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_6_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_7_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_7_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_7_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_7_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_7_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_7_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_7_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_7_0.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_8_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_8_0.eot -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_8_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_8_0.ttf -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_8_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_8_0.woff -------------------------------------------------------------------------------- /src/assets/fonts/webfonts/3420B9_8_0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/fonts/webfonts/3420B9_8_0.woff2 -------------------------------------------------------------------------------- /src/assets/img/2fa/2-fa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/2fa/2-fa.png -------------------------------------------------------------------------------- /src/assets/img/assets1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/img/assets2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/img/assets3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/img/assets4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/img/avaToken.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/img/blocked-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 7750970e-2d0f-482e-bb23-b90776e4b8ef 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/checkbox-marked-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/img/exit-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | d933a71e-8d14-498d-b5f8-83fcc280b65a 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icn-add-token.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/img/icn-eth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/icn-eth.png -------------------------------------------------------------------------------- /src/assets/img/icn-plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/assets/img/icn-time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/icn-time.png -------------------------------------------------------------------------------- /src/assets/img/icn-wallet-dialog-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/img/icn-wallet-dialog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/assets/img/icons/back.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 90f1a8dc-9f06-4e17-987d-0d12e8d7cd42 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/assets/img/icons/check-green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 8220b91f-6a4a-4ebe-98b8-0d701ad8170e 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | ad5c3117-220e-4801-8f63-2f6a746d454a 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/delete-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | ebffa863-a7aa-455a-9cb6-07c24cf83aed 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/file-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 5a5fafd5-b2c5-47ea-b2c0-7ef57e280622 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/key-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 8d956c6a-7586-4e0b-a30f-371b3563407a 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/list.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 635d99ca-d8c6-4878-b277-83d9fe988a37 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/mnemonic-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 76b6e7c7-b5b0-4710-8f20-506b658dcd6b 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/portfolio-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 4fcec62e-8eb3-412e-8c89-8459ee7fda82 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/prev-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 2e847eb1-2f11-470d-8c5e-a3e628575639 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/prev.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | cbdff729-6b87-476c-91c1-47c8c596582c 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/img/icons/print-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 160c1a77-03d7-4834-9669-e304e1093918 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/qr.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 599e521e-069c-45d2-af14-cc87bf4515de 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/assets/img/icons/wallet-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 405250a0-8aac-4199-8932-61078aa77b6d 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/icons/warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 223a9793-bfa9-41d8-8047-9adb426e17c7 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/.!88899!yacuna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/.!88899!yacuna.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/binance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/binance.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitbay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitbay.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitfinex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitfinex.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitflyer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitflyer.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitflyerln.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitflyerln.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bithump.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bithump.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitmarket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitmarket.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitso.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitso.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitsquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitsquare.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bitstamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bitstamp.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bittrex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bittrex.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bleutrade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bleutrade.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/btc38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/btc38.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/btcchina-rebrand-btcc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/btcchina-rebrand-btcc.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/btce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/btce.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/btcmarkets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/btcmarkets.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/btcxindia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/btcxindia.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/bter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/bter.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/ccedk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/ccedk.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/ccex-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/ccex-logo.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/cexio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/cexio.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/chbtc_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/chbtc_logo.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/coinbase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/coinbase.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/coincheck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/coincheck.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/coinfloor-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/coinfloor-logo.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/coinone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/coinone.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/coinroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/coinroom.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/coinse-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/coinse-logo.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/cryptopia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/cryptopia.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/cryptox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/cryptox.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/ethdelta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/ethdelta.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/exmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/exmo.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/gatecoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/gatecoin.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/gdax.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/gdax.jpg -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/gemini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/gemini.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/hitbtc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/hitbtc.jpg -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/hitbtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/hitbtc.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/itbit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/itbit.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/junbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/junbi.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/korbit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/korbit.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/kraken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/kraken.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/kucoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/kucoin.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/lakebtclogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/lakebtclogo.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/liqui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/liqui.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/livecoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/livecoin.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/localbitcoins-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/localbitcoins-logo.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/luno.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/luno.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/mercadobitcoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/mercadobitcoin.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/novatext04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/novatext04.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/okcoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/okcoin.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/paymium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/paymium.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/poloniex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/poloniex.jpg -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/poloniex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/poloniex.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/quadrigacx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/quadrigacx.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/quoine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/quoine.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/therocktrading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/therocktrading.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/tidex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/tidex.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/unocoin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/unocoin.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/vaultoro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/vaultoro.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/viabtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/viabtc.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/waves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/waves.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/yacuna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/yacuna.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/yobit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/yobit.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/yunbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/yunbi.png -------------------------------------------------------------------------------- /src/assets/img/marketsLogos/zaif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/marketsLogos/zaif.png -------------------------------------------------------------------------------- /src/assets/img/profile-photo-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/profile-photo-1.jpg -------------------------------------------------------------------------------- /src/assets/img/spinningwheel-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/spinningwheel-1.gif -------------------------------------------------------------------------------- /src/assets/img/spinningwheel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/spinningwheel.gif -------------------------------------------------------------------------------- /src/assets/img/stripes-2-crop-footer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/stripes-2-crop-footer.jpg -------------------------------------------------------------------------------- /src/assets/img/stripes-2-crop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/stripes-2-crop.jpg -------------------------------------------------------------------------------- /src/assets/img/wallet-title-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chrono-Tech/ChronoMint/56db0b919b7ed469e05e3bce54992bc7c7f2d061/src/assets/img/wallet-title-bg.png -------------------------------------------------------------------------------- /src/components/Deposits/Deposit/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'Deposit' 7 | 8 | export default { 9 | en: { 10 | title: 'TIME deposit', 11 | withdraw: 'withdraw', 12 | deposit: 'deposit', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/components/Deposits/DepositsList/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'DepositsList' 7 | 8 | export default { 9 | en: { 10 | withdraw: 'withdraw', 11 | deposit: 'deposit', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/components/WidgetContainer/WidgetContainer.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import '~styles/partials/variables'; 6 | 7 | .root { 8 | width: 430px; 9 | margin-bottom: 28px; 10 | margin-top: 28px; 11 | .title { 12 | padding: 20px 30px; 13 | background-color: $color-blue-4; 14 | border-radius: 2px 2px 0 0; 15 | font-size: 30px; 16 | color: $color-white; 17 | line-height: 36px; 18 | font-weight: 400; 19 | } 20 | .body { 21 | border-radius: 0 0 2px 2px; 22 | background: $color-white; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/components/assetsManager/AddPlatformDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | dialogTitle: 'Add platform', 9 | platformName: 'Platform name', 10 | platformAddress: 'Platform Address', 11 | alreadyHave: 'I have already platform on Ethereum', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/components/assetsManager/AssetManager/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | title: 'Asset manager', 9 | myPlatforms: 'my platforms', 10 | managers: 'managers', 11 | myTokens: 'my tokens', 12 | addToken: 'add token', 13 | tokensOnCrowdsale: 'Tokens on crowdsale', 14 | addNewPlatform: 'add new platform', 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /src/components/assetsManager/AssetManagerDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | dialogTitle: 'Add/remove manager', 9 | managerAddress: 'Manager address', 10 | addManagersButton: 'Add manager', 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /src/components/assetsManager/AssetManagerDialog/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import validator from '@chronobank/core/models/validator' 8 | 9 | export default function (values) { 10 | const managerAddressErrors = new ErrorList() 11 | managerAddressErrors.add(validator.address(values.get('managerAddress'), true)) 12 | 13 | return { 14 | managerAddress: managerAddressErrors.getErrors(), 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/assetsManager/BlacklistDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'Assets.BlacklistDialog' 7 | 8 | export default { 9 | en: { 10 | dialogTitle: 'Blacklist', 11 | dialogSubTitle: 'People with addresses listed here will not be able to perform any transactions with your asset.', 12 | blockAssetButton: 'Block asset', 13 | unblockAssetButton: 'Block asset', 14 | cancel: 'Cancel', 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /src/components/assetsManager/BlacklistForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'Assets.BlacklistForm' 7 | 8 | export default { 9 | en: { 10 | addUserButton: 'ADD', 11 | userAddress: 'Address', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/components/assetsManager/BlacklistForm/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import * as validator from '@chronobank/core/models/validator' 7 | import ErrorList from 'utils/ErrorList' 8 | 9 | export default function (values) { 10 | return { 11 | userAddress: new ErrorList() 12 | .add(validator.address(values.get('userAddress'), true)) 13 | .getErrors(), 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/components/assetsManager/HistoryTable/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | title: 'History', 9 | time: 'Time', 10 | type: 'Type', 11 | manager: 'Manager', 12 | value: 'Value', 13 | token: 'Token', 14 | added: 'Added', 15 | deleted: 'Deleted', 16 | platform: 'Platform', 17 | user: 'User', 18 | }, 19 | } 20 | -------------------------------------------------------------------------------- /src/components/assetsManager/PlatformInfo/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import validator from '@chronobank/core/models/validator' 8 | 9 | export default function (values) { 10 | const amountErrors = new ErrorList() 11 | amountErrors.add(validator.positiveNumber(values.get('amount'), true)) 12 | 13 | return { 14 | amount: amountErrors.getErrors(), 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/assetsManager/PlatformsList/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | platform: 'Platform', 9 | detachPlatform: 'detach platform', 10 | pending: ' Status: pending', 11 | loading: 'Loading', 12 | noTokens: 'no tokens', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/components/assetsManager/ReissueAssetForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | reissue: 'Reissue', 9 | reissueAmount: 'Reissue amount', 10 | onCrowdsale: 'On crowdsale', 11 | issuedAmount: 'Issued amount', 12 | fee: 'fee', 13 | managers: 'managers', 14 | revoke: 'Revoke', 15 | crowdsaleInfo: 'crowdsale info', 16 | send: 'Send to exchange', 17 | selectPlatform: 'Select a platform', 18 | selectToken: 'Select a token', 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /src/components/assetsManager/ReissueAssetForm/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import validator from '@chronobank/core/models/validator' 8 | 9 | export default function (values) { 10 | const amountErrors = new ErrorList() 11 | amountErrors.add(validator.positiveNumber(values.get('amount'), true)) 12 | 13 | return { 14 | amount: amountErrors.getErrors(), 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/assetsManager/RevokeDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | dialogTitle: 'Revoke token', 9 | amount: 'amount', 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /src/components/assetsManager/RevokeDialog/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import validator from '@chronobank/core/models/validator' 8 | 9 | export default function validate (values) { 10 | const res = {} 11 | const amountErrors = new ErrorList() 12 | amountErrors.add(validator.positiveNumber(values.get('amount'))) 13 | amountErrors.add(validator.required(values.get('amount'))) 14 | if (amountErrors.getErrors()) { 15 | res['amount'] = amountErrors.getErrors() 16 | } 17 | 18 | return res 19 | } 20 | -------------------------------------------------------------------------------- /src/components/common/DatePicker/style.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .root { 7 | .error { 8 | 9 | } 10 | 11 | .datePicker { 12 | width: 230px 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/components/common/DoughnutChart/DoughnutChart.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .root { 7 | min-width:50px; 8 | min-height:50px; 9 | } 10 | -------------------------------------------------------------------------------- /src/components/common/FileSelect/FileIcon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PropTypes from 'prop-types' 7 | import React, { PureComponent } from 'react' 8 | 9 | import './FileIcon.scss' 10 | 11 | export default class FileIcon extends PureComponent { 12 | static propTypes = { 13 | type: PropTypes.string, 14 | } 15 | 16 | static defaultProps = { 17 | type: 'default', 18 | } 19 | 20 | render () { 21 | return ( 22 |
23 | ) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/components/common/IPFSImage/IPFSImage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .root { 7 | } 8 | -------------------------------------------------------------------------------- /src/components/common/ModalStack/ModalStack.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/mixins"; 7 | 8 | .root { 9 | @include position(absolute, 0, 0, auto, auto); 10 | width: 0; 11 | height: 0; 12 | z-index: 1700; 13 | } 14 | -------------------------------------------------------------------------------- /src/components/common/Preloader/Preloader.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .root { 7 | display: flex; 8 | justify-content: center; 9 | align-items: center; 10 | flex-grow: 1; 11 | } 12 | -------------------------------------------------------------------------------- /src/components/common/ProfileImage/ProfileImage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import '~styles/partials/mixins'; 7 | @import '~styles/partials/variables'; 8 | 9 | .wrapper { 10 | align-items: center; 11 | -ms-flex-pack: center; 12 | justify-content: center; 13 | display: flex; 14 | } 15 | 16 | .default-icon { 17 | font-size: 100%; 18 | color: white; 19 | background-color: $color-panel-bg-0; 20 | } 21 | 22 | .icon { 23 | background-size: cover; 24 | background-position: center; 25 | background-repeat: no-repeat; 26 | } 27 | -------------------------------------------------------------------------------- /src/components/common/SideStack/SideStack.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/mixins"; 6 | 7 | .root { 8 | @include position(absolute, 0, auto, 0, auto); 9 | width: 0; 10 | height: auto; 11 | z-index: 1200; 12 | @include sm-only { 13 | z-index: 1600; 14 | } 15 | @include xs-only { 16 | z-index: 1700; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/components/common/Slider/style.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .root { 7 | .error { 8 | 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/components/common/TheCookies/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TheCookies' 7 | 8 | export default { 9 | en: { 10 | cookiesWeUse: 'We use cookies to improve our users\' experience. Read our', 11 | cookiesPolicies: 'cookies policies', 12 | cookiesLearnMore: 'to learn more or change settings.', 13 | accept: 'accept', 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /src/components/common/TimePicker/style.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .root { 7 | .error { 8 | 9 | } 10 | 11 | .datePicker { 12 | width: 230px 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/components/common/Timer/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | sec: 'sec', 9 | }, 10 | } 11 | 12 | -------------------------------------------------------------------------------- /src/components/common/TxConfirmations/TxConfirmations.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/mixins"; 6 | 7 | .root { 8 | img { 9 | width: 100%; 10 | height: 100%; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/components/common/TxConfirmations/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TxConfirmations' 7 | 8 | export default { 9 | en: { 10 | confirmations: '%{min}m (%{confirmations}/4 Confirms)', 11 | done: 'Done', 12 | }, 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/components/dashboard/ColoredSection/ColoredSection.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/mixins"; 7 | @import "~styles/partials/variables"; 8 | 9 | .root { 10 | 11 | .head { 12 | padding: 24px 16px; 13 | } 14 | 15 | .body { padding: 0px 16px 24px 16px; } 16 | .foot { padding: 24px 16px; } 17 | } 18 | -------------------------------------------------------------------------------- /src/components/dashboard/Rewards/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | title: 'Bonuses', 9 | allPeriods: 'All Periods', 10 | }, 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/components/dashboard/SendTokens/Bitcoin/FormContainer.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import React from 'react' 7 | import { connect } from 'react-redux' 8 | 9 | import Form from './Form' 10 | import FormContainer, { mapStateToProps, mapDispatchToProps } from '../AbstractBitcoin/FormContainer' 11 | 12 | const FormReduxContainer = connect(mapStateToProps, mapDispatchToProps)(FormContainer) 13 | 14 | const BitcoinFormContainer = (props) => ( 15 | 16 | ) 17 | 18 | export default BitcoinFormContainer 19 | -------------------------------------------------------------------------------- /src/components/dashboard/SendTokens/Nem/normalize.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const normalizeAddress = (value) => { 7 | if (!value) { 8 | return value 9 | } 10 | 11 | return value.replace(/-/g, '') 12 | } 13 | -------------------------------------------------------------------------------- /src/components/dashboard/TransactionsTable/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TransactionsTable' 7 | 8 | export default { 9 | en: { 10 | receiving: 'Receiving from', 11 | sending: 'Sending to', 12 | noTransactionsFound: 'No transactions found.', 13 | }, 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/components/dialogs/ActionRequestDeviceDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'ActionRequestDeviceDialog' 7 | 8 | export default { 9 | en: { 10 | title: 'Action required', 11 | pleaseConfirm: 'Please confirm the operation on your device.', 12 | closeAutomatically: 'The window will close automatically upon your confirmation.', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/components/dialogs/ModalDialogBase/ModalDialogBase.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import '~styles/partials/variables'; 7 | 8 | .root { 9 | max-width: 928px; 10 | background-color: $color-white; 11 | } 12 | 13 | .header { 14 | background-color: $color-primary-1; 15 | padding: 24px 16px; 16 | /* TODO @dkchv: add space for close */ 17 | } 18 | 19 | .title { 20 | font-size: 34px; 21 | font-weight: 300; 22 | color: $color-white; 23 | } 24 | 25 | .content { 26 | padding: 24px 16px; 27 | } 28 | -------------------------------------------------------------------------------- /src/components/dialogs/ModalDialogBase/_ModalDialogBaseExtend.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | $footer-padding: 56px; 7 | 8 | %footer { 9 | display: flex; 10 | justify-content: flex-end; 11 | padding-top: $footer-padding; 12 | } 13 | 14 | %subHeader { 15 | color: grey; 16 | font-size: 14px; 17 | line-height: 18px; 18 | } 19 | -------------------------------------------------------------------------------- /src/components/dialogs/PublishPollDialog/PublishPollDialog.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import '~styles/partials/mixins'; 6 | @import '~styles/partials/variables'; 7 | 8 | .root { 9 | 10 | } 11 | 12 | .content { 13 | padding: 30px; 14 | max-width: 400px; 15 | .actionsWrapper { 16 | margin-top: 30px; 17 | display: flex; 18 | justify-content: flex-end; 19 | } 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/components/dialogs/PublishPollDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'PublishPollDialog' 7 | 8 | export default { 9 | en: { 10 | title: 'Publish this poll?', 11 | text: 'You\'re about to publish "%{name}" poll and make it visible to a public. Please confirm below.', 12 | cancel: 'Cancel', 13 | confirm: 'Confirm', 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /src/components/dialogs/TwoFA/TwoFADialog.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ModalDialog from 'components/dialogs/ModalDialog' 7 | import TwoFAForm from 'components/dialogs/TwoFA/TwoFAForm' 8 | import React, { Component } from 'react' 9 | 10 | export default class TwoFADialog extends Component { 11 | render () { 12 | return ( 13 | 14 | 15 | 16 | ) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/components/dialogs/UpdateProvideDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'UpdateProvideDialog' 7 | 8 | export default { 9 | en: { 10 | title: 'Account edit', 11 | yourName: 'Your Name', 12 | yourCompany: 'Your Company', 13 | accountAddress: 'Account Address', 14 | fileTitle: 'Add/change a profile photo', 15 | name: 'Name', 16 | company: 'Company', 17 | website: 'Website', 18 | email: 'Email', 19 | button: 'Confirm Edits', 20 | }, 21 | } 22 | -------------------------------------------------------------------------------- /src/components/dialogs/UserActiveDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | title: 'Are you here?', 9 | text: 'Your session will be terminated after ', 10 | here: 'I\'m here!', 11 | }, 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/components/dialogs/wallet/EditSignaturesDialog/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'EditSignaturesDialog' 7 | 8 | export default { 9 | en: { 10 | dialogTitle: 'Required signatures', 11 | submit: 'update', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/components/forms/EditManagersBaseForm/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import validator from '@chronobank/core/models/validator' 7 | import ErrorList from 'utils/ErrorList' 8 | 9 | export default function (values) { 10 | return { 11 | managerAddress: new ErrorList() 12 | .add(validator.address(values.get('managerAddress'), true)) 13 | .getErrors(), 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/components/micros/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export BalanceSubscription from './BalanceSubscription/BalanceSubscription' 7 | -------------------------------------------------------------------------------- /src/components/voting/ActivatePollTopButton/ActivatePollTopButton.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .button { 9 | margin-left: 10px; 10 | button { 11 | display: flex; 12 | align-items: center; 13 | justify-content: center; 14 | border-radius: 21px; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/voting/EndPollTopButton/EndPollTopButton.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .button { 9 | margin-left: 10px; 10 | button { 11 | display: flex; 12 | align-items: center; 13 | justify-content: center; 14 | border-radius: 21px; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/voting/PollStatus/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'PollStatus' 7 | 8 | export default { 9 | en: { 10 | new: 'New', 11 | draft: 'Draft', 12 | published: 'Published', 13 | processing: 'Processing...', 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /src/components/voting/RemovePollTopButton/RemovePollTopButton.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .iconButton { 9 | margin-left: 10px; 10 | button { 11 | display: flex; 12 | align-items: center; 13 | justify-content: center; 14 | border-radius: 21px; 15 | width: 40px; 16 | height: 40px; 17 | } 18 | i { 19 | font-size: 30px; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/components/voting/VotingWarningWidgets/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'VotingWarningWidgets' 7 | 8 | export default { 9 | en: { 10 | warning1: 'Deposit TIME on ', 11 | warning2: 'Deposits page', 12 | warning3: ', if you want get access to this page.', 13 | emptyList: 'No votings created', 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /src/components/wallet/AddWalletWidget/AddCustomTokenTopButton/AddCustomTokenTopButton.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .buttonWithIcon { 9 | button { 10 | display: flex; 11 | align-items: center; 12 | justify-content: center; 13 | border-radius: 21px; 14 | i { 15 | margin-left: 5px; 16 | font-size: 21px; 17 | } 18 | span { 19 | margin-left: 10px; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/components/wallet/AddWalletWidget/AddWalletWidget.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import '~styles/partials/variables'; 6 | 7 | .root { 8 | } 9 | -------------------------------------------------------------------------------- /src/components/wallet/AddWalletWidget/CustomWalletForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'CustomWalletForm' 7 | 8 | export default { 9 | en: { 10 | name: 'Wallet name', 11 | addWallet: 'Add wallet', 12 | filter: 'Search tokens', 13 | }, 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/components/wallet/AddWalletWidget/MultisigWalletForm/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import * as validator from '@chronobank/core/models/validator' 8 | 9 | export default (values) => { 10 | const requiredSignatures = values.get('requiredSignatures') 11 | 12 | return { 13 | requiredSignatures: new ErrorList() 14 | .add(validator.required(requiredSignatures)) 15 | .add(validator.positiveNumber(requiredSignatures)) 16 | .getErrors(), 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/components/wallet/AddWalletWidget/StandardWalletForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'StandardWalletForm' 7 | 8 | export default { 9 | en: { 10 | title: 'Time Lock Settings', 11 | description: 'Make this wallet active for transactions on specific date and time.', 12 | name: 'Wallet name', 13 | date: 'Date', 14 | time: 'Time', 15 | addWallet: 'Add wallet', 16 | }, 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/components/wallet/AddWalletWidget/TimeLockedWalletForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TimeLockedWalletForm' 7 | 8 | export default { 9 | en: { 10 | name: 'Wallet name', 11 | title: 'Time Lock Settings', 12 | description: 'Make this wallet active for transactions on specific date and time.', 13 | date: 'Date', 14 | time: 'Time', 15 | addWallet: 'Add wallet', 16 | }, 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/components/wallet/AddWalletWidget/WalletSettingsForm/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'WalletSettingsForm' 7 | 8 | export default { 9 | en: { 10 | title: 'Wallet Settings', 11 | name: 'Wallet name', 12 | setName: 'setName', 13 | }, 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/components/wallet/OwnersList/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'OwnersList' 7 | 8 | export default { 9 | en: { 10 | you: 'You', 11 | floatText: 'Enter Owner’s Ethereum address', 12 | owner: 'Owner #%{index}', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/components/wallet/OwnersList/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import * as validator from '@chronobank/core/models/validator' 8 | 9 | export default (value, values, props) => { 10 | if (!value) { 11 | return 12 | } 13 | 14 | const owners = values.get('owners').valueSeq().toArray().map((item) => item.address) 15 | owners.push(props.account) 16 | 17 | return new ErrorList() 18 | .add(validator.address(value)) 19 | .add(validator.unique(value, owners)) 20 | .getErrors() 21 | } 22 | -------------------------------------------------------------------------------- /src/components/wallet/OwnersListWidget/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'OwnersListWidget' 7 | 8 | export default { 9 | en: { 10 | title: 'Wallet owners', 11 | signatures: '%{s1} signatures of %{s2} owners required to perform transactions', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/components/wallet/PendingTxWidget/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'PendingTxWidget' 7 | 8 | export default { 9 | en: { 10 | title: 'Pending Transactions', 11 | noTransfers: 'No transfers', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/components/wallet/SignaturesList/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'SignaturesList' 7 | 8 | export default { 9 | en: { 10 | ofOwners: 'of %{count} Owner(s)', 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /src/components/wallet/SubIconForWallet/SubIconForWallet.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import '~styles/partials/variables'; 6 | 7 | .root { 8 | width: 24px; 9 | height: 24px; 10 | background: $color-white; 11 | border-radius: 50%; 12 | } 13 | 14 | .icon { 15 | color: $button-color-2; 16 | font-size: 35px; 17 | line-height: 25px; 18 | } 19 | -------------------------------------------------------------------------------- /src/components/wallet/TokensListWidget/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TokensListWidget' 7 | 8 | export default { 9 | en: { 10 | title: 'Tokens (%{count})', 11 | more: 'More', 12 | less: 'Less', 13 | token: 'Token', 14 | amount: 'Amount', 15 | fiat: 'USD', 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /src/components/wallet/TransactionsListWidget/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TransactionsListWidget' 7 | 8 | export default { 9 | en: { 10 | transactions: 'Transactions', 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /src/components/wallet/TwoFAWarningWidget/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TwoFAWarningWidget' 7 | 8 | export default { 9 | en: { 10 | title: 'My 2FA Wallet Case', 11 | message: `We're enabling 2FA option for your account. This process may take more than 30 seconds. You can leave the page and we will send you a notification once the process is completed.`, 12 | button: 'continue', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/components/wallet/TwoFaConfirmModal/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'TwoFaConfirmModal' 7 | 8 | export default { 9 | en: { 10 | title: 'Enter Code', 11 | description: 'In order to complete the transaction open Google Authenticator and enter a code provided for your ChronoWallet Account.', 12 | authCode: 'Authentication code', 13 | confirm: 'confirm', 14 | confirmCodeWrong: 'Confirmation code incorrect. Please try again', 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /src/components/wallet/TwoFaConfirmModal/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import * as validator from '@chronobank/core/models/validator' 8 | 9 | export default function validate (values) { 10 | const confirmTokenErrors = new ErrorList() 11 | confirmTokenErrors.add(validator.confirm2FACode(values.get('confirmToken'))) 12 | 13 | return { 14 | confirmToken: confirmTokenErrors.getErrors(), 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/wallet/TwoFaEnableForm/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import * as validator from '@chronobank/core/models/validator' 8 | 9 | export default function validate (values) { 10 | const confirmTokenErrors = new ErrorList() 11 | confirmTokenErrors.add(validator.confirm2FACode(values.get('confirmToken'))) 12 | 13 | return { 14 | confirmToken: confirmTokenErrors.getErrors(), 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/wallet/WalletName/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'WalletName' 7 | 8 | export default { 9 | en: { 10 | twoFAWallet: 'My 2FA Wallet', 11 | sharedWallet: 'My Shared Wallet', 12 | lockedWallet: 'My Locked Wallet', 13 | customWallet: 'My custom Wallet', 14 | additionalStandardWallet: 'My additional standard Wallet', 15 | standardWallet: 'My %{symbol} Wallet', 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /src/i18n/en-tx-eos.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | transfer: { 8 | title: 'EOS Transfer', 9 | from: 'From', 10 | to: 'To', 11 | amount: 'Amount', 12 | memo: 'Memo', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/i18n/en-tx-general.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | transfer: { 8 | title: 'Transfer', 9 | params: { 10 | 'fee': 'Fee', 11 | 'feeBalance': 'Fee Balance', 12 | 'feeBalanceAfter': 'Fee Balance After', 13 | 'operation': 'Operation', 14 | 'amount': 'Amount', 15 | 'balance': 'Balance', 16 | 'balanceAfter': 'Balance After', 17 | 'hash': 'Hash', 18 | }, 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /src/i18n/en-tx-nem.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | transfer: { 8 | title: 'Nem Transfer', 9 | from: 'From', 10 | to: 'To', 11 | amount: 'Amount', 12 | fee: 'Fee', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/i18n/en-tx-waves.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | transfer: { 8 | title: 'Waves Transfer', 9 | from: 'From', 10 | to: 'To', 11 | amount: 'Amount', 12 | fee: 'Fee', 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /src/i18n/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import en from './en' 7 | 8 | export default { 9 | en: en, 10 | ru: { ...en, title: 'Рус' }, 11 | } 12 | -------------------------------------------------------------------------------- /src/layouts/Footer/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `Splash` 7 | 8 | export default { 9 | en: { 10 | copyright: 'Copyright ©2019 LaborX Australia Pty Ltd. All Rights Reserved.', 11 | subscribe: 'Subscribe', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/layouts/Footer/styles.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | emailField: { 8 | textAlign: 'left', 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /src/layouts/Footer/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import ErrorList from 'utils/ErrorList' 7 | import { required, email as emailValidator } from '@chronobank/core/models/validator' 8 | 9 | export default (values) => { 10 | 11 | const email = values.get('email') 12 | const emailErrors = new ErrorList() 13 | emailErrors.add(required(email)) 14 | emailErrors.add(emailValidator(email)) 15 | 16 | return { 17 | email: emailErrors.getErrors(), 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/layouts/Splash/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `Splash` 7 | 8 | export default { 9 | en: { 10 | copyright: 'Copyright ©2019 LaborX Australia Pty Ltd. All Rights Reserved.', 11 | subscribe: 'Subscribe', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/layouts/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import partials from 'layouts/partials/lang' 7 | 8 | export default { 9 | en: { 10 | partials: partials.en, 11 | }, 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/layouts/partials/AddWalletContent/AddWalletContent.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import React, { Component } from 'react' 7 | import AddWalletWidget from 'components/wallet/AddWalletWidget/AddWalletWidget' 8 | 9 | import './AddWalletContent.scss' 10 | 11 | export default class AddWalletContent extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/layouts/partials/AddWalletContent/AddWalletContent.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .root { 9 | display: flex; 10 | position: relative; 11 | flex-direction: column; 12 | align-items: center; 13 | background-color: $background-color; 14 | height: 100%; 15 | width: 100%; 16 | } 17 | -------------------------------------------------------------------------------- /src/layouts/partials/AddWalletContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'layouts.partials.AddWalletContent' 7 | 8 | export default { 9 | en: { 10 | }, 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/layouts/partials/AssetsContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | depositTime: 'Deposit TIME', 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /src/layouts/partials/BrandLogo/BrandLogo.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import React, { PureComponent } from 'react' 7 | 8 | import './BrandLogo.scss' 9 | 10 | export default class BrandLogo extends PureComponent { 11 | constructor (props) { 12 | super(props) 13 | } 14 | 15 | render () { 16 | return ( 17 |
18 | Chrono 19 | bank.io 20 |
21 | ) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/layouts/partials/BrandLogo/BrandLogo.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | 8 | .root { 9 | font-weight: 600; 10 | letter-spacing: -1.5px; 11 | text-shadow: $text-shadow-title; 12 | } 13 | 14 | .title1 { 15 | color: $color-band-0; 16 | } 17 | 18 | .title2 { 19 | color: $color-band-1; 20 | } 21 | -------------------------------------------------------------------------------- /src/layouts/partials/DepositContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.DepositsContent` 7 | export default { 8 | en: { 9 | warning: `You don't have deposit`, 10 | }, 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/layouts/partials/DepositsContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.DepositsContent` 7 | export default { 8 | en: { 9 | warning: `You don't have deposit`, 10 | }, 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/layouts/partials/DrawerMainMenu/MenuAssetsManagerMoreInfo/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.MenuAssetsManagerMoreInfo` 7 | 8 | export default { 9 | en: { 10 | title: 'My assets', 11 | assetPlatform: 'Asset Platform #%{num}', 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /src/layouts/partials/DrawerMainMenu/MenuTokenMoreInfo/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.MenuTokenMoreInfo` 7 | 8 | export default { 9 | en: { 10 | title: 'Token symbol', 11 | mainWalletTitle: 'My Main Wallet', 12 | copyAddress: 'Copy Address', 13 | showQR: 'Show QR Code', 14 | multisignatureWallet: 'Multisignature Wallet', 15 | networkTitle: 'Network', 16 | synced: 'Synced', 17 | syncing: 'Syncing', 18 | offline: 'Offline', 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /src/layouts/partials/DrawerMainMenu/MenuTokensList/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.MenuTokensList` 7 | 8 | export default { 9 | en: { 10 | mainAddress: 'My Main Wallet', 11 | notAvailable: 'Not Available', 12 | synced: 'Synced: %{network}', 13 | syncing: 'Syncing: %{network}', 14 | offline: 'Offline', 15 | defaultWallet: 'Default wallet address: ', 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /src/layouts/partials/DrawerMainMenu/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.DrawerMainMenu` 7 | 8 | export default { 9 | en: { 10 | logout: 'Logout', 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /src/layouts/partials/FooterPartial/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export default { 7 | en: { 8 | download: 'Download', 9 | subscribe: 'Subscribe', 10 | enterEmailForNews: 'Enter email for news', 11 | newsletter: 'Newsletter (coming soon)', 12 | contactUs: 'Contact us', 13 | technicalSupport: 'Technical support', 14 | generalInquiries: 'General inquiries', 15 | menu: 'Menu', 16 | socialNetwork: 'Social Network', 17 | }, 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/layouts/partials/LocaleDropDown/styles.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import variables from 'styles/themes/variables' 7 | 8 | export default { 9 | labelStyle: { 10 | verticalAlign: 'middle', 11 | margin: '-2px 0px 0px 0px', 12 | color: variables.colorWhite, 13 | fontSize: '16px', 14 | paddingLeft: '20px', 15 | paddingRight: '20px', 16 | }, 17 | iconStyle: { 18 | right: '4px', 19 | width: '20px', 20 | paddingRight: 0, 21 | paddingLeft: 0, 22 | }, 23 | } 24 | -------------------------------------------------------------------------------- /src/layouts/partials/NewPollContent/NewPollContent.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PollEditForm from 'components/voting/PollEditForm/PollEditForm' 7 | import React, { Component } from 'react' 8 | import './NewPollContent.scss' 9 | 10 | export default class NewPollContent extends Component { 11 | render () { 12 | return ( 13 |
14 |
15 | 16 |
17 |
18 | ) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/layouts/partials/NewPollContent/NewPollContent.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .root { 9 | width: 100%; 10 | } 11 | 12 | .content { 13 | margin: 0 80px; 14 | display: flex; 15 | justify-content: center; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /src/layouts/partials/NewPollContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | export const prefix = `layouts.partials.VotingContent` 6 | 7 | export default { 8 | en: { 9 | voting: 'Voting', 10 | allPolls: 'All polls', 11 | completedPolls: 'Completed polls', 12 | outdatedPolls: 'Outdated polls', 13 | inactivePolls: 'Inactive polls', 14 | pollsOngoing: 'Polls ongoing', 15 | newPoll: 'New Poll', 16 | warning1: 'Deposit TIME on ', 17 | warning2: 'Wallet page', 18 | warning3: ', if you want get access to this page.', 19 | }, 20 | } 21 | 22 | -------------------------------------------------------------------------------- /src/layouts/partials/NotificationContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.NotificationContent` 7 | 8 | export default { 9 | en: { 10 | currentTransactions: 'Current transactions', 11 | systemNotifications: 'System notifications', 12 | noTransactions: 'No transactions', 13 | noNotices: 'No notifications', 14 | newTx: 'New transaction', 15 | pending: 'Pending...', 16 | hash: 'Hash', 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /src/layouts/partials/PersistWrapper/PersistWrapper.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | .loadingMessage { 7 | text-align: center; 8 | padding: 40px 130px; 9 | color: #fff; 10 | font-size: 20px; 11 | font-weight: bold; 12 | line-height: 24px; 13 | margin-bottom: 45px; 14 | 15 | @media (max-width: 640px) { 16 | padding: 40px 20px; 17 | } 18 | 19 | 20 | } 21 | 22 | .loadingMessageHeader { 23 | line-height: 24px; 24 | font-weight: bold; 25 | font-size: 20px; 26 | color: #fff; 27 | margin-bottom: 50px; 28 | } 29 | -------------------------------------------------------------------------------- /src/layouts/partials/PollContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'layouts.partials.PollContent' 7 | 8 | export default { 9 | en: { 10 | duration: 'Duration', 11 | mostPopularOptionReceived: 'Most popular option received', 12 | of: 'of', 13 | percent: '(%{num}%)', 14 | castYourVoteBelow: 'Cast your vote below', 15 | daysLeft: '%{count} days left', 16 | descriptionHistory: 'Description History', 17 | }, 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/layouts/partials/ProfileContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.ProfileSidePanel` 7 | 8 | export default { 9 | en: { 10 | mainAddress: 'Main Address', 11 | }, 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/layouts/partials/SidePanel/SidePanel.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .left { 9 | left: 300px; 10 | width: 300px; 11 | right: auto; 12 | position: fixed; 13 | height: 100%; 14 | @include xs-only { 15 | left: 0; 16 | } 17 | } 18 | 19 | .notifications { 20 | width: 300px; 21 | right: 0; 22 | left: auto; 23 | position: absolute; 24 | height: 100vh; 25 | } 26 | 27 | .drawer { 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/layouts/partials/TwoFAContent/TwoFAContent.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import React, { Component } from 'react' 7 | import TwoFaEnableForm from 'components/wallet/TwoFaEnableForm/TwoFaEnableForm' 8 | import './TwoFAContent.scss' 9 | 10 | export default class TwoFAContent extends Component { 11 | static propTypes = {} 12 | 13 | render () { 14 | return ( 15 |
16 | 17 |
18 | ) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/layouts/partials/TwoFAContent/TwoFAContent.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | @import "~styles/partials/mixins"; 8 | 9 | .root { 10 | display: flex; 11 | position: relative; 12 | flex-direction: column; 13 | align-items: center; 14 | background-color: $background-color; 15 | height: 100%; 16 | width: 100%; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/layouts/partials/TwoFAContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.WalletsContent` 7 | 8 | export default { 9 | en: { 10 | }, 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/layouts/partials/VoteHistoryContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | export const prefix = `layouts.partials.VoteHistoryContent` 6 | 7 | export default { 8 | en: { 9 | title: 'Changes History', 10 | poll: 'Poll: ', 11 | dismissVote: 'dismiss my vote', 12 | }, 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/layouts/partials/VotingContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'layouts.partials.VotingContent' 7 | 8 | export default { 9 | en: { 10 | voting: 'Voting', 11 | allPolls: 'All polls', 12 | completedPolls: 'Completed polls', 13 | outdatedPolls: 'Outdated polls', 14 | inactivePolls: 'Inactive polls', 15 | pollsOngoing: 'Polls ongoing', 16 | newPoll: 'New Poll', 17 | ongoingPolls: 'Ongoing Polls', 18 | pastPolls: 'Past Polls', 19 | }, 20 | } 21 | 22 | -------------------------------------------------------------------------------- /src/layouts/partials/WalletContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = 'layouts.partials.WalletContent' 7 | 8 | export default { 9 | en: { 10 | transactions: 'Transactions', 11 | }, 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/layouts/partials/WalletsContent/WalletsContent.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | @import "~styles/partials/mixins"; 8 | 9 | .root { 10 | display: flex; 11 | position: relative; 12 | flex-direction: column; 13 | align-items: center; 14 | background-color: $background-color; 15 | height: 100%; 16 | width: 100%; 17 | 18 | @include xs-only { 19 | align-items: initial; 20 | width: auto; 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /src/layouts/partials/WalletsContent/lang.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const prefix = `layouts.partials.WalletsContent` 7 | 8 | export default { 9 | en: { 10 | }, 11 | } 12 | 13 | -------------------------------------------------------------------------------- /src/pages/lib/AddWalletPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import AddWalletContent from 'layouts/partials/AddWalletContent/AddWalletContent' 7 | import React, { Component } from 'react' 8 | 9 | import './WalletPage.scss' 10 | 11 | export default class WalletPage extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/AddWalletPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .root { 9 | overflow-x: hidden; 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/lib/AssetsPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import AssetsContent from 'layouts/partials/AssetsContent/AssetsContent' 7 | import React, { Component } from 'react' 8 | 9 | import './AssetsPage.scss' 10 | 11 | export default class AssetsPage extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/AssetsPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .root { 9 | } 10 | -------------------------------------------------------------------------------- /src/pages/lib/DepositPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import DepositContent from 'layouts/partials/DepositContent/DepositContent' 7 | import React, { PureComponent } from 'react' 8 | 9 | import './DepositPage.scss' 10 | 11 | export default class DepositPage extends PureComponent { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/DepositPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .root { 9 | } 10 | -------------------------------------------------------------------------------- /src/pages/lib/DepositsPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import DepositsContent from 'layouts/partials/DepositsContent/DepositsContent' 7 | import React, { PureComponent } from 'react' 8 | 9 | import './DepositsPage.scss' 10 | 11 | export default class DepositsPage extends PureComponent { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/DepositsPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | @import "~styles/partials/variables"; 6 | @import "~styles/partials/mixins"; 7 | 8 | .root { 9 | } 10 | -------------------------------------------------------------------------------- /src/pages/lib/NewPollPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import NewPollContent from 'layouts/partials/NewPollContent/NewPollContent' 7 | import React, { Component } from 'react' 8 | 9 | export default class NewPollPage extends Component { 10 | render () { 11 | return ( 12 |
13 | 14 |
15 | ) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/pages/lib/PollPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import PollContent from 'layouts/partials/PollContent/PollContent' 7 | import React, { Component } from 'react' 8 | 9 | export default class VotingPage extends Component { 10 | render () { 11 | return ( 12 |
13 | 14 |
15 | ) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/pages/lib/RewardsPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import RewardsContent from 'layouts/partials/RewardsContent/RewardsContent' 7 | import React, { Component } from 'react' 8 | 9 | import './RewardsPage.scss' 10 | 11 | export default class RewardsPage extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/RewardsPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | @import "~styles/partials/mixins"; 8 | 9 | .root {} 10 | -------------------------------------------------------------------------------- /src/pages/lib/TwoFAPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import TwoFAContent from 'layouts/partials/TwoFAContent/TwoFAContent' 7 | import React, { Component } from 'react' 8 | 9 | import './WalletPage.scss' 10 | 11 | export default class TwoFAPage extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/TwoFAPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | @import "~styles/partials/mixins"; 8 | 9 | .root { 10 | overflow-x: hidden; 11 | } 12 | -------------------------------------------------------------------------------- /src/pages/lib/VoteHistoryPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import VoteHistoryContent from 'layouts/partials/VoteHistoryContent/VoteHistoryContent' 7 | import React, { Component } from 'react' 8 | 9 | export default class VoteHistoryPage extends Component { 10 | render () { 11 | return ( 12 |
13 | 14 |
15 | ) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/pages/lib/VotingPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import VotingContent from 'layouts/partials/VotingContent/VotingContent' 7 | import React, { Component } from 'react' 8 | 9 | import './VotingPage.scss' 10 | 11 | export default class VotingPage extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/VotingPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | @import "~styles/partials/mixins"; 8 | 9 | .root { 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/lib/WalletPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import WalletContent from 'layouts/partials/WalletContent/WalletContent' 7 | import React, { Component } from 'react' 8 | 9 | import './WalletPage.scss' 10 | 11 | export default class WalletPage extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/WalletPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | @import "~styles/partials/mixins"; 8 | 9 | .root { 10 | overflow-x: hidden; 11 | 12 | @include xs-only { 13 | padding: 0 10px; 14 | } 15 | 16 | :global { 17 | .BrandPartial__root { 18 | padding-bottom: 100px; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/pages/lib/WalletsPage.jsx: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import WalletsContent from 'layouts/partials/WalletsContent/WalletsContent' 7 | import React, { Component } from 'react' 8 | 9 | import './WalletPage.scss' 10 | 11 | export default class WalletsPage extends Component { 12 | render () { 13 | return ( 14 |
15 | 16 |
17 | ) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/pages/lib/WalletsPage.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | @import "~styles/partials/variables"; 7 | @import "~styles/partials/mixins"; 8 | 9 | .root { 10 | overflow-x: hidden; 11 | } 12 | -------------------------------------------------------------------------------- /src/redux/drawer/actions.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import { 7 | DRAWER_HIDE, 8 | DRAWER_TOGGLE, 9 | } from './constants' 10 | 11 | export const drawerToggle = () => (dispatch) => { 12 | dispatch({ type: DRAWER_TOGGLE }) 13 | } 14 | export const drawerHide = () => (dispatch) => { 15 | dispatch({ type: DRAWER_HIDE }) 16 | } 17 | -------------------------------------------------------------------------------- /src/redux/drawer/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // TODO @ipavlenko: Implement a DrawerStack if there will be more than 1 drower 7 | export const DRAWER_TOGGLE = 'drawer/TOGGLE' 8 | export const DRAWER_HIDE = 'drawer/HIDE' 9 | 10 | -------------------------------------------------------------------------------- /src/redux/drawer/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import * as actions from './constants' 7 | 8 | const initialState = { 9 | isOpen: false, 10 | } 11 | 12 | export default (state = initialState, action) => { 13 | switch (action.type) { 14 | case actions.DRAWER_TOGGLE: 15 | return { 16 | ...action.payload, 17 | isOpen: !state.isOpen, 18 | } 19 | case actions.DRAWER_HIDE: 20 | return { 21 | ...action.payload, 22 | isOpen: false, 23 | } 24 | default: 25 | return state 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/redux/ducks.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import drawer from './drawer/reducer' 7 | import sides from './sides/reducer' 8 | import ui from './ui/reducer' 9 | 10 | const appReducers = { 11 | drawer, 12 | sides, 13 | ui, 14 | } 15 | 16 | export default appReducers 17 | -------------------------------------------------------------------------------- /src/redux/i18n/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | // eslint-disable-next-line import/prefer-default-export 7 | export const DUCK_I18N = 'i18n' 8 | 9 | export const LOAD_INIT = 'i18n/LOAD_INIT' 10 | export const I18N_LOADED = 'i18n/I18N_LOADED' 11 | -------------------------------------------------------------------------------- /src/redux/i18n/reducer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | import TokensCollection from '@chronobank/core/models/tokens/TokensCollection' 7 | import * as a from './constants' 8 | 9 | const initialState = new TokensCollection() 10 | 11 | export default (state = initialState, action) => { 12 | switch (action.type) { 13 | case a.LOAD_INIT: 14 | return state.isInited(action.isInited) 15 | case a.I18N_LOADED: 16 | return { ...state, list: action.payload.list } 17 | default: 18 | return state 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/redux/sides/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | import { DUCK_SIDES } from './constants' 6 | 7 | export const getSelectedBlockchain = (state) => { 8 | const { selectedBlockchain } = state.get(DUCK_SIDES) 9 | return selectedBlockchain 10 | } 11 | -------------------------------------------------------------------------------- /src/redux/ui/constants.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | export const DUCK_UI = 'ui' 7 | 8 | export const CHANGE_WALLET_VIEW = 'ui/CHANGE_WALLET_VIEW' 9 | export const SET_VISIBLE_COOKIES_BAR = 'ui/SET_VISIBLE_COOKIES_BAR' 10 | 11 | export const STORAGE_COOKIES_BAR = 'cookiesBar' 12 | -------------------------------------------------------------------------------- /src/redux/ui/selectors.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | import { createSelector } from 'reselect' 6 | import { DUCK_UI } from './constants' 7 | 8 | export const getValueSessionStorage = (key) => createSelector( 9 | (localStorage) => localStorage, 10 | (l) => l && l.getItem(key), 11 | ) 12 | 13 | export const UIDuckSelector = (state) => state.get(DUCK_UI) 14 | 15 | export const getCookiesBarVisible = createSelector( 16 | UIDuckSelector, 17 | (ui) => ui.isCookiesBarVisible, 18 | ) 19 | -------------------------------------------------------------------------------- /src/utils/common.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2017–2019, LaborX PTY 3 | * Licensed under the AGPL Version 3 license. 4 | */ 5 | 6 | /** 7 | * Get file name from url and local path 8 | */ 9 | export function getFileNameFromPath (path): string { 10 | // eslint-disable-next-line no-useless-escape 11 | return path && path.replace(/^.*[\\\/]/, '') || '' 12 | } 13 | -------------------------------------------------------------------------------- /src/~styles: -------------------------------------------------------------------------------- 1 | styles --------------------------------------------------------------------------------