ChorusOne / solido

Lido for Solana is a Lido-DAO governed liquid staking protocol for the Solana blockchain.
https://chorusone.github.io/solido/
GNU General Public License v3.0
101 stars 43 forks source link

Can't build hello world example using solido repo as external repo #557

Closed kkonevets closed 2 years ago

kkonevets commented 2 years ago

Can't build hello world example using solido repo as external repo https://github.com/kkonevets/solexamp It uses latest solana-program-1.10.8 instead of solana-program-1.7.8 from your patch. Specifying dependencies does not help

image

[Update] My original Cargo.toml was:

[package]
name = "solexamp"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[patch.crates-io]
solana-program = { git = "https://github.com/ChorusOne/solana", branch = "program-test-178" }

[dependencies]
lido = { git = "https://github.com/ChorusOne/solido", rev = "bdfdbc677d9ff33f4e12cd01d9c1f24c31b30ae7" }
solana-program = "1.7.8"

So, delete Cargo.lock, add solana-program dependency with = sign ("=1.7.8") and it will compile

ruuda commented 2 years ago

As discussed elsewhere, adding this to your Cargo.toml will help:

[dependencies]
solana-sdk = "=1.7.8"
solana-program = "=1.7.8"
solana-program-test = "=1.7.8"
solana-frozen-abi = "=1.7.8"
solana-frozen-abi-macro = "=1.7.8"

The reason we still use solana-sdk 1.7.8 is because Anchor framework (the eDSL) has a dependency on =1.7.8 (it doesn’t allow newer versions), and the multisig program uses Anchor framwork, and the CLI tool depends on that to build transactions ...

kkonevets commented 2 years ago

The actual reason my initial Cargo.toml did not compile was that I didn't prefix version with = like in =1.7.8