multiversx_sdk.native_auth package

Submodules

multiversx_sdk.native_auth.config module

class multiversx_sdk.native_auth.config.NativeAuthCacheInterface(*args, **kwargs)[source]

Bases: Protocol

get(key: str) str | None[source]
set(key: str, value: int, ttl: int) None[source]
class multiversx_sdk.native_auth.config.NativeAuthClientConfig(origin: str = '', api_url: str = 'https://api.multiversx.com', expiry_seconds: int = 7200, block_hash_shard: int | None = None, gateway_url: str | None = None, extra_request_headers: dict[str, str] | None = None)[source]

Bases: object

class multiversx_sdk.native_auth.config.NativeAuthServerConfig(api_url: str = 'https://api.multiversx.com', accepted_origins: list[str] = <factory>, validate_impersonate_url: str | None = None, validate_impersonate_callback: ~typing.Callable[[str, str], bool] | None = None, is_origin_accepted: ~typing.Callable[[str], bool] | None = None, max_expiry_seconds: int = 86400, skip_legacy_validation: bool = False, extra_request_headers: dict[str, str] | None = None, verify_signature: ~typing.Callable[[str, str, bytes], bool] | None = None)[source]

Bases: object

Configuration for Native Authentication.

Attributes:

api_url: Optional API URL (default: https://api.multiversx.com). accepted_origins: Mandatory list of accepted origins (must have at least one value). validate_impersonate_url: Optional endpoint for validating impersonation. validate_impersonate_callback: Optional callback function to validate impersonation. is_origin_accepted: Optional callback to validate an origin dynamically. max_expiry_seconds: Maximum allowed TTL (default: 86400 seconds, one day). skip_legacy_validation: Determines whether legacy signature validation should be skipped. extra_request_headers: Optional extra request headers. verify_signature: Optional function to verify signatures.

accepted_origins: list[str]
api_url: str = 'https://api.multiversx.com'
extra_request_headers: dict[str, str] | None = None
is_origin_accepted: Callable[[str], bool] | None = None
max_expiry_seconds: int = 86400
skip_legacy_validation: bool = False
validate_impersonate_callback: Callable[[str, str], bool] | None = None
validate_impersonate_url: str | None = None
verify_signature: Callable[[str, str, bytes], bool] | None = None

multiversx_sdk.native_auth.errors module

exception multiversx_sdk.native_auth.errors.NativeAuthClientError(message: str)[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthInvalidBlockHashError(block_hash: str)[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthInvalidConfigError(message: str)[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthInvalidImpersonateError[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthInvalidSignatureError[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthInvalidTokenError[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthInvalidTokenTtlError(current_ttl: int, max_ttl: int)[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthInvalidWildcardOriginError(origin: str)[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthOriginNotAcceptedError(origin: str)[source]

Bases: Exception

exception multiversx_sdk.native_auth.errors.NativeAuthTokenExpiredError[source]

Bases: Exception

multiversx_sdk.native_auth.native_auth_client module

class multiversx_sdk.native_auth.native_auth_client.NativeAuthClient(config: NativeAuthClientConfig | None = None)[source]

Bases: object

get_current_block_hash() str[source]
get_token(address: Address, token: str, signature: str) str[source]
get_token_for_signing(address: Address, init_token: str) bytes[source]
initialize(extra_info: dict[Any, Any] | None = None) str[source]

multiversx_sdk.native_auth.native_auth_server module

class multiversx_sdk.native_auth.native_auth_server.NativeAuthServer(config: NativeAuthServerConfig, cache: NativeAuthCacheInterface | None = None)[source]

Bases: object

decode(access_token: str) NativeAuthDecoded[source]
is_valid(access_token: str) bool[source]
validate(access_token: str) NativeAuthValidateResult[source]

multiversx_sdk.native_auth.resources module

class multiversx_sdk.native_auth.resources.NativeAuthDecoded(ttl: int = 0, origin: str = '', address: multiversx_sdk.core.address.Address = <factory>, signature: bytes = b'', block_hash: str = '', body: str = '', extra_info: Any = None)[source]

Bases: object

address: Address
block_hash: str = ''
body: str = ''
extra_info: Any = None
origin: str = ''
signature: bytes = b''
ttl: int = 0
class multiversx_sdk.native_auth.resources.NativeAuthValidateResult(issued: int = 0, expires: int = 0, address: multiversx_sdk.core.address.Address = <factory>, signer_address: multiversx_sdk.core.address.Address = <factory>, origin: str = '', extra_info: dict[str, str] = <factory>)[source]

Bases: object

address: Address
expires: int = 0
extra_info: dict[str, str]
issued: int = 0
origin: str = ''
signer_address: Address
class multiversx_sdk.native_auth.resources.WildcardOrigin(protocol: str = '', domain: str = '')[source]

Bases: object

domain: str = ''
protocol: str = ''

Module contents

class multiversx_sdk.native_auth.NativeAuthClient(config: NativeAuthClientConfig | None = None)[source]

Bases: object

get_current_block_hash() str[source]
get_token(address: Address, token: str, signature: str) str[source]
get_token_for_signing(address: Address, init_token: str) bytes[source]
initialize(extra_info: dict[Any, Any] | None = None) str[source]
class multiversx_sdk.native_auth.NativeAuthClientConfig(origin: str = '', api_url: str = 'https://api.multiversx.com', expiry_seconds: int = 7200, block_hash_shard: int | None = None, gateway_url: str | None = None, extra_request_headers: dict[str, str] | None = None)[source]

Bases: object

class multiversx_sdk.native_auth.NativeAuthServer(config: NativeAuthServerConfig, cache: NativeAuthCacheInterface | None = None)[source]

Bases: object

decode(access_token: str) NativeAuthDecoded[source]
is_valid(access_token: str) bool[source]
validate(access_token: str) NativeAuthValidateResult[source]
class multiversx_sdk.native_auth.NativeAuthServerConfig(api_url: str = 'https://api.multiversx.com', accepted_origins: list[str] = <factory>, validate_impersonate_url: str | None = None, validate_impersonate_callback: ~typing.Callable[[str, str], bool] | None = None, is_origin_accepted: ~typing.Callable[[str], bool] | None = None, max_expiry_seconds: int = 86400, skip_legacy_validation: bool = False, extra_request_headers: dict[str, str] | None = None, verify_signature: ~typing.Callable[[str, str, bytes], bool] | None = None)[source]

Bases: object

Configuration for Native Authentication.

Attributes:

api_url: Optional API URL (default: https://api.multiversx.com). accepted_origins: Mandatory list of accepted origins (must have at least one value). validate_impersonate_url: Optional endpoint for validating impersonation. validate_impersonate_callback: Optional callback function to validate impersonation. is_origin_accepted: Optional callback to validate an origin dynamically. max_expiry_seconds: Maximum allowed TTL (default: 86400 seconds, one day). skip_legacy_validation: Determines whether legacy signature validation should be skipped. extra_request_headers: Optional extra request headers. verify_signature: Optional function to verify signatures.

accepted_origins: list[str]
api_url: str = 'https://api.multiversx.com'
extra_request_headers: dict[str, str] | None = None
is_origin_accepted: Callable[[str], bool] | None = None
max_expiry_seconds: int = 86400
skip_legacy_validation: bool = False
validate_impersonate_callback: Callable[[str, str], bool] | None = None
validate_impersonate_url: str | None = None
verify_signature: Callable[[str, str, bytes], bool] | None = None