https://github.com/pvolnov/py-near
Python high-level framework for NEAR Protocol
https://github.com/pvolnov/py-near
asynchronous near near-protocol nearprotocol python web3py
Last synced: about 1 year ago
JSON representation
Python high-level framework for NEAR Protocol
- Host: GitHub
- URL: https://github.com/pvolnov/py-near
- Owner: pvolnov
- License: mit
- Created: 2022-12-07T04:29:42.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-05-23T04:12:48.000Z (about 2 years ago)
- Last Synced: 2024-05-23T05:50:41.511Z (about 2 years ago)
- Topics: asynchronous, near, near-protocol, nearprotocol, python, web3py
- Language: Python
- Homepage: https://py-near.readthedocs.io/
- Size: 128 KB
- Stars: 144
- Watchers: 4
- Forks: 11
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# py-near
[](https://opencollective.com/py-near)
[](https://pypi.org/project/py-near)
[](https://pypi.python.org/pypi/py-near)
[](https://py-near.readthedocs.io/en/latest)
[](https://github.com/pvolnov/py-near/issues)
[](https://opensource.org/licenses/MIT)
[](https://twitter.com/p_volnov)
[//]: # ([](https://pypi.org/project/py-near))
**py-near** is a pretty simple and fully asynchronous framework for working with NEAR blockchain.
## Examples
π 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](https://wallet.near.org/create)
### Simple money transfer
```python
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())
```
### Transfer money by phone number
```python
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())
```
### Parallel requests
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
```python3
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
```python3
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
```
## Official py-near resources:
- News: [@herewallet](https://t.me/herewallet)
- Social media:
- πΊπΈ [Telegram](https://t.me/neafiol)
- πΊπΈ [Twitter](https://twitter.com/p_volnov)
- PyPI: [py-near](https://pypi.python.org/pypi/py-near)
- Documentation: [py-near.readthedocs.io](https://py-near.readthedocs.io/en/latest)
- Source: [Github repo](https://github.com/pvolnov/py-near)
- Issues/Bug tracker: [Github issues tracker](https://github.com/pvolnov/py-near/issues)
## Contributors
### Code Contributors
This project exists thanks to all the people who contribute. [[Code of conduct](CODE_OF_CONDUCT.md)].