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:
parent
cce2a7fad3
commit
85304c2d09
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user