Skip to main content

Lightweight Python library for BitShares

Project description

+-------------------------------------------------+
|   ____  _ _   ____  _                           |
|  | __ )(_) |_/ ___|| |__   __ _ _ __ ___  ___   |
|  |  _ \| | __\___ \| '_ \ / _` | '__/ _ \/ __|  |
|  | |_) | | |_ ___) | | | | (_| | | |  __/\__ \  |
|  |____/|_|\__|____/|_| |_|\__,_|_|  \___||___/  |
|        ____  _             _                    |
|       / ___|(_) __ _ _ __ (_)_ __   __ _        |
|       \___ \| |/ _` | '_ \| | '_ \ / _` |       |
|        ___) | | (_| | | | | | | | | (_| |       |
|       |____/|_|\__, |_| |_|_|_| |_|\__, |       |
|                |___/               |___/        |
+-------------------------------------------------+

WTFPL litepresence.com Dec 2021 & squidKid-deluxe Mar 2025

ManualSigning re-imagined


Authenticated BUY/SELL/CANCEL without Pybitshares (MIT) Architecture

def WTFPL_v0_March_1765():
    if any([stamps, licenses, taxation, regulation, fiat, etat]):
        try:
            print("No thank you!")
        except:
            return [tar, feathers]

ALPHA RELEASE - PUBLIC DOMAIN, NO WARRANTY

Joe, a CEX algorithmic trader, discovers Bitshares DEX and asks:

"How do I get reliable public API data that never goes stale?"

  • metaNODE.py

"How do I authenticate to the DEX?"

  • manualSIGNING.py

Seven small scripts, totaling a mere 105kb, and DEX algo trading barriers to entry are defeated.

You’re instantly connected and authenticated.

Buy, sell, and cancel orders with seamless connectivity and simple authentication — CEX-style data at your fingertips.

FEATURES

  • prototype_order() generates an order header template.
  • Edicts can include any combination of operations.
  • Automatically scales buy/sell orders to prevent exceeding account budget.
  • Ensure you always have enough funds to cover transaction fees with the last two Bitshares.
  • Uses multiprocessing to handle websockets and manage faulty order timeouts.
  • New edict {'op': login} matches a WIF (Wallet Import Format) to an account name and returns True/False.
  • No dependencies on Pybitshares!

HOW DO I USE THIS TOOL?

An order is structured as a dictionary of:

['edicts', 'header', 'nodes']

See help(bitshares_signing.quickstart) for detailed examples.

OBJECTIVES

  • Use only standard Python objects. ✅
  • Collect necessary Pybitshares objects (copy, paste, cite). ✅
  • Strip unnecessary methods from Pybitshares objects. ✅
  • Reorganize classes and definitions in a logical, chronological order. ✅
  • Enable users to create orders using simple, human-readable terms. ✅
  • Build transactions using Graphene-style terms. ✅
  • Serialize transactions. ✅
  • Validate serialization using get_transaction_hex_without_sig(). ✅
  • Sign transactions with ECDSA. ✅
  • Validate signed transactions. ✅
  • Broadcast transactions to an RPC node. ✅
  • Make the script importable as a module and callable with broker(order). ✅
  • Allow for a list of buy/sell/cancel actions (edicts). ✅
  • Implement cancel-all functionality. ✅
  • Provide extensive line-by-line commentary for clarity. ✅

ONGOING:

  • Make prototype_order take token- and user- names, rather than ids
  • Add Liquidity pool swap/stake/unstake
  • Simplify and condense Pybitshares methods. (Still in progress)
  • Expand and finalize the manualSIGNINGwhitepaper.md. (5200-word rough draft available)
  • Transition from object-oriented (class-based) to procedural (function-based) style. (Planned)

DEPENDENCIES

  • Python 3
  • Linux recommended, other OSes have not been tested
  • ecdsa, secp256k1, and websocket-client. (pip3 install -r requirements.txt to get the right versions)

Note: bitshares_signing has not been tested on python3.10+; for reliable use, use python3.6.9 to python3.9

LICENSE:

Citations to Pybitshares (MIT) & @xeroc as needed. Special thanks to @vvk123, @sschiessl, and @harukaff_bot. All remaining rights under WTFPL March 1765.

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

bitshares_signing-1.3.0.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bitshares_signing-1.3.0-py3-none-any.whl (47.1 kB view details)

Uploaded Python 3

File details

Details for the file bitshares_signing-1.3.0.tar.gz.

File metadata

  • Download URL: bitshares_signing-1.3.0.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bitshares_signing-1.3.0.tar.gz
Algorithm Hash digest
SHA256 4dd22e4d48e5c019da22ae0177dc76f8e3669d447c81b9a909f7f1c5060dea94
MD5 2bbf31ec3a64ce1571a431adc8e67bc8
BLAKE2b-256 1e199e21ba100f2a5445e413ed163330fd761ab3b53711b684686b8aebbad926

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitshares_signing-1.3.0.tar.gz:

Publisher: python-publish.yml on squidKid-deluxe/bitshares-signing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bitshares_signing-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bitshares_signing-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86208c017b68ae1323c09c50846e9328a63570f9e695cb60486b726685209343
MD5 5c940e0fb4c4e2428cebe227f4b91785
BLAKE2b-256 01ca80c26e827d86818fea3885b9652447d3d2fa2b00e9bc6d65f3b20a43bfbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for bitshares_signing-1.3.0-py3-none-any.whl:

Publisher: python-publish.yml on squidKid-deluxe/bitshares-signing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page