Python client for RallyProtocol
Project description
PyRally
Welcome to the Rally Protocol Python SDK! This SDK provides an easy way to interact with the Rally Protocol gas station network. With this SDK, you can easily submit gasless transactions to the Rally GSN API. For more information about gasless transactions and the Rally Protocol, visit Rally Protocol
Installation
pip install py-rally-sdk
Usage
Navigate to Rally App to generate API Keys for polygon mumbai and polygon pos.
Getting started with the RallyNetworkClient
The network client allows you to send transactions to the relayer and also transfer supported tokens from one address to another. The SDK provides both mumbai and polygon POS network clients.
from py_rally import NetworkClientBuilder
from py_rally.custom_types import Account, MetaTxMethod
# Create an Account Object
account = Account('<PRIVATE_KEY>', '<ADDRESS>')
# Get polygon mumbai testnet client
mumbai_network_client = NetworkClientBuilder.get_rally_mumbai_client()
mumbai_network_client.set_api_key('<RALLY MUMBAI API KEY>')
# Get polygon mainnet client
polygon_network_client = NetworkClientBuilder.get_rally_polygon_client()
polygon_network_client.set_api_key('<RALLY MAINNET API KEY>')
# Claim Rally into account on testnet
mumbai_network_client.claim_rally(account)
# Transfer rally to another account on testnet
mumbai_network_client.token_transfer(
account,
'<TO ADDRESS>',
1,
'<RALLY TESTNET TOKEN ADDRESS>',
MetaTxMethod.ExecuteMetaTransaction
) # Rally Token supports execute meta transaction.
Calling contracts not supported by the SDK
The SDK allows sending transactions to the relayer API for contracts not supported by the SDK.
The contract has to be a supported contract on Rally Protocol. Rally Protocol supports ERC2771 compatible contracts. For more
information about this, visit Rally documentation
from py_rally import NetworkClientBuilder
from py_rally.custom_types import Account
client = NetworkClientBuilder.get_rally_polygon_client()
client.set_api_key('<API KEY>')
# Build raw transaction using web3.py
signer = Account('<PRIVATE_KEY>', '<ADDRESS>')
ABI = ['CONTRACT ABI']
contract_address = client.web3.to_checksum_address('<Address>')
contract = client.web3.eth.contract(contract_address, abi=ABI)
tx = contract.functions.claim().build_transaction({'from': signer.address})
gsn_txn = {
'from_address': tx['from'],
'to': tx['to'],
'data': tx['data'],
'max_fee_per_gas': hex(tx['maxFeePerGas']),
'max_priority_fee_per_gas': hex(tx['maxPriorityFeePerGas']),
'gas': hex(tx['gas']),
'value': tx['value'],
'paymaster_data': '0x',
'client_id': 1,
}
tx_hash = client.relay_transaction(signer, gsn_txn)
Built with ❤️ by teepy🇳🇬
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_rally_sdk-1.0.1.tar.gz.
File metadata
- Download URL: py_rally_sdk-1.0.1.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8886ad6d7f9910d3b9e4bb413735318496deba778fdfc05357b2fc1ecbfba943
|
|
| MD5 |
8bfa339af466d37fb98f8de332fd298d
|
|
| BLAKE2b-256 |
800bcacbb4e302af0a35cd3b11fd52fe70a41072d7710fca80d27eb21136f110
|
File details
Details for the file py_rally_sdk-1.0.1-py3-none-any.whl.
File metadata
- Download URL: py_rally_sdk-1.0.1-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e34cbb752bf2dd3b5757a996e94e64fd761d79669be16ec45d7371b2068de41
|
|
| MD5 |
bf018a458bb0a400df09e34807e06b10
|
|
| BLAKE2b-256 |
d547ddc7f4ff93c251da8cf8f9463778dcb92121ee301c81c2e1ac492aa78353
|