1
0
mirror of https://github.com/oceanprotocol/commons.git synced 2023-03-15 18:03:00 +01:00

burner as default, web3 message

This commit is contained in:
Jernej Pregelj 2019-07-09 16:02:23 +02:00 committed by Matthias Kretschmann
parent cce2a7fad3
commit 85304c2d09
Signed by: m
GPG Key ID: 606EEEF3C479A91F
3 changed files with 21 additions and 18 deletions

View File

@ -1,16 +1,15 @@
import React, { PureComponent } from 'react' import React, { PureComponent } from 'react'
import Account from '../atoms/Account' import Account from '../atoms/Account'
import Button from '../atoms/Button'
import AccountStatus from '../molecules/AccountStatus' import AccountStatus from '../molecules/AccountStatus'
import styles from './Web3message.module.scss' import styles from './Web3message.module.scss'
import { User } from '../../context' import { User } from '../../context'
import WalletSelector from './WalletSelector'
import content from '../../data/web3message.json' import content from '../../data/web3message.json'
export default class Web3message extends PureComponent { export default class Web3message extends PureComponent {
private message = ( private message = (
message: string, message: string,
account?: string, account?: string,
unlockAccounts?: () => any
) => ( ) => (
<div className={styles.message}> <div className={styles.message}>
{account ? ( {account ? (
@ -19,11 +18,7 @@ export default class Web3message extends PureComponent {
<div className={styles.warnings}> <div className={styles.warnings}>
<AccountStatus className={styles.status} /> <AccountStatus className={styles.status} />
<span dangerouslySetInnerHTML={{ __html: message }} />{' '} <span dangerouslySetInnerHTML={{ __html: message }} />{' '}
{unlockAccounts && ( <WalletSelector/>
<Button onClick={() => unlockAccounts()} link>
Unlock Account
</Button>
)}
</div> </div>
)} )}
</div> </div>
@ -33,14 +28,16 @@ export default class Web3message extends PureComponent {
const { const {
isOceanNetwork, isOceanNetwork,
isLogged, isLogged,
isBurner,
account, account,
unlockAccounts
} = this.context } = this.context
return !isOceanNetwork return !isOceanNetwork
? this.message(content.wrongNetwork) ? this.message(content.wrongNetwork)
: !isLogged : !isLogged
? this.message(content.noAccount, '', unlockAccounts) ? this.message(content.noAccount)
: isBurner
? this.message(content.burnerWallet)
: isLogged : isLogged
? this.message(content.hasAccount, account) ? this.message(content.hasAccount, account)
: null : null

View File

@ -10,6 +10,7 @@ import { BurnerWalletProvider } from './BurnerWalletProvider'
const POLL_ACCOUNTS = 1000 // every 1s const POLL_ACCOUNTS = 1000 // every 1s
const POLL_NETWORK = POLL_ACCOUNTS * 60 // every 1 min const POLL_NETWORK = POLL_ACCOUNTS * 60 // every 1 min
const DEFAULT_WEB3 = new Web3(new Web3.providers.HttpProvider(nodeUri)) // default web3
// taken from // taken from
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/web3/providers.d.ts // https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/web3/providers.d.ts
@ -47,6 +48,7 @@ declare global {
interface UserProviderState { interface UserProviderState {
isLogged: boolean isLogged: boolean
isBurner: boolean
isLoading: boolean isLoading: boolean
isOceanNetwork: boolean isOceanNetwork: boolean
account: string account: string
@ -71,6 +73,7 @@ export default class UserProvider extends PureComponent<{}, UserProviderState> {
this.setState( this.setState(
{ {
isLogged: true, isLogged: true,
isBurner: false,
web3 web3
}, },
() => { () => {
@ -86,6 +89,7 @@ export default class UserProvider extends PureComponent<{}, UserProviderState> {
this.setState( this.setState(
{ {
isLogged: true, isLogged: true,
isBurner: true,
web3 web3
}, },
() => { () => {
@ -96,6 +100,7 @@ export default class UserProvider extends PureComponent<{}, UserProviderState> {
public state = { public state = {
isLogged: false, isLogged: false,
isBurner: false,
isLoading: true, isLoading: true,
isOceanNetwork: false, isOceanNetwork: false,
balance: { balance: {
@ -103,7 +108,7 @@ export default class UserProvider extends PureComponent<{}, UserProviderState> {
ocn: 0 ocn: 0
}, },
network: '', network: '',
web3: new Web3(new Web3.providers.HttpProvider(nodeUri)), web3: DEFAULT_WEB3,
account: '', account: '',
ocean: {} as any, ocean: {} as any,
requestFromFaucet: () => requestFromFaucet(''), requestFromFaucet: () => requestFromFaucet(''),
@ -168,24 +173,25 @@ export default class UserProvider extends PureComponent<{}, UserProviderState> {
} }
break break
case 'BurnerWallet': case 'BurnerWallet':
const zerowalletProvider = new BurnerWalletProvider() const burnerWalletProvider = new BurnerWalletProvider()
if (await zerowalletProvider.isLogged()) { if (await burnerWalletProvider.isLogged()) {
await zerowalletProvider.startLogin() await burnerWalletProvider.startLogin()
this.setState( this.setState(
{ {
isLogged: true, isLogged: true,
web3: zerowalletProvider.getProvider() isBurner: true,
web3: burnerWalletProvider.getProvider()
}, },
() => { () => {
this.loadOcean() this.loadOcean()
} }
) )
} else { } else {
this.loadOcean() this.loginBurnerWallet()
} }
break break
default: default:
this.loadOcean() this.loginBurnerWallet()
break break
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"noweb3": "Not a Web3 Browser. For publishing and downloading an asset you need to <a href='https://docs.oceanprotocol.com/tutorials/metamask-setup/' target='_blank' rel='noopener noreferrer'>setup MetaMask</a> or use any other Web3-capable plugin or browser.", "noAccount": "No wallet selected. For publishing and downloading an asset you need to use one.",
"noAccount": "No accounts detected. For publishing and downloading an asset you need to unlock your Web3 account.", "burnerWallet": "You are using temporary burner wallet. Improve your security by migrating to Metamask",
"hasAccount": "", "hasAccount": "",
"wrongNetwork": "Not connected to Pacific network.<br />Please connect in MetaMask with Custom RPC <code>https://pacific.oceanprotocol.com</code>" "wrongNetwork": "Not connected to Pacific network.<br />Please connect in MetaMask with Custom RPC <code>https://pacific.oceanprotocol.com</code>"
} }