pong-it-sdk
v1.0.0
Published
TypeScript SDK for PONG-IT on Celo — stake, play, claim, boost
Maintainers
Readme
pong-it-sdk
TypeScript SDK for PONG-IT on Celo — stake, play, claim, boost.
Install
npm install pong-it-sdk viemQuick Start
import { PongClient } from 'pong-it-sdk';
import { createWalletClient, http, privateKeyToAccount } from 'viem';
import { celoSepolia } from 'viem/chains';
const account = privateKeyToAccount('0x...');
const walletClient = createWalletClient({ account, chain: celoSepolia, transport: http() });
const pong = new PongClient({ walletClient, chain: 'testnet' });
// Stake
const hash = await pong.stakeAsPlayer1({
roomCode: 'ABC123',
currency: 'cUSD',
amount: '5',
});
await pong.wait(hash);
// Claim
const signature = '0x...'; // from backend
await pong.claimPrize('ABC123', signature);
// Boost
await pong.checkIn();
await pong.gg('ABC123');
await pong.practiceMode();API
Constructor
new PongClient({
walletClient?: WalletClient; // required for writes, optional for reads
chain?: 'testnet' | 'mainnet'; // default: 'testnet'
transport?: Transport; // default: public Celo RPC
contractAddress?: string; // override auto-resolved
})Read
isRoomCodeAvailable(roomCode)→Promise<boolean>getMatch(roomCode)→Promise<Match>getMatchStatus(roomCode)→Promise<number>getBalance(address, currency)→Promise<string>backendOracle()→Promise<string>
Stake
approveToken({ currency, amount })→Promise<Hash>stakeAsPlayer1({ roomCode, currency, amount, feeCurrency? })→Promise<Hash>stakeAsPlayer2({ roomCode, currency, amount, feeCurrency? })→Promise<Hash>
Claim
claimPrize(roomCode, signature)→Promise<Hash>claimRefund(roomCode)→Promise<Hash>
Boost
checkIn()→Promise<Hash>claimDailyReward()→Promise<Hash>gg(roomCode)→Promise<Hash>practiceMode()→Promise<Hash>createChallenge(roomCode, currency, amount)→Promise<Hash>acceptChallenge(roomCode)→Promise<Hash>reportMatch(roomCode, score1, score2)→Promise<Hash>
Utility
wait(txHash)→Promise<TransactionReceipt>
License
MIT
