dposlibpackage aims to provide a simple API to any blockchain.
Support this project
Buy Ѧ and:
- Send Ѧ to
AUahWfkfr5J4tYakugRbfow7RWVTK35GPW - Vote
arkyon Ark blockchain and earn Ѧ weekly
Quick View
Documentation
Ubuntu dependencies installation
sudo apt-get install python python-dev python3 python3-dev
sudo apt-get install python-setuptools python3-setuptools
sudo apt-get install python-pip python3-pip
Available networks
| Network | Ark | Solar | Compendia |
|---|---|---|---|
| mainnet | ark |
sxp |
nos |
| testnet | - | tsxp |
- |
| devnet | dark |
- | dnos |
Main features
An intuitive REST API
>>> from dposlib import rest
>>> rest.use("dark")
True
>>> # ~/api/delegates/darktoons endpoint
>>> rest.GET.api.delegates.darktoons()
{'data': {'username': 'darktoons', 'address': 'D7seWn8JLVwX4nHd9hh2Lf7gvZNiRJ7qLk', 'publicKey': '03a02b9d5fdd1307c2ee4652ba54d492d1fd11a7d1bb3f3a44c4a05e79f19de933', 'votes': 9385785081642, 'rank': 45, 'blocks': {'produced': 32015, 'last': {'id': '9d5085e503e09c656152b541bc243155f560347aa8b377d3f2f9a1cb71900d90', 'height': 2544602, 'timestamp': {'epoch': 69406864, 'unix': 1559508064, 'human': '2019-06-02T20:41:04.000Z'}}}, 'production': {'approval': 0.07}, 'forged': {'fees': 14640580130, 'rewards': 6403000000000, 'total': 6417640580130}}}
>>> # ~/api/node/fees endpoint
>>> rest.GET.api.node.fees()
{'meta': {'days': 7}, 'data': [{'type': '0', 'min': '200000', 'max': '10000000', 'avg': '1089596', 'sum': '14887144978', 'median': '460000'}, {'type': '1', 'min': '500000000', 'max': '500000000', 'avg': '500000000', 'sum': '313500000000', 'median': '500000000'}, {'type': '3', 'min': '10000000', 'max': '100000000', 'avg': '58541781', 'sum': '1756253430', 'median': '61114510'}]}
>>> rest.use("ark")
True
>>> delegate0 = rest.GET.api.delegates(returnKey="data")[0]
>>> delegate0["username"]
u'binance_staking'
Fast way to interact with blockchain
>>> import dposlib
>>> rest.use("dark")
>>> # send 1 token to D7seWn8JLVwX4nHd9hh2Lf7gvZNiRJ7qLk with a simple message
>>> tx = dposlib.core.transfer(1, "D7seWn8JLVwX4nHd9hh2Lf7gvZNiRJ7qLk", "message")
>>> # sign tx with secret and [optional second secret]
>>> tx.finalize("first secret", "second secret")
>>> tx
{
"amount": 100000000,
"asset": {},
"fee": 1090241,
"id": "1e967879eb134712afd2b2a606be8460468b80aab857fa99a88cf8da0d72bd5d",
"recipientId": "D7seWn8JLVwX4nHd9hh2Lf7gvZNiRJ7qLk",
"senderId": "D7seWn8JLVwX4nHd9hh2Lf7gvZNiRJ7qLk",
"senderPublicKey": "03a02b9d5fdd1307c2ee4652ba54d492d1fd11a7d1bb3f3a44c4a05e79f19de933",
"signSignature": "3045022100a8dd9c50b18002bd6f8ffe9f1c0700cafb95de18670b48fa76afd85c3003a2d202200a1cc102c13857a38d8311a5c80a9222329f0c53f3305c70c91979efd5288d21",
"signature": "304402206576aee7893f3c038d58a6def5180881077531c4b1ebe87e835da2dbe40d0670022064ae37be3f160b0c969459e06912ee619997ccf303e6d919135cdf594a74b77d",
"timestamp": 69407340,
"type": 0,
"vendorField": "message"
}
>>> # broadcast transaction
>>> rest.POST.api.transactions(transactions=[tx])
{'data': {'accept': ['1e967879eb134712afd2b2a606be8460468b80aab857fa99a88cf8da0d72bd5d'], 'broadcast': ['1e967879eb134712afd2b2a606be8460468b80aab857fa99a88cf8da0d72bd5d'], 'excess': [], 'invalid': []}}
Network API
>>> import dposlib
>>> rest.use("ark")
>>> dlgt = dposlib.core.api.Delegate("arky") # get delegate by username
>>> dlgt.forged
{'fees': 3294.7, 'forged': 227230.7, 'rewards': 223936.0}
>>> dlgt.address
'ARfDVWZ7Zwkox3ZXtMQQY1HYSANMB88vWE'
>>> blk = dlgt.lastBlock # get last forged block
>>> blk
{
"blockSignature": "304402200a496a628c2741537538f0492f9d683d3c4f1b30c8dd03c33ad8fbe79d08b6eb02206cdec7e1210db53a3ca22da30912479ff3644d3a1ed1d878417d5965f34dfd6d",
"confirmations": 68,
"generatorId": "ARfDVWZ7Zwkox3ZXtMQQY1HYSANMB88vWE",
"generatorPublicKey": "030da05984d579395ce276c0dd6ca0a60140a3c3d964423a04e7abe110d60a15e9",
"height": 5862354,
"id": "1894085440657345411",
"numberOfTransactions": 0,
"payloadHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"payloadLength": 0,
"previousBlock": "11181074894913507025",
"reward": 2.0,
"timestamp": 47535768,
"totalAmount": 0.0,
"totalFee": 0.0,
"totalForged": 2.0,
"version": 0
}
>>> blk.transactions()
[]
>>> wlt = dlgt.wallet
>>> wlt.balance
2537.42979112
>>> wlt.link("secret passphrase here")
>>> wlt.send(1, "ARfDVWZ7Zwkox3ZXtMQQY1HYSANMB88vWE")
{'transactionIds': ['bbce72e7a76f5f71209c8ab29b4b4299a409241dfc77835150459a34bd5a5c16'], 'success': True}
Version
1.1.0 current work
1.0.0
- removed python 2.x compliancy
- removed
pytzdependency - added
solartestnet and mainnet -
pySecp256k1replaced bycSecp256k1 -
bip340schnorr signature implemented -
solartransactionv3implemented - ark package simplification
-
ark.api.Webhookimprovement -
multiVotemoved toswitchVote
0.3.5
- Ark-core v 3.0.x compliancy
- fee management improvement
- ledger.com Ark app support
-
multiVoteimplementation -
magistrateimplementation - Compendia network added
- Unikname network added
- packaging improvement
- switched from
sphinxtopydoc-markdowndoc builder
Older releases…
0.3.4
- removed
requestsdependency - multisignature api and app run as system services
0.3.3
- offline start fixed
-
api.Walletfixed - added pythonic
datetimeattribute toTransactionclass
0.3.2
- better
vendorFieldHexfield handling -
dposlib.blockchain.Transactionbehaviour improvement - tx versioning defined in
netmodule - bridge for ark-core 2.5 and 2.6
0.3.1
- multisignature client-server api
0.3.0
-
flake8compliancy - Ark 2.6 compatibility
- removed package resources dependencies
-
ecdsalib replaced by builtinsecp256k1 - added Iop mainnet and devnet
- Lisk and forks dev stopped
-
ldgrimport now optional - sphinx doc added
0.2.2
- Ark v2.5 headers fix
- Ark v2.5 BigInt fix
- packaging improvement
- rest
returnKeybehaviour improvement
0.2.1
- added
liskblockchain - added
shift,t.shiftandqreditnetwork - added .cold data in package distribution
- transaction types
0,1and3added to lisk.v09 network - python 2.x compliancy for util.data package
0.2.0
- ark.v2 api improvement
- dposlib.util.misc module improvement
- upVote/downVote bugfix
0.1.9
- travis-ci integration
- dposlib.core.Transaction interface improvement
- Ark v1 and v2 cross-dependency removed
- offline work feature added
0.1.8
- added ark v2.4 compatibility
- api wallet link using getpass library
- added ledger nano S support (transaction type 0, 1, 2 & 3)
- peer selection now checks syncing status
0.1.7
- added
transactionandrestMarkDown documentation files - dposlib.core.api is both python 2.x and 3.x compliant
- added Webhook api (experimental)
- fee data initialisation improvement
- transaction broadcasting improvement
- peer selection improvement
- Lisk blockchain and forks developpement frozen
0.1.6
- Ark-core v 2.1.x compatibility
0.1.5
- compatibility with both ark-core v2 devnet and mainnet
0.1.4
- Python 2.x compatibility fix
- dposlib.core.Transaction.sign does not set fees anymore
- dposlib.core.Transaction.finalize set fees before signature
- dposlib.core.Transaction fee management improved
0.1.3
- REST requests header bugfix (ubuntu)
0.1.2
- Packaging improvement
0.1.1
- ARK packaging improvement (
v1andv2) - LISK packaging improvement (
v09andv10) - ARK dynamicFee implementation
- Network API created
0.1.0
- First rebrand
Metadata
Release files for dposlib 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dposlib-1.0.0.tar.gz | 66.9 kB | Without provenance | Details for dposlib-1.0.0.tar.gz |
Release files / dposlib-1.0.0.tar.gz
| Download URL | dposlib-1.0.0.tar.gz |
|---|---|
| Size | 66.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6abe26ab0c72a5090551c60ec0d8a5dd0c5ecc473281f3cab6c8c887282e8231
|
|
BLAKE2b-256 checksum How to use checksums |
c4351f9c299efbcab5ee1bd550ce7bb69f5ee6fe830b5ad2f32805a3f396e236
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.4
|
Security for dposlib 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.