Skip to content

🪙 Mock version of Phantom Wallet with added Brave Wallet. ONLY USE FOR TESTING!!!

Notifications You must be signed in to change notification settings

mitchcivic/phan-wallet-mock

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

phan-wallet-mock Build and Test

Mock version of Phantom Wallet. ONLY USE FOR TESTING!!!

export async function setupWithPayer(
  payer = Keypair.generate(),
  net = LOCALNET
): Promise<{ payer: Keypair; wallet: PhantomWalletMock }> {
  const wallet = PhantomWalletMock.create(net, payer, 'confirmed')

  // NOTE: no user approval needed
  await wallet.connect()
  const signature = await wallet.connection.requestAirdrop(
    payer.publicKey,
    LAMPORTS_PER_SOL * 5
  )
  // NOTE: no user approval needed here either
  await wallet.connection.confirmTransaction(signature)

  return { payer, wallet }
}

const { wallet, payer } = await setupWithPayer()

// NOTE: this only works when no actual Phantom extension is present as then `window.solana`
// cannot be overwritten
window.solana = wallet

assets/cypress.png

API

API documentation

How it Works

Unlike with real wallets phan-wallet-mock requires the user to provide a full Keypair which it uses under the hood to sign transactions and messages.

To do that it never requires the user's approval like the original does in order to ease testing.

THEREFORE MAKE SURE TO ONLY USE THIS WHILE RUNNING TESTS WITH FRESHLY GENERATED KEYPAIRS!!!

Apps using phan-wallet-mock

LICENSE

MIT

About

🪙 Mock version of Phantom Wallet with added Brave Wallet. ONLY USE FOR TESTING!!!

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 100.0%