kevinheavey / solders

A high-performance Python toolkit for Solana, written in Rust
https://kevinheavey.github.io/solders/
Apache License 2.0
205 stars 23 forks source link

Usage of deprecated RPC call - getStakeActivation #107

Closed Woody4618 closed 3 weeks ago

Woody4618 commented 3 weeks ago

Hey, there are bunch of RPC calls that are deprecated and will be removed very soon. You can find the deprecated calls here: https://github.com/anza-xyz/agave/wiki/Agave-v2.0-Transition-Guide

I searched your SDK for usage of these calls and looks like you are using getStakeActivation. This call will not be usable anymore soon after breakpoint.

Here you can find a replacement implementation for rust and JS client side: https://github.com/solana-developers/solana-rpc-get-stake-activation

If you know users of the SDK would also be great if you could inform them about the deprecated calls so nothing breaks when the calls actually get removed on mainnet.

Woody4618 commented 3 weeks ago

These are the locations of the call usage:

/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:1424:/// A ``getStakeActivation`` request.
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:1432:///     >>> from solders.rpc.requests import GetStakeActivation
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:1436:///     >>> GetStakeActivation(Pubkey.default(), config).to_json()
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:1437:///     '{"method":"getStakeActivation","jsonrpc":"2.0","id":0,"params":["11111111111111111111111111111111",{"epoch":1234,"minContextSlot":null}]}'
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:1441:pub struct GetStakeActivation {
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:1451:impl GetStakeActivation {
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:1472:request_boilerplate!(GetStakeActivation);
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:2733:    GetStakeActivation,
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:2857:            GetStakeActivation::type_object(py),
/Users/jonasmac2/Documents/GitHub/solders/crates/rpc-requests/src/lib.rs:2932:    requests_mod.add_class::<GetStakeActivation>()?;
/Users/jonasmac2/Documents/GitHub/solders/tests/test_rpc_request_builder.py:82:    GetStakeActivation,
/Users/jonasmac2/Documents/GitHub/solders/tests/test_rpc_request_builder.py:389:    req = GetStakeActivation(Pubkey.default(), config)
/Users/jonasmac2/Documents/GitHub/solders/tests/test_rpc_request_builder.py:391:    assert GetStakeActivation.from_json(as_json) == req
kevinheavey commented 3 weeks ago

Thanks, this library doesn't talk to RPCs, it just defines types for sending messages. Nothing to do here for now

Woody4618 commented 3 weeks ago

Thanks for checking :)