Add button to request airdrop

This commit is contained in:
Gary Wang 2020-07-31 21:15:21 -07:00
parent c54151662e
commit 4de78585f2
2 changed files with 42 additions and 6 deletions

View File

@ -3,15 +3,45 @@ import Container from '@material-ui/core/Container';
import BalancesList from './components/BalancesList'; import BalancesList from './components/BalancesList';
import Button from '@material-ui/core/Button'; import Button from '@material-ui/core/Button';
import { useWallet } from './utils/wallet'; import { useWallet } from './utils/wallet';
import { Account } from '@solana/web3.js'; import { Account, LAMPORTS_PER_SOL } from '@solana/web3.js';
import { createAndInitializeMint } from './utils/tokens'; import { createAndInitializeMint } from './utils/tokens';
import Grid from '@material-ui/core/Grid';
import { useIsProdNetwork } from './utils/connection';
export default function WalletPage() { export default function WalletPage() {
const wallet = useWallet(); const isProdNetwork = useIsProdNetwork();
return ( return (
<Container fixed maxWidth="md"> <Container fixed maxWidth="md">
<Grid container spacing={3}>
<Grid item xs={12}>
<BalancesList /> <BalancesList />
<br /> </Grid>
{isProdNetwork ? null : (
<Grid item xs={12}>
<DevnetButtons />
</Grid>
)}
</Grid>
</Container>
);
}
function DevnetButtons() {
const wallet = useWallet();
return (
<div style={{ display: 'flex' }}>
<Button
variant="contained"
color="primary"
onClick={() => {
wallet.connection
.requestAirdrop(wallet.account.publicKey, LAMPORTS_PER_SOL)
.then(console.log)
.catch(console.warn);
}}
>
Request Airdrop
</Button>
<Button <Button
variant="contained" variant="contained"
color="primary" color="primary"
@ -28,9 +58,10 @@ export default function WalletPage() {
.then(console.log) .then(console.log)
.catch(console.warn); .catch(console.warn);
}} }}
style={{ marginLeft: 24 }}
> >
Mint New Token Mint Test Token
</Button> </Button>
</Container> </div>
); );
} }

View File

@ -27,3 +27,8 @@ export function useConnectionConfig() {
let context = useContext(ConnectionContext); let context = useContext(ConnectionContext);
return { endpoint: context.endpoint, setEndpoint: context.setEndpoint }; return { endpoint: context.endpoint, setEndpoint: context.setEndpoint };
} }
export function useIsProdNetwork() {
const endpoint = useContext(ConnectionContext).endpoint;
return endpoint === clusterApiUrl('mainnet-beta');
}