EvmJsonRPC

Класс EvmJsonRPC предоставляет следующие функции для взаимодействия с evm сетями.

class EvmJsonRPC(rpc_url: Union[str, RpcUrl])

Класс принимает урл узла RPC.

from ipnpy.rpc import EvmJsonRPC

provider_binance = EvmJsonRPC("https://bsc-dataseed.binance.org/")

Или

from ipnpy.rpc import EvmJsonRPC
from ipnpy.rpc.enums import RpcUrl

provider_binance = EvmJsonRPC(RpcUrl.BINANCE)

get_native_balance(address: str, raw: bool = True) -> Union[int, float]

Принимает:

  • address - адрес кошелька

  • raw - флаг, определяющий, возвращать необработанный баланс в wei (True) или баланс в ether (False). По умолчанию True.

Возвращает баланс указанного адреса.

>>> from ipnpy.rpc import EvmJsonRPC
>>> from ipnpy.rpc.enums import RpcUrl
>>> provider_binance = EvmJsonRPC(RpcUrl.BINANCE)
>>> provider_binance.get_native_balance('0x3e09a54e5ad60fbd91965e94f3705d190071b7381')
10000000000000000
>>> provider_binance.get_native_balance('0x3e09a54e5ad60fbd91965e94f3705d190071b738', False)
0.01

send_native_token(private_key: str, from_address: str, to_address: str, amount: int) -> str

Отправляет нативную монету с одного адреса на другой. Транзакция будет подписана приватным ключом отправителя.

Принимает:

  • private_key - приватный ключ отправителя

  • from_address - адрес отправителя

  • to_address - адрес получателя

  • amount - сумма (в wei)

Возвращает хеш транзакции, который можно использовать для отслеживания транзакции в блокчейне.

>>> from ipnpy.rpc import EvmJsonRPC
>>> from ipnpy.rpc.enums import RpcUrl
>>> provider_binance = EvmJsonRPC(RpcUrl.BINANCE)
>>> provider_binance.send_native_token(
        private_key='.................omitted.....................',
        from_address='0xAE5d32B6f9472385Fa2DF37B964b05100ee2fbF4',
        to_address='0x42D431782A4A11b2cdDa50900b3a0FA0Ce262430',
        amount=22339180052983328
    )
0x8e3fa5bf605591740c8306f381dd5b46f5818a5d71ec54a26e4aa607154f85e8

get_erc20_balance(address: str, contract_address: str, raw: bool = True) -> Union[int, float]

Принимает:

  • address - адрес кошелька

  • contract_address- адрес контракта ERC20

  • raw - флаг, определяющий, возвращать необработанный баланс в wei (True) или баланс в ether (False). По умолчанию True.

Возвращает количество ERC20 токенов, принадлежащих адресу.

>>> from ipnpy.rpc import EvmJsonRPC
>>> from ipnpy.rpc.enums import RpcUrl
>>> provider_binance = EvmJsonRPC(RpcUrl.BINANCE)
>>> provider_binance.get_erc20_balance(
            address='0x3e09a54e5ad60fbd91965e94f3705d190071b738',
            contract_address='0x55d398326f99059fF775485246999027B3197955'
        )
100000000000000000000
>>> provider_binance.get_erc20_balance(
        address='0x3e09a54e5ad60fbd91965e94f3705d190071b738',
        contract_address='0x55d398326f99059ff775485246999027b3197955'
        raw=False
    )
100.0

send_erc20_token(private_key: str, from_address: str, to_address: str, amount: int, contract_address: str) -> str

Отправляет ERC20 токен с одного адреса на другой. Транзакция будет подписана приватным ключом отправителя.

Принимает:

  • private_key - приватный ключ отправителя

  • from_address - адрес отправителя

  • to_address - адрес получателя

  • amount - сумма (в wei)

  • contract_address- адрес контракта ERC20

Возвращает хеш транзакции, который можно использовать для отслеживания транзакции в блокчейне.

>>> from ipnpy.rpc import EvmJsonRPC
>>> from ipnpy.rpc.enums import RpcUrl
>>> provider_binance = EvmJsonRPC(RpcUrl.BINANCE)
>>> provider_binance.send_native_token(
        private_key='.................omitted.....................',
        from_address='0x9c70e4d852dd3f4d73ddf5e676af1781f8330ca6',
        to_address='0xb494da2fddc47ad61a5f2668c6fbff53d77247d2',
        amount=250000000000000000000,
        contract_address='0x55d398326f99059ff775485246999027b3197955'
    )
0xaf6d512d0cdf21cc57582a81674513c6a820b6f3095b6b9d9802654e32e9821e

Last updated