Skip to content

Commit

Permalink
Merge pull request #394 from michaelhly/solders-0.20
Browse files Browse the repository at this point in the history
Upgrade to solders 0.20
  • Loading branch information
kevinheavey committed Feb 18, 2024
2 parents 36ab2b5 + bd8a09e commit 50af7e6
Show file tree
Hide file tree
Showing 21 changed files with 244 additions and 238 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.31.0
current_version = 0.32.0
commit = True
tag = True

Expand Down
19 changes: 3 additions & 16 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,35 +18,22 @@ jobs:
steps:
- name: checkout repo
uses: actions/checkout@v2
- name: Set up Python 3.9
- name: Set up Python 3.11
uses: actions/setup-python@v1
with:
python-version: 3.9
python-version: 3.11

#----------------------------------------------
# ----- install & configure poetry -----
#----------------------------------------------
- name: Install and configure Poetry
uses: snok/install-poetry@v1
with:
version: 1.3.2
version: 1.6.1
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
#----------------------------------------------
# load cached venv if cache exists
#----------------------------------------------
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
#----------------------------------------------
# install dependencies if cache does not exist
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
#----------------------------------------------
# install your root project
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## [0.32.0] - 2024-02-12

### Changed

- Upgrade to Solders 0.20 [(#394)](https://github.com/michaelhly/solana-py/pull/394)

## [0.31.0] - 2024-01-02

### Added
Expand Down
356 changes: 179 additions & 177 deletions poetry.lock

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "solana"
version = "0.31.0"
version = "0.32.0"
description = "Solana Python API"
authors = [
"Michael Huang <[email protected]>",
Expand Down Expand Up @@ -32,7 +32,7 @@ typing-extensions = ">=4.2.0"
cachetools = "^4.2.2"
types-cachetools = "^4.2.4"
websockets = ">=9.0,<12.0"
solders = "^0.19.0"
solders = "^0.20.0"

[tool.poetry.dev-dependencies]
black = "^22.3"
Expand Down Expand Up @@ -75,7 +75,7 @@ select = [
"PLW",
"RUF",
]
ignore = ["D203"]
ignore = ["D203", "I001"]

# Exclude a variety of commonly ignored directories.
exclude = [
Expand Down
6 changes: 3 additions & 3 deletions src/spl/token/async_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@

from typing import List, Optional, Union, cast

from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Commitment
from solana.rpc.types import TxOpts
from solders.hash import Hash as Blockhash
from solders.keypair import Keypair
from solders.pubkey import Pubkey
Expand All @@ -20,6 +17,9 @@
)

import spl.token.instructions as spl_token
from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Commitment
from solana.rpc.types import TxOpts
from spl.token._layouts import ACCOUNT_LAYOUT, MINT_LAYOUT, MULTISIG_LAYOUT
from spl.token.core import AccountInfo, MintInfo, _TokenCore

Expand Down
6 changes: 3 additions & 3 deletions src/spl/token/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@

from typing import List, Optional, Union, cast

from solana.rpc.api import Client
from solana.rpc.commitment import Commitment
from solana.rpc.types import TxOpts
from solders.hash import Hash as Blockhash
from solders.keypair import Keypair
from solders.pubkey import Pubkey
Expand All @@ -20,6 +17,9 @@
)

import spl.token.instructions as spl_token
from solana.rpc.api import Client
from solana.rpc.commitment import Commitment
from solana.rpc.types import TxOpts
from spl.token._layouts import ACCOUNT_LAYOUT, MINT_LAYOUT, MULTISIG_LAYOUT
from spl.token.core import AccountInfo, MintInfo, _TokenCore

Expand Down
10 changes: 5 additions & 5 deletions src/spl/token/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
from typing import TYPE_CHECKING, List, NamedTuple, Optional, Tuple, Type, Union

import solders.system_program as sp
from solana.rpc.api import Client
from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Commitment
from solana.rpc.types import TokenAccountOpts, TxOpts
from solana.transaction import Transaction
from solders.keypair import Keypair
from solders.pubkey import Pubkey
from solders.rpc.responses import GetAccountInfoResp

import spl.token.instructions as spl_token
from solana.rpc.api import Client
from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Commitment
from solana.rpc.types import TokenAccountOpts, TxOpts
from solana.transaction import Transaction
from spl.token._layouts import ACCOUNT_LAYOUT, MINT_LAYOUT, MULTISIG_LAYOUT # type: ignore
from spl.token.constants import WRAPPED_SOL_MINT

Expand Down
2 changes: 1 addition & 1 deletion src/spl/token/instructions.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
from enum import IntEnum
from typing import Any, List, NamedTuple, Optional, Union

from solana.utils.validate import validate_instruction_keys, validate_instruction_type
from solders.instruction import AccountMeta, Instruction
from solders.pubkey import Pubkey
from solders.system_program import ID as SYS_PROGRAM_ID
from solders.sysvar import RENT

from solana.utils.validate import validate_instruction_keys, validate_instruction_type
from spl.token._layouts import INSTRUCTIONS_LAYOUT, InstructionType
from spl.token.constants import ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID

Expand Down
6 changes: 3 additions & 3 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
from typing import NamedTuple

import pytest
from solana.rpc.api import Client
from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Processed
from solders.hash import Hash as Blockhash
from solders.keypair import Keypair
from solders.pubkey import Pubkey

from solana.rpc.api import Client
from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Processed
from tests.utils import AIRDROP_AMOUNT, assert_valid_response


Expand Down
11 changes: 6 additions & 5 deletions tests/integration/test_async_http_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@

import pytest
import solders.system_program as sp
from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Confirmed, Finalized, Processed
from solana.rpc.core import RPCException, TransactionExpiredBlockheightExceededError
from solana.rpc.types import DataSliceOpts, TxOpts
from solana.transaction import Transaction
from solders.keypair import Keypair
from solders.message import MessageV0
from solders.pubkey import Pubkey
Expand All @@ -17,6 +12,12 @@
from solders.transaction import VersionedTransaction
from spl.token.constants import WRAPPED_SOL_MINT

from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Confirmed, Finalized, Processed
from solana.rpc.core import RPCException, TransactionExpiredBlockheightExceededError
from solana.rpc.types import DataSliceOpts, TxOpts
from solana.transaction import Transaction

from ..utils import AIRDROP_AMOUNT, assert_valid_response


Expand Down
11 changes: 6 additions & 5 deletions tests/integration/test_http_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@

import pytest
import solders.system_program as sp
from solana.rpc.api import Client
from solana.rpc.commitment import Confirmed, Finalized, Processed
from solana.rpc.core import RPCException, TransactionExpiredBlockheightExceededError
from solana.rpc.types import DataSliceOpts, TxOpts
from solana.transaction import Transaction
from solders.keypair import Keypair
from solders.message import MessageV0
from solders.pubkey import Pubkey
Expand All @@ -17,6 +12,12 @@
from solders.transaction import VersionedTransaction
from spl.token.constants import WRAPPED_SOL_MINT

from solana.rpc.api import Client
from solana.rpc.commitment import Confirmed, Finalized, Processed
from solana.rpc.core import RPCException, TransactionExpiredBlockheightExceededError
from solana.rpc.types import DataSliceOpts, TxOpts
from solana.transaction import Transaction

from ..utils import AIRDROP_AMOUNT, assert_valid_response


Expand Down
7 changes: 4 additions & 3 deletions tests/integration/test_memo.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
"""Tests for the Memo program."""
import pytest
from solana.rpc.api import Client
from solana.rpc.commitment import Finalized
from solana.transaction import Transaction
from solders.keypair import Keypair
from solders.transaction_status import ParsedInstruction
from spl.memo.constants import MEMO_PROGRAM_ID
from spl.memo.instructions import MemoParams, create_memo

from solana.rpc.api import Client
from solana.rpc.commitment import Finalized
from solana.transaction import Transaction

from ..utils import AIRDROP_AMOUNT, assert_valid_response


Expand Down
9 changes: 5 additions & 4 deletions tests/integration/test_websockets.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@

import asyncstdlib
import pytest
from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Finalized
from solana.rpc.websocket_api import SolanaWsClientProtocol, connect
from solana.transaction import Transaction
from solders import system_program as sp
from solders.keypair import Keypair
from solders.pubkey import Pubkey
Expand All @@ -27,6 +23,11 @@
from solders.system_program import ID as SYS_PROGRAM_ID
from websockets.legacy.client import WebSocketClientProtocol

from solana.rpc.async_api import AsyncClient
from solana.rpc.commitment import Finalized
from solana.rpc.websocket_api import SolanaWsClientProtocol, connect
from solana.transaction import Transaction

from ..utils import AIRDROP_AMOUNT


Expand Down
5 changes: 3 additions & 2 deletions tests/unit/test_async_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@

import pytest
from httpx import ReadTimeout
from solana.exceptions import SolanaRpcException
from solana.rpc.commitment import Finalized
from solders.commitment_config import CommitmentLevel
from solders.pubkey import Pubkey
from solders.rpc.config import RpcSignaturesForAddressConfig
from solders.rpc.requests import GetSignaturesForAddress
from solders.signature import Signature

from solana.exceptions import SolanaRpcException
from solana.rpc.commitment import Finalized


async def test_async_client_http_exception(unit_test_http_client_async):
"""Test AsyncClient raises native Solana-py exceptions."""
Expand Down
5 changes: 3 additions & 2 deletions tests/unit/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@

import pytest
from httpx import ReadTimeout
from solana.exceptions import SolanaRpcException
from solana.rpc.commitment import Finalized
from solders.commitment_config import CommitmentLevel
from solders.pubkey import Pubkey
from solders.rpc.config import RpcSignaturesForAddressConfig
from solders.rpc.requests import GetSignaturesForAddress
from solders.signature import Signature

from solana.exceptions import SolanaRpcException
from solana.rpc.commitment import Finalized


def test_client_http_exception(unit_test_http_client):
"""Test AsyncClient raises native Solana-py exceptions."""
Expand Down
3 changes: 2 additions & 1 deletion tests/unit/test_confirmed_block.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
"""Test get confirmed block."""

import solana.transaction as txlib
from solders.keypair import Keypair
from solders.signature import Signature
from solders.system_program import TransferParams, transfer

import solana.transaction as txlib


def test_verify_confirmed_block(stubbed_blockhash):
"""Test verifying signature in a confirmed block."""
Expand Down
1 change: 1 addition & 0 deletions tests/unit/test_security_txt.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Test security txt."""

import pytest

from solana.utils.security_txt import NoSecurityTxtFoundError, parse_security_txt


Expand Down
3 changes: 2 additions & 1 deletion tests/unit/test_transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from base64 import b64decode, b64encode

import pytest
import solana.transaction as txlib
import solders.system_program as sp
from solders.hash import Hash as Blockhash
from solders.instruction import AccountMeta, CompiledInstruction
Expand All @@ -13,6 +12,8 @@
from solders.signature import Signature
from solders.transaction import Transaction as SoldersTx

import solana.transaction as txlib


def example_tx(stubbed_blockhash, kp0: Keypair, kp1: Keypair, kp2: Keypair) -> txlib.Transaction:
"""Example tx for testing."""
Expand Down
5 changes: 3 additions & 2 deletions tests/unit/test_vote_program.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
"""Unit tests for solana.vote_program."""
import base64

import solana.transaction as txlib
import solana.vote_program as vp
from solders.hash import Hash
from solders.keypair import Keypair
from solders.pubkey import Pubkey

import solana.transaction as txlib
import solana.vote_program as vp


def test_withdraw_from_vote_account():
withdrawer_keypair = Keypair.from_bytes(
Expand Down
3 changes: 2 additions & 1 deletion tests/utils.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
"""Integration test utils."""
from typing import get_args

from solders.rpc.responses import RPCError, RPCResult

from solana.rpc.commitment import Processed
from solana.rpc.types import TxOpts
from solders.rpc.responses import RPCError, RPCResult

AIRDROP_AMOUNT = 10_000_000_000

Expand Down

0 comments on commit 50af7e6

Please sign in to comment.