fix(core): refactor dataclass to use class vars

This commit is contained in:
smypmsa
2025-08-05 14:44:06 +00:00
parent a831cafaf4
commit 80b03748b0
+25 -20
View File
@@ -4,7 +4,6 @@ This module contains only system-level addresses that are shared across all plat
Platform-specific addresses are handled by their respective AddressProvider implementations. Platform-specific addresses are handled by their respective AddressProvider implementations.
""" """
from dataclasses import dataclass
from typing import Final from typing import Final
from solders.pubkey import Pubkey from solders.pubkey import Pubkey
@@ -13,29 +12,35 @@ from solders.pubkey import Pubkey
LAMPORTS_PER_SOL: Final[int] = 1_000_000_000 LAMPORTS_PER_SOL: Final[int] = 1_000_000_000
TOKEN_DECIMALS: Final[int] = 6 TOKEN_DECIMALS: Final[int] = 6
# Core system programs
SYSTEM_PROGRAM: Final[Pubkey] = Pubkey.from_string("11111111111111111111111111111111")
TOKEN_PROGRAM: Final[Pubkey] = Pubkey.from_string(
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
)
ASSOCIATED_TOKEN_PROGRAM: Final[Pubkey] = Pubkey.from_string(
"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
)
# System accounts
RENT: Final[Pubkey] = Pubkey.from_string(
"SysvarRent111111111111111111111111111111111"
)
# Native SOL token
SOL_MINT: Final[Pubkey] = Pubkey.from_string(
"So11111111111111111111111111111111111111112"
)
@dataclass
class SystemAddresses: class SystemAddresses:
"""System-level Solana addresses shared across all platforms.""" """System-level Solana addresses shared across all platforms."""
# Core system programs
SYSTEM_PROGRAM: Final[Pubkey] = Pubkey.from_string("11111111111111111111111111111111")
TOKEN_PROGRAM: Final[Pubkey] = Pubkey.from_string(
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
)
ASSOCIATED_TOKEN_PROGRAM: Final[Pubkey] = Pubkey.from_string(
"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
)
# System accounts # Reference the module-level constants
RENT: Final[Pubkey] = Pubkey.from_string( SYSTEM_PROGRAM = SYSTEM_PROGRAM
"SysvarRent111111111111111111111111111111111" TOKEN_PROGRAM = TOKEN_PROGRAM
) ASSOCIATED_TOKEN_PROGRAM = ASSOCIATED_TOKEN_PROGRAM
RENT = RENT
# Native SOL token SOL_MINT = SOL_MINT
SOL_MINT: Final[Pubkey] = Pubkey.from_string(
"So11111111111111111111111111111111111111112"
)
@classmethod @classmethod
def get_all_system_addresses(cls) -> dict[str, Pubkey]: def get_all_system_addresses(cls) -> dict[str, Pubkey]: