Skip to main content

Binance Chain Transaction Library

This library provides a low-level interface for interacting with different Binance Chain transactions.

Installation

pip3 install bnb-tx

Or, in your Pipfile:

bnb-tx = "==0.0.4"

Usage

The following is an example that uses the ecdsa library to sign.

import ecdsa
def uncompressed_public_key(sk):
    """ Derive uncompressed public key """
    order = sk.curve.generator.order()
    p = sk.verifying_key.pubkey.point
    x_str = ecdsa.util.number_to_string(p.x(), order)
    y_str = ecdsa.util.number_to_string(p.y(), order)
    uncompressed = b'\x04' + x_str + y_str
    return uncompressed


from binance_transaction import BnbTransaction, NewOrder, address_bytes, BUY, GTE, LIMIT_ORDER

sk = ecdsa.SigningKey.from_pem(open('secp256k1-key.pem').read())
from_address = 'bnb100dxzy02a6k7vysc5g4kk4fqamr7jhjg4m83l0'
account_number = 96025  # https://docs.binance.org/api-reference/dex-api/paths.html#apiv1accountaddress
sequence_number = 888
tx = BnbTransaction(account_number, sequence_number)
order_id = f'{address_bytes(from_address).hex().upper()}-{sequence_number + 1}'
tx.add_msg(NewOrder(from_address, order_id, 'BNB_TUSDB-888', LIMIT_ORDER, BUY, 3500000000, 500000000, GTE))
print(tx.signing_json())
sig = sk.sign_digest(tx.signing_hash())
public_key = uncompressed_public_key(sk)
tx.apply_sig(sig, public_key)
signed_transaction_bytes = tx.encode()
print(f'Signed bytes: {signed_transaction_bytes.hex()}')

Support

Not all transaction types are supported. Please consult this table for details. If you need support, please submit a pull request.

Message Type encode decode from_obj
Send
NewOrder
CancelOrder
Issue
Mint
Burn
Freeze
Unfreeze
TimeLock
TimeUnlock
TimeRelock
Proposal
Vote

Contributing

See CONTRIBUTING.

License

LGPLv3

Release files for bnb-tx 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bnb-tx 0.0.4
File Size Uploaded
bnb-tx-0.0.4.tar.gz 11.8 kB Details

Release files / bnb-tx-0.0.4.tar.gz

Download URL bnb-tx-0.0.4.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
eec6a746e0f30ccab21a6c222f8aad0a9eb64c519b65a650a0415fdbc90625fc
BLAKE2b-256 checksum
How to use checksums
198c1805c2cbafea27de316cab112103c1838a7064b952c7dd09b595c84fd7f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.0.4 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page