feat: merge api (#658)
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { Box } from '@material-ui/core'
|
||||
import { ReactElement, useContext } from 'react'
|
||||
import ExpandableList from '../../../components/ExpandableList'
|
||||
import ExpandableListItem from '../../../components/ExpandableListItem'
|
||||
@@ -7,19 +8,18 @@ import TroubleshootConnectionCard from '../../../components/TroubleshootConnecti
|
||||
import DepositModal from '../../../containers/DepositModal'
|
||||
import WithdrawModal from '../../../containers/WithdrawModal'
|
||||
import { useAccounting } from '../../../hooks/accounting'
|
||||
import { CheckState, Context as BeeContext } from '../../../providers/Bee'
|
||||
import { Context as BeeContext, CheckState } from '../../../providers/Bee'
|
||||
import { Context as SettingsContext } from '../../../providers/Settings'
|
||||
import PeerBalances from '../../accounting/PeerBalances'
|
||||
import { AccountNavigation } from '../AccountNavigation'
|
||||
import { Header } from '../Header'
|
||||
import { Box } from '@material-ui/core'
|
||||
|
||||
export function AccountChequebook(): ReactElement {
|
||||
const { status, nodeAddresses, chequebookAddress, chequebookBalance, settlements, peerBalances } =
|
||||
useContext(BeeContext)
|
||||
const { beeDebugApi } = useContext(SettingsContext)
|
||||
const { beeApi } = useContext(SettingsContext)
|
||||
|
||||
const { accounting, totalUncashed, isLoadingUncashed } = useAccounting(beeDebugApi, settlements, peerBalances)
|
||||
const { accounting, totalUncashed, isLoadingUncashed } = useAccounting(beeApi, settlements, peerBalances)
|
||||
|
||||
if (status.all === CheckState.ERROR) return <TroubleshootConnectionCard />
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import ExpandableListItemKey from '../../../components/ExpandableListItemKey'
|
||||
import { Loading } from '../../../components/Loading'
|
||||
import { SwarmButton } from '../../../components/SwarmButton'
|
||||
import TroubleshootConnectionCard from '../../../components/TroubleshootConnectionCard'
|
||||
import { CheckState, Context as BeeContext } from '../../../providers/Bee'
|
||||
import { Context as BeeContext, CheckState } from '../../../providers/Bee'
|
||||
import { Context as SettingsContext } from '../../../providers/Settings'
|
||||
import { Context as BalanceProvider } from '../../../providers/WalletBalance'
|
||||
import { ROUTES } from '../../../routes'
|
||||
|
||||
@@ -2,9 +2,9 @@ import { Box, Grid, Typography } from '@material-ui/core'
|
||||
import { Form, Formik } from 'formik'
|
||||
import { useSnackbar } from 'notistack'
|
||||
import { ReactElement, useContext, useState } from 'react'
|
||||
import { useNavigate } from 'react-router'
|
||||
import Check from 'remixicon-react/CheckLineIcon'
|
||||
import X from 'remixicon-react/CloseLineIcon'
|
||||
import { useNavigate } from 'react-router'
|
||||
import { DocumentationText } from '../../components/DocumentationText'
|
||||
import ExpandableListItemActions from '../../components/ExpandableListItemActions'
|
||||
import ExpandableListItemKey from '../../components/ExpandableListItemKey'
|
||||
@@ -30,7 +30,7 @@ const initialValues: FormValues = {
|
||||
}
|
||||
|
||||
export default function CreateNewFeed(): ReactElement {
|
||||
const { beeApi, beeDebugApi } = useContext(SettingsContext)
|
||||
const { beeApi } = useContext(SettingsContext)
|
||||
const { identities, setIdentities } = useContext(FeedsContext)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const { enqueueSnackbar } = useSnackbar()
|
||||
@@ -47,7 +47,7 @@ export default function CreateNewFeed(): ReactElement {
|
||||
return
|
||||
}
|
||||
const wallet = generateWallet()
|
||||
const stamps = await beeDebugApi?.getAllPostageBatch()
|
||||
const stamps = await beeApi.getAllPostageBatch()
|
||||
|
||||
if (!stamps || !stamps.length) {
|
||||
enqueueSnackbar(<span>No stamp available</span>, { variant: 'error' })
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { Box, Grid, Typography } from '@material-ui/core'
|
||||
import { useSnackbar } from 'notistack'
|
||||
import { ReactElement, useContext, useEffect, useState } from 'react'
|
||||
import X from 'remixicon-react/CloseLineIcon'
|
||||
import Bookmark from 'remixicon-react/BookmarkLineIcon'
|
||||
import { useNavigate, useParams } from 'react-router'
|
||||
import Bookmark from 'remixicon-react/BookmarkLineIcon'
|
||||
import X from 'remixicon-react/CloseLineIcon'
|
||||
import ExpandableListItemActions from '../../components/ExpandableListItemActions'
|
||||
import { HistoryHeader } from '../../components/HistoryHeader'
|
||||
import { SwarmButton } from '../../components/SwarmButton'
|
||||
import { SelectEvent, SwarmSelect } from '../../components/SwarmSelect'
|
||||
import TroubleshootConnectionCard from '../../components/TroubleshootConnectionCard'
|
||||
import { Context as BeeContext } from '../../providers/Bee'
|
||||
import { Context as IdentityContext, Identity } from '../../providers/Feeds'
|
||||
import { Identity, Context as IdentityContext } from '../../providers/Feeds'
|
||||
import { Context as SettingsContext } from '../../providers/Settings'
|
||||
import { Context as StampContext } from '../../providers/Stamps'
|
||||
import { ROUTES } from '../../routes'
|
||||
@@ -19,7 +19,7 @@ import { FeedPasswordDialog } from './FeedPasswordDialog'
|
||||
|
||||
export default function UpdateFeed(): ReactElement {
|
||||
const { identities, setIdentities } = useContext(IdentityContext)
|
||||
const { beeApi, beeDebugApi } = useContext(SettingsContext)
|
||||
const { beeApi } = useContext(SettingsContext)
|
||||
const { stamps, refresh } = useContext(StampContext)
|
||||
const { status } = useContext(BeeContext)
|
||||
const { hash } = useParams()
|
||||
@@ -66,7 +66,7 @@ export default function UpdateFeed(): ReactElement {
|
||||
async function onFeedUpdate(identity: Identity, password?: string) {
|
||||
setLoading(true)
|
||||
|
||||
if (!beeApi || !beeDebugApi || !selectedStamp) {
|
||||
if (!beeApi || !selectedStamp) {
|
||||
enqueueSnackbar(<span>Bee API unavailabe</span>, { variant: 'error' })
|
||||
setLoading(false)
|
||||
|
||||
@@ -74,7 +74,7 @@ export default function UpdateFeed(): ReactElement {
|
||||
}
|
||||
|
||||
try {
|
||||
await updateFeed(beeApi, beeDebugApi, identity, hash!, selectedStamp, password as string) // eslint-disable-line
|
||||
await updateFeed(beeApi, identity, hash!, selectedStamp, password as string) // eslint-disable-line
|
||||
persistIdentity(identities, identity)
|
||||
setIdentities([...identities])
|
||||
navigate(ROUTES.ACCOUNT_FEEDS_VIEW.replace(':uuid', identity.uuid))
|
||||
|
||||
@@ -10,7 +10,7 @@ import { Context as FileContext, defaultUploadOrigin } from '../../providers/Fil
|
||||
import { Context as SettingsContext } from '../../providers/Settings'
|
||||
import { ROUTES } from '../../routes'
|
||||
import { recognizeEnsOrSwarmHash, regexpEns } from '../../utils'
|
||||
import { determineHistoryName, HISTORY_KEYS, putHistory } from '../../utils/local-storage'
|
||||
import { HISTORY_KEYS, determineHistoryName, putHistory } from '../../utils/local-storage'
|
||||
import { ManifestJs } from '../../utils/manifest'
|
||||
import { FileNavigation } from './FileNavigation'
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ export function Upload(): ReactElement {
|
||||
const [showPasswordPrompt, setShowPasswordPrompt] = useState(false)
|
||||
|
||||
const { stamps, refresh } = useContext(StampsContext)
|
||||
const { beeApi, beeDebugApi } = useContext(SettingsContext)
|
||||
const { beeApi } = useContext(SettingsContext)
|
||||
const { files, setFiles, uploadOrigin, metadata, previewUri, previewBlob } = useContext(FileContext)
|
||||
const { identities, setIdentities } = useContext(IdentityContext)
|
||||
const { status } = useContext(BeeContext)
|
||||
@@ -125,9 +125,7 @@ export function Upload(): ReactElement {
|
||||
|
||||
setUploading(true)
|
||||
|
||||
if (beeDebugApi) {
|
||||
await waitUntilStampUsable(stamp.batchID, beeDebugApi)
|
||||
}
|
||||
await waitUntilStampUsable(stamp.batchID, beeApi)
|
||||
|
||||
beeApi
|
||||
.uploadFiles(stamp.batchID, fls, { indexDocument, deferred: true })
|
||||
@@ -137,13 +135,11 @@ export function Upload(): ReactElement {
|
||||
if (uploadOrigin.origin === 'UPLOAD') {
|
||||
navigate(ROUTES.HASH.replace(':hash', hash.reference), { replace: true })
|
||||
} else {
|
||||
updateFeed(beeApi, beeDebugApi, identity as Identity, hash.reference, stamp.batchID, password as string).then(
|
||||
() => {
|
||||
persistIdentity(identities, identity as Identity)
|
||||
setIdentities([...identities])
|
||||
navigate(ROUTES.ACCOUNT_FEEDS_VIEW.replace(':uuid', uploadOrigin.uuid as string), { replace: true })
|
||||
},
|
||||
)
|
||||
updateFeed(beeApi, identity as Identity, hash.reference, stamp.batchID, password as string).then(() => {
|
||||
persistIdentity(identities, identity as Identity)
|
||||
setIdentities([...identities])
|
||||
navigate(ROUTES.ACCOUNT_FEEDS_VIEW.replace(':uuid', uploadOrigin.uuid as string), { replace: true })
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
|
||||
@@ -12,16 +12,7 @@ import NodeInfoCard from './NodeInfoCard'
|
||||
import { WalletInfoCard } from './WalletInfoCard'
|
||||
|
||||
export default function Status(): ReactElement {
|
||||
const {
|
||||
debugApiReadiness,
|
||||
status,
|
||||
latestUserVersion,
|
||||
isLatestBeeVersion,
|
||||
latestBeeVersionUrl,
|
||||
topology,
|
||||
nodeInfo,
|
||||
chainId,
|
||||
} = useContext(BeeContext)
|
||||
const { status, topology, nodeInfo, chainId } = useContext(BeeContext)
|
||||
const { isDesktop, desktopUrl } = useContext(SettingsContext)
|
||||
const { beeDesktopVersion } = useBeeDesktop(isDesktop, desktopUrl)
|
||||
const { newBeeDesktopVersion } = useNewBeeDesktopVersion(isDesktop, desktopUrl, false)
|
||||
@@ -30,14 +21,10 @@ export default function Status(): ReactElement {
|
||||
<div>
|
||||
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'stretch', alignContent: 'stretch' }}>
|
||||
<NodeInfoCard />
|
||||
{debugApiReadiness && (
|
||||
<>
|
||||
<div style={{ width: '8px' }}></div>
|
||||
<WalletInfoCard />
|
||||
<div style={{ width: '8px' }}></div>
|
||||
<ChequebookInfoCard />
|
||||
</>
|
||||
)}
|
||||
<div style={{ width: '8px' }}></div>
|
||||
<WalletInfoCard />
|
||||
<div style={{ width: '8px' }}></div>
|
||||
<ChequebookInfoCard />
|
||||
</div>
|
||||
<div style={{ height: '16px' }} />
|
||||
<Map error={status.topology.checkState !== 'OK'} />
|
||||
@@ -65,29 +52,6 @@ export default function Status(): ReactElement {
|
||||
}
|
||||
/>
|
||||
)}
|
||||
<ExpandableListItem
|
||||
label="Bee version"
|
||||
value={
|
||||
<div>
|
||||
<a href="https://github.com/ethersphere/bee" rel="noreferrer" target="_blank">
|
||||
Bee
|
||||
</a>
|
||||
{` ${latestUserVersion ?? '-'} `}
|
||||
{latestUserVersion && !isDesktop && (
|
||||
<Button
|
||||
size="small"
|
||||
variant="outlined"
|
||||
href={latestBeeVersionUrl}
|
||||
disabled={isLatestBeeVersion}
|
||||
target="_blank"
|
||||
style={{ height: '26px' }}
|
||||
>
|
||||
{isLatestBeeVersion ? 'latest' : 'update'}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
}
|
||||
/>
|
||||
<ExpandableListItem label="Mode" value={nodeInfo?.beeMode} />
|
||||
{chainId !== null && <ExpandableListItem label="Blockchain network" value={chainIdToName(chainId)} />}
|
||||
</div>
|
||||
|
||||
@@ -10,9 +10,7 @@ import { getDesktopConfiguration, restartBeeNode, setJsonRpcInDesktop } from '..
|
||||
export default function SettingsPage(): ReactElement {
|
||||
const {
|
||||
apiUrl,
|
||||
apiDebugUrl,
|
||||
setApiUrl,
|
||||
setDebugApiUrl,
|
||||
lockedApiSettings,
|
||||
cors,
|
||||
dataDir,
|
||||
@@ -68,12 +66,6 @@ export default function SettingsPage(): ReactElement {
|
||||
onConfirm={setApiUrl}
|
||||
locked={lockedApiSettings || isDesktop}
|
||||
/>
|
||||
<ExpandableListItemInput
|
||||
label="Bee Debug API"
|
||||
value={apiDebugUrl}
|
||||
onConfirm={setDebugApiUrl}
|
||||
locked={lockedApiSettings || isDesktop}
|
||||
/>
|
||||
<ExpandableListItemInput
|
||||
label="Blockchain RPC URL"
|
||||
value={rpcProviderUrl}
|
||||
|
||||
@@ -49,7 +49,7 @@ export function PostageStampAdvancedCreation({ onFinished }: Props): ReactElemen
|
||||
const classes = useStyles()
|
||||
const { chainState } = useContext(BeeContext)
|
||||
const { refresh } = useContext(StampsContext)
|
||||
const { beeDebugApi } = useContext(SettingsContext)
|
||||
const { beeApi } = useContext(SettingsContext)
|
||||
|
||||
const [depthInput, setDepthInput] = useState<string>('')
|
||||
const [amountInput, setAmountInput] = useState<string>('')
|
||||
@@ -94,7 +94,7 @@ export function PostageStampAdvancedCreation({ onFinished }: Props): ReactElemen
|
||||
return
|
||||
}
|
||||
|
||||
if (!beeDebugApi) {
|
||||
if (!beeApi) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -107,8 +107,8 @@ export function PostageStampAdvancedCreation({ onFinished }: Props): ReactElemen
|
||||
immutableFlag: immutable,
|
||||
}
|
||||
|
||||
const batchId = await beeDebugApi.createPostageBatch(amount.toString(), depth, options)
|
||||
await waitUntilStampExists(batchId, beeDebugApi)
|
||||
const batchId = await beeApi.createPostageBatch(amount.toString(), depth, options)
|
||||
await waitUntilStampExists(batchId, beeApi)
|
||||
await refresh()
|
||||
onFinished()
|
||||
} catch (e) {
|
||||
|
||||
@@ -44,7 +44,7 @@ const marks = [
|
||||
export function PostageStampStandardCreation({ onFinished }: Props): ReactElement {
|
||||
const classes = useStyles()
|
||||
const { refresh } = useContext(StampsContext)
|
||||
const { beeDebugApi } = useContext(SettingsContext)
|
||||
const { beeApi } = useContext(SettingsContext)
|
||||
|
||||
const [depthInput, setDepthInput] = useState<number>(Utils.getDepthForCapacity(4))
|
||||
const [amountInput, setAmountInput] = useState<string>(Utils.getAmountForTtl(30))
|
||||
@@ -83,7 +83,7 @@ export function PostageStampStandardCreation({ onFinished }: Props): ReactElemen
|
||||
return
|
||||
}
|
||||
|
||||
if (!beeDebugApi) {
|
||||
if (!beeApi) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -96,8 +96,8 @@ export function PostageStampStandardCreation({ onFinished }: Props): ReactElemen
|
||||
immutableFlag: true,
|
||||
}
|
||||
|
||||
const batchId = await beeDebugApi.createPostageBatch(amount.toString(), depth, options)
|
||||
await waitUntilStampExists(batchId, beeDebugApi)
|
||||
const batchId = await beeApi.createPostageBatch(amount.toString(), depth, options)
|
||||
await waitUntilStampExists(batchId, beeApi)
|
||||
await refresh()
|
||||
onFinished()
|
||||
} catch (e) {
|
||||
|
||||
@@ -18,9 +18,9 @@ interface Props {
|
||||
}
|
||||
|
||||
function StampsTable({ postageStamps }: Props): ReactElement | null {
|
||||
const { beeDebugApi } = useContext(Context)
|
||||
const { beeApi } = useContext(Context)
|
||||
|
||||
if (!postageStamps || !beeDebugApi) {
|
||||
if (!postageStamps || !beeApi) {
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -53,13 +53,13 @@ function StampsTable({ postageStamps }: Props): ReactElement | null {
|
||||
<StampExtensionModal
|
||||
type="Topup"
|
||||
icon={<TimerFlashFill size="1rem" />}
|
||||
beeDebug={beeDebugApi}
|
||||
bee={beeApi}
|
||||
stamp={stamp.batchID}
|
||||
/>
|
||||
<StampExtensionModal
|
||||
type="Dilute"
|
||||
icon={<TimerFlashLine size="1rem" />}
|
||||
beeDebug={beeDebugApi}
|
||||
bee={beeApi}
|
||||
stamp={stamp.batchID}
|
||||
/>
|
||||
</ExpandableListItemActions>
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
import { useContext } from 'react'
|
||||
import DepositModal from '../../../containers/DepositModal'
|
||||
import type { ReactElement, ReactNode } from 'react'
|
||||
import { useContext } from 'react'
|
||||
import ExpandableList from '../../../components/ExpandableList'
|
||||
import ExpandableListItemKey from '../../../components/ExpandableListItemKey'
|
||||
import ExpandableListItemActions from '../../../components/ExpandableListItemActions'
|
||||
import ExpandableListItemKey from '../../../components/ExpandableListItemKey'
|
||||
import ExpandableListItemNote from '../../../components/ExpandableListItemNote'
|
||||
import StatusIcon from '../../../components/StatusIcon'
|
||||
import DepositModal from '../../../containers/DepositModal'
|
||||
import { CheckState, Context } from '../../../providers/Bee'
|
||||
|
||||
const ChequebookDeployFund = (): ReactElement | null => {
|
||||
const { status, isLoading, chequebookAddress } = useContext(Context)
|
||||
const { checkState, isEnabled } = status.chequebook
|
||||
const { checkState: debugApiCheckState } = status.debugApiConnection
|
||||
|
||||
if (!isEnabled || debugApiCheckState === CheckState.ERROR) return null
|
||||
if (!isEnabled) {
|
||||
return null
|
||||
}
|
||||
|
||||
let text: ReactNode
|
||||
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
import MuiAlert from '@material-ui/lab/Alert'
|
||||
import { ReactElement, useContext } from 'react'
|
||||
import CodeBlockTabs from '../../../components/CodeBlockTabs'
|
||||
import ExpandableList from '../../../components/ExpandableList'
|
||||
import ExpandableListItem from '../../../components/ExpandableListItem'
|
||||
import ExpandableListItemInput from '../../../components/ExpandableListItemInput'
|
||||
import ExpandableListItemNote from '../../../components/ExpandableListItemNote'
|
||||
import StatusIcon from '../../../components/StatusIcon'
|
||||
import { CheckState, Context } from '../../../providers/Bee'
|
||||
import { Context as SettingsContext } from '../../../providers/Settings'
|
||||
|
||||
export default function NodeConnectionCheck(): ReactElement | null {
|
||||
const { status, isLoading } = useContext(Context)
|
||||
const { setDebugApiUrl, apiDebugUrl, isDesktop } = useContext(SettingsContext)
|
||||
const { checkState, isEnabled } = status.debugApiConnection
|
||||
|
||||
if (!isEnabled) return null
|
||||
|
||||
return (
|
||||
<ExpandableList
|
||||
label={
|
||||
<>
|
||||
<StatusIcon checkState={checkState} isLoading={isLoading} /> Connection to Bee Debug API
|
||||
</>
|
||||
}
|
||||
>
|
||||
<ExpandableListItemNote>
|
||||
{checkState === CheckState.OK
|
||||
? 'The connection to the Bee node debug API has been successful'
|
||||
: 'Could not connect to your Bee node debug API.'}
|
||||
</ExpandableListItemNote>
|
||||
<ExpandableListItemInput label="Bee Debug API" value={apiDebugUrl} onConfirm={setDebugApiUrl} />
|
||||
|
||||
{checkState === CheckState.ERROR && !isDesktop && (
|
||||
<ExpandableList level={1} label="Troubleshoot">
|
||||
<ExpandableListItem
|
||||
label={
|
||||
<ol>
|
||||
<li>Check the status of your node by running the below command to see if your node is running.</li>
|
||||
<CodeBlockTabs showLineNumbers linux={`sudo systemctl status bee`} mac={`brew services list`} />
|
||||
<li>
|
||||
If your node is running, check your firewall settings to make sure that port 1635 (or your custom
|
||||
specified port) is bound to localhost. If your node is not running try executing the below command to
|
||||
start your bee node
|
||||
</li>
|
||||
<MuiAlert
|
||||
style={{ marginTop: '10px', marginBottom: '10px' }}
|
||||
elevation={6}
|
||||
variant="filled"
|
||||
severity="error"
|
||||
>
|
||||
Your debug node API should never be completely open to the internet. If you want to connect remotely,
|
||||
make sure your firewall settings are set to only allow specific trusted IP addresses and block all
|
||||
other ports. A simple google search for "what is my ip" will show you your computers public
|
||||
IP address to allow.
|
||||
</MuiAlert>
|
||||
<CodeBlockTabs
|
||||
showLineNumbers
|
||||
linux={`sudo systemctl start bee`}
|
||||
mac={`brew services start swarm-bee`}
|
||||
/>
|
||||
<li>Run the commands to validate your node is running and see the log output.</li>
|
||||
<CodeBlockTabs
|
||||
showLineNumbers
|
||||
linux={`sudo systemctl status bee \njournalctl --lines=100 --follow --unit bee`}
|
||||
mac={`brew services list \ntail -f /usr/local/var/log/swarm-bee/bee.log`}
|
||||
/>
|
||||
<li>
|
||||
Lastly, check your nodes configuration settings to validate the debug API is enabled and the Cross
|
||||
Origin Resource Sharing (CORS) setting is configured to allow your host. Config parameter{' '}
|
||||
<strong>debug-api-enable</strong> must be set to <strong>true</strong> and{' '}
|
||||
<strong>cors-allowed-origins</strong> must be set to your host domain or IP (you can also use the
|
||||
wildcard <code>{"cors-allowed-origins: ['*']"}</code>). If edits are made to the configuration run the
|
||||
restart command below for changes to take effect.
|
||||
</li>
|
||||
<CodeBlockTabs
|
||||
showLineNumbers
|
||||
linux={`sudo vi /etc/bee/bee.yaml\nsudo systemctl restart bee`}
|
||||
mac={`sudo vi /usr/local/etc/swarm-bee/bee.yaml \nbrew services restart swarm-bee`}
|
||||
/>
|
||||
</ol>
|
||||
}
|
||||
/>
|
||||
</ExpandableList>
|
||||
)}
|
||||
</ExpandableList>
|
||||
)
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
import { ReactElement, useContext } from 'react'
|
||||
import ExpandableList from '../../../components/ExpandableList'
|
||||
import ExpandableListItemKey from '../../../components/ExpandableListItemKey'
|
||||
import ExpandableListItemNote from '../../../components/ExpandableListItemNote'
|
||||
import StatusIcon from '../../../components/StatusIcon'
|
||||
import { CheckState, Context } from '../../../providers/Bee'
|
||||
|
||||
export default function EthereumConnectionCheck(): ReactElement | null {
|
||||
const { status, isLoading, nodeAddresses } = useContext(Context)
|
||||
const { checkState, isEnabled } = status.blockchainConnection
|
||||
|
||||
if (!isEnabled) return null
|
||||
|
||||
return (
|
||||
<ExpandableList
|
||||
label={
|
||||
<>
|
||||
<StatusIcon checkState={checkState} isLoading={isLoading} /> Connection to Blockchain
|
||||
</>
|
||||
}
|
||||
>
|
||||
<ExpandableListItemNote>
|
||||
{checkState === CheckState.OK ? (
|
||||
'Your node is connected to the xDai blockchain'
|
||||
) : (
|
||||
<>
|
||||
Your Bee node must have access to the xDai blockchain, so that it can interact and deploy your chequebook
|
||||
contract. You can run{' '}
|
||||
<a href="https://www.xdaichain.com/" rel="noreferrer" target="_blank">
|
||||
your own xDai node
|
||||
</a>
|
||||
, or use a provider instead - we recommend{' '}
|
||||
<a href="https://getblock.io/" rel="noreferrer" target="_blank">
|
||||
Getblock
|
||||
</a>
|
||||
. By default, Bee expects a local node at http://localhost:8545. To use a provider instead, simply change
|
||||
the <strong>blockchain-rpc-endpoint</strong> in your configuration file.
|
||||
</>
|
||||
)}
|
||||
</ExpandableListItemNote>
|
||||
{nodeAddresses?.ethereum && <ExpandableListItemKey label="Ethereum Address" value={nodeAddresses?.ethereum} />}
|
||||
</ExpandableList>
|
||||
)
|
||||
}
|
||||
@@ -1,16 +1,17 @@
|
||||
import { ReactElement, ReactNode, useContext } from 'react'
|
||||
import ExpandableList from '../../../components/ExpandableList'
|
||||
import ExpandableListItemNote from '../../../components/ExpandableListItemNote'
|
||||
import TopologyStats from '../../../components/TopologyStats'
|
||||
import StatusIcon from '../../../components/StatusIcon'
|
||||
import TopologyStats from '../../../components/TopologyStats'
|
||||
import { CheckState, Context } from '../../../providers/Bee'
|
||||
|
||||
export default function PeerConnection(): ReactElement | null {
|
||||
const { status, isLoading, topology } = useContext(Context)
|
||||
const { isEnabled, checkState } = status.topology
|
||||
const { checkState: debugApiCheckState } = status.debugApiConnection
|
||||
|
||||
if (!isEnabled || debugApiCheckState === CheckState.ERROR) return null
|
||||
if (!isEnabled) {
|
||||
return null
|
||||
}
|
||||
|
||||
let text: ReactNode
|
||||
switch (checkState) {
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
import { ReactElement, useContext } from 'react'
|
||||
import CodeBlockTabs from '../../../components/CodeBlockTabs'
|
||||
import ExpandableList from '../../../components/ExpandableList'
|
||||
import ExpandableListItem from '../../../components/ExpandableListItem'
|
||||
import ExpandableListItemNote from '../../../components/ExpandableListItemNote'
|
||||
import StatusIcon from '../../../components/StatusIcon'
|
||||
import { CheckState, Context } from '../../../providers/Bee'
|
||||
|
||||
export default function VersionCheck(): ReactElement | null {
|
||||
const { status, isLoading, latestUserVersion, latestPublishedVersion, latestBeeVersionUrl } = useContext(Context)
|
||||
const { isEnabled, checkState } = status.version
|
||||
|
||||
if (!isEnabled) return null
|
||||
|
||||
return (
|
||||
<ExpandableList
|
||||
label={
|
||||
<>
|
||||
<StatusIcon checkState={checkState} isLoading={isLoading} /> Bee Version
|
||||
</>
|
||||
}
|
||||
>
|
||||
<ExpandableListItemNote>
|
||||
{checkState === CheckState.OK ? (
|
||||
'You are running the latest version of Bee.'
|
||||
) : (
|
||||
<>
|
||||
Your Bee version is out of date. Please update to the{' '}
|
||||
<a href={latestBeeVersionUrl} rel="noreferrer" target="_blank">
|
||||
latest
|
||||
</a>{' '}
|
||||
before continuing. Rerun the installation script below to upgrade. For more information please see the{' '}
|
||||
<a href="https://docs.ethswarm.org/docs/installation/manual#upgrading-bee" rel="noreferrer" target="_blank">
|
||||
Docs
|
||||
</a>
|
||||
.
|
||||
<CodeBlockTabs
|
||||
showLineNumbers
|
||||
linux={`bee version\nwget https://github.com/ethersphere/bee/releases/download/${latestPublishedVersion}/bee_${latestPublishedVersion}_amd64.deb\nsudo dpkg -i bee_${latestPublishedVersion}_amd64.deb`}
|
||||
mac={`bee version\nbrew tap ethersphere/tap\nbrew install swarm-bee\nbrew services start swarm-bee`}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</ExpandableListItemNote>
|
||||
<ExpandableListItem label="Your Version" value={latestUserVersion || '-'} />
|
||||
<ExpandableListItem label="Latest Version" value={latestPublishedVersion || '-'} />
|
||||
</ExpandableList>
|
||||
)
|
||||
}
|
||||
@@ -1,12 +1,8 @@
|
||||
import { Context } from '../../providers/Settings'
|
||||
import { ReactElement, useContext } from 'react'
|
||||
|
||||
import DebugConnectionCheck from './SetupSteps/DebugConnectionCheck'
|
||||
import { Context } from '../../providers/Settings'
|
||||
import ChequebookDeployFund from './SetupSteps/ChequebookDeployFund'
|
||||
import DesktopConnection from './SetupSteps/DesktopConnectionCheck'
|
||||
import NodeConnectionCheck from './SetupSteps/NodeConnectionCheck'
|
||||
import VersionCheck from './SetupSteps/VersionCheck'
|
||||
import EthereumConnectionCheck from './SetupSteps/EthereumConnectionCheck'
|
||||
import ChequebookDeployFund from './SetupSteps/ChequebookDeployFund'
|
||||
import PeerConnection from './SetupSteps/PeerConnection'
|
||||
|
||||
export default function NodeSetupWorkflow(): ReactElement {
|
||||
@@ -16,9 +12,6 @@ export default function NodeSetupWorkflow(): ReactElement {
|
||||
<div>
|
||||
{isDesktop && <DesktopConnection />}
|
||||
<NodeConnectionCheck />
|
||||
<DebugConnectionCheck />
|
||||
{!isDesktop && <VersionCheck />}
|
||||
<EthereumConnectionCheck />
|
||||
<ChequebookDeployFund />
|
||||
<PeerConnection />
|
||||
</div>
|
||||
|
||||
@@ -13,13 +13,14 @@ import { Loading } from '../../components/Loading'
|
||||
import { SwarmButton } from '../../components/SwarmButton'
|
||||
import { SwarmDivider } from '../../components/SwarmDivider'
|
||||
import { SwarmTextInput } from '../../components/SwarmTextInput'
|
||||
import { BzzToken, BZZ_DECIMAL_PLACES } from '../../models/BzzToken'
|
||||
import { BZZ_DECIMAL_PLACES, BzzToken } from '../../models/BzzToken'
|
||||
import { DaiToken } from '../../models/DaiToken'
|
||||
import { Context as BeeContext } from '../../providers/Bee'
|
||||
import { Context as SettingsContext } from '../../providers/Settings'
|
||||
import { Context as BalanceProvider } from '../../providers/WalletBalance'
|
||||
import { ROUTES } from '../../routes'
|
||||
import { sleepMs } from '../../utils'
|
||||
import { SwapError, isSwapError, wrapWithSwapError } from '../../utils/SwapError'
|
||||
import {
|
||||
getBzzPriceAsDai,
|
||||
getDesktopConfiguration,
|
||||
@@ -28,7 +29,6 @@ import {
|
||||
upgradeToLightNode,
|
||||
} from '../../utils/desktop'
|
||||
import { Rpc } from '../../utils/rpc'
|
||||
import { isSwapError, SwapError, wrapWithSwapError } from '../../utils/SwapError'
|
||||
import { TopUpProgressIndicator } from './TopUpProgressIndicator'
|
||||
|
||||
const MINIMUM_XDAI = '0.1'
|
||||
|
||||
@@ -13,7 +13,7 @@ import { HistoryHeader } from '../../components/HistoryHeader'
|
||||
import { Loading } from '../../components/Loading'
|
||||
import { SwarmButton } from '../../components/SwarmButton'
|
||||
import TroubleshootConnectionCard from '../../components/TroubleshootConnectionCard'
|
||||
import { CheckState, Context as BeeContext } from '../../providers/Bee'
|
||||
import { Context as BeeContext, CheckState } from '../../providers/Bee'
|
||||
import { Context as SettingsContext } from '../../providers/Settings'
|
||||
import { Context as BalanceProvider } from '../../providers/WalletBalance'
|
||||
import { ROUTES } from '../../routes'
|
||||
|
||||
Reference in New Issue
Block a user