Skip to content

Commit

Permalink
Added example in readme
Browse files Browse the repository at this point in the history
  • Loading branch information
madnesspie committed May 9, 2020
1 parent 6c6b597 commit bce309a
Showing 1 changed file with 85 additions and 1 deletion.
86 changes: 85 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,98 @@ pip install obm
# Features
- Async and sync top-level ORM-like API
- BTC (bitcoin-core) and ETH (geth) support
- Implemented `list-transactions` for ETH
- Implemented transaction fetching for Ethereum
- Unified API for sending/receiving transactions, addresses creation and fee
estimating

## In future
- NodePool model for node horizontal scaling
- Support for: ETH, ETC, DASH, BCH, LTC, ZEC, XEM, XRP, etc.

# Example
It uses python built-in async REPL to show asynchronous API
features. Use to launch `python -m asyncio` (Python
3.8 or higher).
```python
>>> import asyncio
>>> from obm import models
>>> btc = models.Node(
... name="bitcoin-core",
... rpc_port=18332,
... rpc_username="testnet_user",
... rpc_password="testnet_pass",
... )
>>> eth = models.Node(
... name="geth",
... rpc_port=8545,
... )
>>> # Transaction fetching
>>> await btc.fetch_recent_transactions(limit=1)
[
{
"txid": "cc8c9f7a86261fcb00d68b62073c740b8a0e14079d67e44fd726e0de2954c69a",
"from_address": "2NAmne8BsSXWbV5iStkVzL4vW7Z4F6a5o68",
"to_address": "2NAmne8BsSXWbV5iStkVzL4vW7Z4F6a5o68",
"amount": Decimal("0.00000866"),
"fee": Decimal("0.00000134"),
"block_number": 1722208,
"category": "oneself",
"timestamp": 1588076404,
"info": {...}, # original content
}
]
>>> await eth.fetch_recent_transactions(limit=1)
[
{
"txid": "0x4831820db0de1aad336c7a083b2504ad0b91eba293e5d7a6fa3bef49f660766c",
"from_address": "0xe1082e71f1ced0efb0952edd23595e4f76840128",
"to_address": "0xb610de1be67b10c746afec8fe74ad14d97e34146",
"amount": Decimal("0.000029"),
"fee": Decimal("0.000021"),
"block_number": 6394779,
"category": "oneself",
"timestamp": None,
"info": {...}, # original content
}
]
>>> # Transaction sending
>>> await btc.send_transaction(
... amount=0.00001,
... to_address='2NAmne8BsSXWbV5iStkVzL4vW7Z4F6a5o68',
... subtract_fee_from_amount=True,
... )
{
"txid": "cc8c9f7a86261fcb00d68b62073c740b8a0e14079d67e44fd726e0de2954c69a",
"from_address": "2NAmne8BsSXWbV5iStkVzL4vW7Z4F6a5o68",
"to_address": "2NAmne8BsSXWbV5iStkVzL4vW7Z4F6a5o68",
"amount": Decimal("0.00000866"),
"fee": Decimal("0.00000134"),
"block_number": None,
"category": "oneself",
"timestamp": 1588076404,
"info": {...},
}
>>> await eth.send_transaction(
... amount=0.00005,
... from_address='0xe1082e71f1ced0efb0952edd23595e4f76840128',
... to_address='0xb610de1be67b10c746afec8fe74ad14d97e34146',
... subtract_fee_from_amount=True,
... password="abc",
... )
{
"txid": "0x4831820db0de1aad336c7a083b2504ad0b91eba293e5d7a6fa3bef49f660766c",
"from_address": "0xe1082e71f1ced0efb0952edd23595e4f76840128",
"to_address": "0xb610de1be67b10c746afec8fe74ad14d97e34146",
"amount": Decimal("0.000029"),
"fee": Decimal("0.000021"),
"block_number": None,
"category": "oneself",
"timestamp": None,
"info": {...},
}
```


# Is OBM production ready?
The project is now under active development and it haven't reached the stable
API yet. Use at your own risk and lock dependency version on minore.
Expand Down

0 comments on commit bce309a

Please sign in to comment.