# Switchboard VRF Cross Program Invocation Example

Example repo

## Setup

```
npm i
find secrets/payer-keypair.json || solana-keygen new -s --no-bip39-passphrase --outfile secrets/payer-keypair.json
solana airdrop 1 secrets/payer-keypair.json
solana airdrop 1 secrets/payer-keypair.json
solana airdrop 1 secrets/payer-keypair.json
anchor build
solana-keygen pubkey target/deploy/anchor_vrf_example-keypair.json
```

Note the program ID.

In the following files, replace the program ID from above:

- `programs/anchor-vrf-example/src/lib.rs`
- `Anchor.toml`
- `solita.ts`

Rebuild the program `anchor build`.

## Devnet Testing

**NOTE:** Need to re-write test so use switchboard permissionless devnet queue

In `Anchor.toml`, set the cluster to devnet.

```toml
[provider]
cluster = "devnet"
wallet = "secrets/payer-keypair.json"
```

Then deploy and run the tests.

```
anchor test
```

## Localnet Testing

In `Anchor.toml`, set the cluster to localnet.

```toml
[provider]
cluster = "localnet"
wallet = "secrets/payer-keypair.json"
```

Create a localnet switchboard environment

```
npx sbv2 localnet:env --keypair secrets/payer-keypair.json
```

In a new shell, start the local validator using the script output from above

```
chmod +x ./start-local-validator.sh
./start-local-validator.sh
```

In a new shell, start the local Switchboard oracle

```
chmod +x ./start-oracle.sh
CLUSTER=localnet ./start-oracle.sh
```

Run the anchor test using the already running localnet validator

```
anchor test --skip-local-validator
```
