This repo contains samples contracts which interact with Whirlpool via CPI.
This sample will just proxy Whirlpool instructions via CPI.
Based on this sample, you can build a program executing Whirlpool instructions via CPI.
| Directory | Anchor version | Solana version (rustc version) |
|---|---|---|
| anchor-0.24.2 | v0.24.2 | Solana 1.9.29 (1.59.0-dev) |
| anchor-0.25.0 | v0.25.0 | Solana 1.10.41 (1.59.0-dev) |
| anchor-0.26.0 | v0.26.0 | Solana 1.14.29 (1.62.0-dev) |
| anchor-0.27.0 | v0.27.0 | Solana 1.14.17 (1.62.0-dev) |
| anchor-0.28.0 | v0.28.0 | Solana 1.16.26 (1.68.0-dev) |
| anchor-0.29.0 | v0.29.0 | Solana 1.17.14 (1.68.0-dev) |
| anchor-0.30.1 | v0.30.1 | Solana 1.18.21 (1.75.0-dev) |
You can write a contract to execute CPI to Whirlpool based on the following sample instructions.
VerifyXreads the account and displays the contents.ProxyXexecutes the received instructions directly through CPI.
| Context (instruction) | What to do |
|---|---|
| VerifyWhirlpoolsConfigAccount | print fields of WhirlpoolsConfig account |
| VerifyFeeTierAccount | print fields of FeeTier account |
| VerifyWhirlpoolAccount | print fields of Whirlpool account |
| VerifyTickArrayAccount | print fields of TickArray account |
| VerifyPositionAccount | print field of Position account |
| ProxySwap | execute swap instruction via CPI |
| ProxyOpenPosition | execute open_position instruction via CPI |
| ProxyIncreaseLiquidity | execute increase_liquidity instruction via CPI |
| ProxyDecreaseLiquidity | execute decrease_liquidity instruction via CPI |
| ProxyUpdateFeesAndRewards | execute update_fees_and_rewards instruction via CPI |
| ProxyCollectFees | execute collect_fees instruction via CPI |
| ProxyCollectReward | execute collect_reward instruction via CPI |
| ProxyClose | execute close_position instruction via CPI |
| ProxyInitializePool | execute initialize_pool instruction via CPI |
| ProxyInitializeTickArray | execute initialize_tick_array instruction via CPI |
The following crate is used to read accounts and execute CPI:

