2022-05-17 09:42:04 -07:00
|
|
|
# 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
|
2022-11-23 08:07:52 -08:00
|
|
|
solana-keygen pubkey target/deploy/anchor_vrf_parser-keypair.json
|
2022-05-17 09:42:04 -07:00
|
|
|
```
|
|
|
|
|
|
|
|
Note the program ID.
|
|
|
|
|
|
|
|
In the following files, replace the program ID from above:
|
|
|
|
|
|
|
|
- `programs/anchor-vrf-example/src/lib.rs`
|
|
|
|
- `Anchor.toml`
|
|
|
|
|
|
|
|
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
|
|
|
|
```
|