py-near is a pretty simple and fully asynchronous framework for working with NEAR blockchain.
📚 Click to see some basic examples
Few steps before getting started...
- Install the latest stable version of py-near, simply running
pip install py-near
- Create NEAR account and get your private key wallet
from py_near.account import Account
import asyncio
from py_near.dapps.core import NEAR
ACCOUNT_ID = "bob.near"
PRIVATE_KEY = "ed25519:..."
async def main():
acc = Account(ACCOUNT_ID, PRIVATE_KEY)
await acc.startup()
print(await acc.get_balance() / NEAR)
print(await acc.get_balance("bob.near") / NEAR)
tr = await acc.send_money("bob.near", NEAR * 2)
print(tr.transaction.hash)
print(tr.logs)
asyncio.run(main())
from py_near.account import Account
import asyncio
from py_near.dapps.core import NEAR
ACCOUNT_ID = "bob.near"
PRIVATE_KEY = "ed25519:..."
async def main():
acc = Account(ACCOUNT_ID, PRIVATE_KEY)
await acc.startup()
tr = await acc.phone.send_near_to_phone("+15626200911", NEAR // 10)
print(tr.transaction.hash)
asyncio.run(main())
Only one parallel request can be made from one private key. All transaction calls execute sequentially. To make several parallel calls you need to use several private keys
acc = Account("bob.near", private_key1)
for i in range(2):
signer = InMemorySigner.from_random(AccountId("bob.near"), KeyType.ED25519)
await acc.add_full_access_public_key(str(signer.public_key))
print(signer.secret_key)
Now we can call transactions in parallel
acc = Account("bob.near", [private_key1, private_key2, private_key3])
# request time = count transactions / count public keys
tasks = [
asyncio.create_task(acc.send_money("alisa.near", 1)),
asyncio.create_task(acc.send_money("alisa.near", 1)),
asyncio.create_task(acc.send_money("alisa.near", 1)),
]
for t in task:
await t
- News: @herewallet
- Social media:
- PyPI: py-near
- Documentation: py-near.readthedocs.io
- Source: Github repo
- Issues/Bug tracker: Github issues tracker
This project exists thanks to all the people who contribute. [Code of conduct].