Appearance
Quick Start
This guide will help you set up a project using the YouBet SDK with Vite, React, and TypeScript.
Prerequisites
Make sure you have the following installed:
- Node.js
- pnpm
Step 1: Create a New Vite Project
First, create a new Vite project with React and TypeScript.
bash
pnpm create vite youbet-app --template react-ts
cd youbet-app
Step 2: Install the Youbet SDK
Install the Youbet SDK using pnpm.
bash
pnpm add youbet-sdk
Step 3: Initialize the SDK
Create a new file src/sdk.ts
and initialize the SDK.
typescript
// src/sdk.ts
import { SDK, NetworkType } from 'youbet-sdk';
const sdk = new SDK({
privateKey: 'your-private-key', // optional
networkType: NetworkType.Mainnet // or NetworkType.Testnet
});
export default sdk;
Step 4: Use SDK Methods in Your React Components
Now you can use the SDK methods in your React components. Here is an example of how to use some of the Client module methods.
typescript
// src/App.tsx
import React, { useEffect, useState } from 'react';
import sdk from './sdk';
const App: React.FC = () => {
const [owner, setOwner] = useState<string>('');
const [goals, setGoals] = useState<any[]>([]);
useEffect(() => {
const fetchOwner = async () => {
const contractOwner = await sdk.client.getContractOwner();
setOwner(contractOwner);
};
const fetchGoals = async () => {
const allGoals = await sdk.client.getAllGoals();
setGoals(allGoals);
};
fetchOwner();
fetchGoals();
}, []);
return (
<div>
<h1>Contract Owner: {owner}</h1>
<h2>All Goals:</h2>
<ul>
{goals.map((goal, index) => (
<li key={index}>{goal.name}</li>
))}
</ul>
</div>
);
};
export default App;
Step 5: Using Contract Module Methods
You can also use the Contract module methods to interact with the contract. Here's an example of how to create a new goal.
typescript
// src/CreateGoal.tsx
import React, { useState } from 'react';
import sdk from './sdk';
const CreateGoal: React.FC = () => {
const [name, setName] = useState<string>('');
const [description, setDescription] = useState<string>('');
const [stake, setStake] = useState<number>(0);
const [taskCount, setTaskCount] = useState<number>(0);
const [goalInfo, setGoalInfo] = useState<any>(null);
const createGoal = async () => {
const newGoal = await sdk.contract.createGoal(name, description, stake, taskCount);
setGoalInfo(newGoal);
};
return (
<div>
<h2>Create a New Goal</h2>
<input
type="text"
placeholder="Name"
value={name}
onChange={(e) => setName(e.target.value)}
/>
<input
type="text"
placeholder="Description"
value={description}
onChange={(e) => setDescription(e.target.value)}
/>
<input
type="number"
placeholder="Required Stake"
value={stake}
onChange={(e) => setStake(Number(e.target.value))}
/>
<input
type="number"
placeholder="Task Count"
value={taskCount}
onChange={(e) => setTaskCount(Number(e.target.value))}
/>
<button onClick={createGoal}>Create Goal</button>
{goalInfo && (
<div>
<h3>Goal Created:</h3>
<p>Name: {goalInfo.name}</p>
<p>Description: {goalInfo.description}</p>
<p>Stake: {goalInfo.requiredStake}</p>
<p>Task Count: {goalInfo.taskCount}</p>
</div>
)}
</div>
);
};
export default CreateGoal;
Step 6: Run Your Project
Start your Vite development server.
bash
pnpm run dev
Open your browser and navigate to the URL provided by Vite (typically http://localhost:3000
). You should now see your React app using the YouBet SDK.
Learn More
For more detailed information, refer to the YouBet SDK documentation.
Now you have a basic setup to start using the YouBet SDK with Vite, React, and TypeScript. Happy coding!