Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Struct field "chainlink_feed" is unsafe, but is not documented. #4

Closed
barlas opened this issue Apr 3, 2022 · 3 comments
Closed

Struct field "chainlink_feed" is unsafe, but is not documented. #4

barlas opened this issue Apr 3, 2022 · 3 comments

Comments

@barlas
Copy link

barlas commented Apr 3, 2022

Hello, I followed your document on https://docs.chain.link/docs/solana/using-data-feeds-solana/ and got the error below. I couldn't figure out the solution.

I was on the 7th step:

With the new program ID added, run anchor build again. This recreates the necessary program files with the correct program ID: anchor build

barlas@~/hobby/solana-starter-kit$ cargo --version
cargo 1.59.0 (49d8809dc 2022-02-10)
barlas@~/hobby/solana-starter-kit$ node --version
v16.13.0
barlas@~/hobby/solana-starter-kit$ npm --version
8.1.0
barlas@~/hobby/solana-starter-kit$ solana --version
solana-cli 1.8.14 (src:9c01d90c; feat:1006352700)
barlas@~/hobby/solana-starter-kit$ anchor build
BPF SDK: /home/barlas/.local/share/solana/install/releases/1.8.14/solana-release/bin/sdk/bpf
cargo-build-bpf child: rustup toolchain list -v
cargo-build-bpf child: cargo +bpf build --target bpfel-unknown-unknown --release
    Finished release [optimized] target(s) in 0.07s
cargo-build-bpf child: /home/barlas/.local/share/solana/install/releases/1.8.14/solana-release/bin/sdk/bpf/dependencies/bpf-tools/llvm/bin/llvm-readelf --dyn-symbols /home/barlas/hobby/solana-starter-kit/target/deploy/chainlink_solana_demo.so

To deploy this program:
  $ solana program deploy /home/barlas/hobby/solana-starter-kit/target/deploy/chainlink_solana_demo.so
The program address will default to this keypair (override with --program-id):
  /home/barlas/hobby/solana-starter-kit/target/deploy/chainlink_solana_demo-keypair.json
Error: 
        /home/barlas/hobby/solana-starter-kit/programs/chainlink_solana_demo/src/lib.rs:73:8
        Struct field "chainlink_feed" is unsafe, but is not documented.
        Please add a `/// CHECK:` doc comment explaining why no checks through types are necessary.
        See https://book.anchor-lang.com/chapter_3/the_accounts_struct.html#safety-checks for more information.
@barlas
Copy link
Author

barlas commented Apr 3, 2022

Ok, solved it but I think you should add this to your code:

#[derive(Accounts)]
pub struct Execute<'info> {
    #[account(init, payer = user, space = 100)]
    pub decimal: Account<'info, Decimal>,
    #[account(mut)]
    pub user: Signer<'info>,
    /// CHECK: This is not dangerous because we don't read or write from this account
    pub chainlink_feed: AccountInfo<'info>,
    /// CHECK: This is not dangerous because we don't read or write from this account
    pub chainlink_program: AccountInfo<'info>,
    #[account(address = system_program::ID)]
    /// CHECK: This is not dangerous because we don't read or write from this account
    pub system_program: AccountInfo<'info>,
}

@amalnathsathyan
Copy link

Yes, it solved it for me too! Thanks a lot, bro! Didn't know Solana cared so much about comments too... Lol

Here is console log. When running anchor build for first time, it showed that error, but with your solution, it went well! I am adding the log to this comment, so that if someone searched it again, let this be easily findable to them.

deca28@PIC4229:/mnt/d/Work/Learn Solana/facebook-solana/programs/programs/programs$ anchor build
BPF SDK: /home/deca28/.local/share/solana/install/releases/1.9.1/solana-release/bin/sdk/bpf
cargo-build-bpf child: rustup toolchain list -v
cargo-build-bpf child: cargo +bpf build --target bpfel-unknown-unknown --release
   Compiling programs v0.1.0 (/mnt/d/Work/Learn Solana/facebook-solana/programs/programs/programs)
    Finished release [optimized] target(s) in 15.66s
cargo-build-bpf child: /home/deca28/.local/share/solana/install/releases/1.9.1/solana-release/bin/sdk/bpf/scripts/strip.sh /mnt/d/Work/Learn Solana/facebook-solana/programs/target/bpfel-unknown-unknown/release/programs.so /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs.so
cargo-build-bpf child: /home/deca28/.local/share/solana/install/releases/1.9.1/solana-release/bin/sdk/bpf/dependencies/bpf-tools/llvm/bin/llvm-readelf --dyn-symbols /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs.so

To deploy this program:
  $ solana program deploy /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs.so
The program address will default to this keypair (override with --program-id):
  /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs-keypair.json
Error: 
        /mnt/d/Work/Learn Solana/facebook-solana/programs/programs/programs/src/lib.rs:157:8
        Struct field "system_program" is unsafe, but is not documented.
        Please add a `/// CHECK:` doc comment explaining why no checks through types are necessary.
        See https://book.anchor-lang.com/chapter_3/the_accounts_struct.html#safety-checks for more information.

deca28@PIC4229:/mnt/d/Work/Learn Solana/facebook-solana/programs/programs/programs$ anchor build
BPF SDK: /home/deca28/.local/share/solana/install/releases/1.9.1/solana-release/bin/sdk/bpf
cargo-build-bpf child: rustup toolchain list -v
cargo-build-bpf child: cargo +bpf build --target bpfel-unknown-unknown --release
   Compiling programs v0.1.0 (/mnt/d/Work/Learn Solana/facebook-solana/programs/programs/programs)
    Finished release [optimized] target(s) in 5.97s
cargo-build-bpf child: /home/deca28/.local/share/solana/install/releases/1.9.1/solana-release/bin/sdk/bpf/scripts/strip.sh /mnt/d/Work/Learn Solana/facebook-solana/programs/target/bpfel-unknown-unknown/release/programs.so /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs.so
cargo-build-bpf child: /home/deca28/.local/share/solana/install/releases/1.9.1/solana-release/bin/sdk/bpf/dependencies/bpf-tools/llvm/bin/llvm-readelf --dyn-symbols /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs.so

To deploy this program:
  $ solana program deploy /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs.so
The program address will default to this keypair (override with --program-id):
  /mnt/d/Work/Learn Solana/facebook-solana/programs/target/deploy/programs-keypair.json

@pappas999
Copy link
Collaborator

thanks @amalnathsathyan and @barlas , the code has been updated, and this should be resolved. This functionality was added with the recent version of Anchor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants