test.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import * as anchor from '@coral-xyz/anchor';
  2. import { Keypair } from '@solana/web3.js';
  3. import type { CreateToken } from '../target/types/create_token';
  4. describe('Create Tokens', () => {
  5. const provider = anchor.AnchorProvider.env();
  6. anchor.setProvider(provider);
  7. const payer = provider.wallet as anchor.Wallet;
  8. const program = anchor.workspace.CreateToken as anchor.Program<CreateToken>;
  9. const metadata = {
  10. name: 'Solana Gold',
  11. symbol: 'GOLDSOL',
  12. uri: 'https://raw.githubusercontent.com/solana-developers/program-examples/new-examples/tokens/tokens/.assets/spl-token.json',
  13. };
  14. it('Create an SPL Token!', async () => {
  15. // Generate new keypair to use as address for mint account.
  16. const mintKeypair = new Keypair();
  17. // SPL Token default = 9 decimals
  18. const transactionSignature = await program.methods
  19. .createTokenMint(9, metadata.name, metadata.symbol, metadata.uri)
  20. .accounts({
  21. payer: payer.publicKey,
  22. mintAccount: mintKeypair.publicKey,
  23. })
  24. .signers([mintKeypair])
  25. .rpc();
  26. console.log('Success!');
  27. console.log(` Mint Address: ${mintKeypair.publicKey}`);
  28. console.log(` Transaction Signature: ${transactionSignature}`);
  29. });
  30. it('Create an NFT!', async () => {
  31. // Generate new keypair to use as address for mint account.
  32. const mintKeypair = new Keypair();
  33. // NFT default = 0 decimals
  34. const transactionSignature = await program.methods
  35. .createTokenMint(0, metadata.name, metadata.symbol, metadata.uri)
  36. .accounts({
  37. payer: payer.publicKey,
  38. mintAccount: mintKeypair.publicKey,
  39. })
  40. .signers([mintKeypair])
  41. .rpc();
  42. console.log('Success!');
  43. console.log(` Mint Address: ${mintKeypair.publicKey}`);
  44. console.log(` Transaction Signature: ${transactionSignature}`);
  45. });
  46. });