Yunhao Zhang b6fcb03d6b [solana] A working solana receiver program (#632) 2 years ago
..
cli b6fcb03d6b [solana] A working solana receiver program (#632) 2 years ago
migrations 16caff1b04 [solana] Start to implement the solana receiver contract (#557) 2 years ago
programs b6fcb03d6b [solana] A working solana receiver program (#632) 2 years ago
.gitignore 16caff1b04 [solana] Start to implement the solana receiver contract (#557) 2 years ago
.prettierignore 16caff1b04 [solana] Start to implement the solana receiver contract (#557) 2 years ago
Anchor.toml b6fcb03d6b [solana] A working solana receiver program (#632) 2 years ago
Cargo.lock b6fcb03d6b [solana] A working solana receiver program (#632) 2 years ago
Cargo.toml 16caff1b04 [solana] Start to implement the solana receiver contract (#557) 2 years ago
README.md b6fcb03d6b [solana] A working solana receiver program (#632) 2 years ago
program_address.json b6fcb03d6b [solana] A working solana receiver program (#632) 2 years ago

README.md

Solana program for receiving price VAA from Pythnet

The program under cli receives a VAA string from the shell, verifies the VAA with wormhole, posts the VAA on solana and then invokes the receiver program under programs. The receiver program verifies that the VAA comes from wormhole (through the owner function in state.rs) and deserializes the price information (in decode_posted_vaa function of lib.rs).

# Generate the program key
# and use the key to replace the following two places
#     "pyth_solana_receiver" in Anchor.toml
#     "declare_id!()" in programs/solana-receiver/src/lib.rs
> solana-keygen new -o program_address.json

# Build and deploy the receiver program
> anchor build
> anchor run deploy

# Build and test the cli program
> anchor run cli_build
> anchor run cli_test
# Example output
...
[1/5] Decode the VAA
[2/5] Get wormhole guardian set configuration
[3/5] Invoke wormhole on solana to verify the VAA
Transaction successful : 3VbrqQBCf1RsNLxrcvxN3aTb5fZRht4n8XDUVPM8NKniRmo84NZQUu5iFw5groAQgQYox3YCqaMjKc2WTpPU1yqV
[4/5] Post the VAA data onto a solana account
Transaction successful : 3L1vxzSHQv6B6TwtoMv2Y6m7vFGz3hzqApGHEhHSLA9Jn5dNKeWRWKv29UDPDc3vsgt1mYueamUPPt6bHGGEkbxh
[5/5] Receive and deserialize the VAA on solana
Receiver program ID is 5dXnHcDXdXaiEp9QgknCDPsEhJStSqZqJ4ATirWfEqeY
Transaction successful : u5y9Hqc18so3BnjSUvZkLZR4mvA8zkiBgzGKHSEYyWkHQhH3uQatM7xWf4kdrhjZFVGbfBLdR8RJJUmuf28ePtG