Installing dependencies
Adding functionality to create tokens
-
Install dependencies
npm install @solana/spl-token @solana/web3.js -
Add polyfills to ensure a few
node apis
are available in the browsernpm install --save-dev vite-plugin-node-polyfills -
Add the plugin to your
vite.config.ts
file.import { defineConfig } from 'vite'import { nodePolyfills } from 'vite-plugin-node-polyfills'// https://vitejs.dev/config/export default defineConfig({plugins: [nodePolyfills(),],}) -
Add
onclick
handler inTokenLaunchpad.jsx
export function TokenLaunchpad() {function createToken() {const name = document.getElementById('name').value;const symbol = document.getElementById('symbol').value;const image = document.getElementById('image').value;const initialSupply = document.getElementById('initialSupply').value;}return <div style={{height: '100vh',display: 'flex',justifyContent: 'center',alignItems: 'center',flexDirection: 'column'}}><h1>Solana Token Launchpad</h1><input className='inputText' type='text' placeholder='Name'></input> <br /><input className='inputText' type='text' placeholder='Symbol'></input> <br /><input className='inputText' type='text' placeholder='Image URL'></input> <br /><input className='inputText' type='text' placeholder='Initial Supply'></input> <br /><button onClick={createToken} className='btn'>Create a token</button></div>}
Wallet adapter vs local wallet
Do you think we should use the createMint
function to create the token mint?
Like we did here - https://www.notion.so/Equivalent-code-in-JS-afed3cf599d64ee5bae4cc05a7b9f346 ?
const { createMint } = require('@solana/spl-token');const mint = await createMint( connection, payer, mintAuthority, null, 6, TOKEN_PROGRAM_ID);
Since we want an end user
to create their own token, pay for gas for creating that token, we need to ask THEIR WALLET
for approval to create a token. We CANT
create our own KeyPair
and create a token using it.