SPL: Use ATA interface crate instead of program crate#7256
SPL: Use ATA interface crate instead of program crate#7256joncinque merged 2 commits intoanza-xyz:masterfrom
Conversation
#### Problem In order to publish the v3 SDK crates and have them usable in Agave, we also need to have SPL crates using the v3 SDK crates. However, we have a circular dependency between Agave and SPL which currently makes this impossible. The overall plan is to have Agave only use "interface" crates from SPL, which have no dependencies on Agave crates. You can see more info about the project at https://github.com/orgs/anza-xyz/projects/27 ATA is already in a good position since it has a small "interface"-style crate which Agave is partly using. Agave still needs the program crate to deserialize instructions. #### Summary of changes Use the interface crate everywhere. The only substantive change is in the instruction parsing test. The interface crate does not have the deprecated instruction creator, so we mimic it inline instead. The best part: the ata program crate is completely gone from lockfiles!
rustopian
left a comment
There was a problem hiding this comment.
Built and tested without issue, and yup, clean lockfile build has no ATA dep 🙌
|
Oops sorry, I didn't push the full test fix, should be good now |
Then how did I get green across the board O.o |
not related to this PR I was tricked by a macOS environment issue for a while. Maybe PRing update to readme once I get it figured out. (disabling GCC 15 does not fix.) |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #7256 +/- ##
=========================================
- Coverage 82.8% 82.8% -0.1%
=========================================
Files 803 803
Lines 364439 364436 -3
=========================================
- Hits 302068 302029 -39
- Misses 62371 62407 +36 🚀 New features to boost your workflow:
|
|
Soooo can I get that approval again? 😁 |
rustopian
left a comment
There was a problem hiding this comment.
Confirmed passing (for reals this time)
* SPL: Use ATA interface crate instead of program crate #### Problem In order to publish the v3 SDK crates and have them usable in Agave, we also need to have SPL crates using the v3 SDK crates. However, we have a circular dependency between Agave and SPL which currently makes this impossible. The overall plan is to have Agave only use "interface" crates from SPL, which have no dependencies on Agave crates. You can see more info about the project at https://github.com/orgs/anza-xyz/projects/27 ATA is already in a good position since it has a small "interface"-style crate which Agave is partly using. Agave still needs the program crate to deserialize instructions. #### Summary of changes Use the interface crate everywhere. The only substantive change is in the instruction parsing test. The interface crate does not have the deprecated instruction creator, so we mimic it inline instead. The best part: the ata program crate is completely gone from lockfiles! * Fix test
#### Problem As outlined in #7256, we need to get Agave off of crates that depend back on Agave. spl-instruction-padding is one of those crates #### Summary of changes Use spl-instruction-padding-interface instead. Everything else is exactly the same.
#### Problem As outlined in #7256, we need to get Agave off of crates that depend back on Agave. spl-memo is one of those crates #### Summary of changes Use spl-memo-interface instead. The only difference is that `build_memo` takes in a program id, which is used in one test.
#### Problem As outlined in #7256, we need to get Agave off of crates that depend back on Agave. spl-token-2022 is one of those crates #### Summary of changes Use spl-token-2022-interface instead. To go with this, we had to also upgrade to confidential-transfer-proof-extract v0.4.0, which requires modifications to some tests. Everything should be very straightforward otherwise, and we get to see some red lines in the lockfile!
Problem
In order to publish the v3 SDK crates and have them usable in Agave, we also need to have SPL crates using the v3 SDK crates. However, we have a circular dependency between Agave and SPL which currently makes this impossible.
The overall plan is to have Agave only use "interface" crates from SPL, which have no dependencies on Agave crates.
You can see more info about the project at https://github.com/orgs/anza-xyz/projects/27
ATA is already in a good position since it has a small "interface"-style crate which Agave is partly using. Agave still needs the program crate to deserialize instructions.
Summary of changes
Use the interface crate everywhere.
The only substantive change is in the instruction parsing test. The interface crate does not have the deprecated instruction creator, so we mimic it inline instead.
The best part: the ata program crate is completely gone from lockfiles!