graphenecommon.transactionbuilder module

class graphenecommon.transactionbuilder.ProposalBuilder(proposer, proposal_expiration=None, proposal_review=None, parent=None, *args, **kwargs)

Bases: graphenecommon.instance.AbstractBlockchainInstanceProvider

Proposal Builder allows us to construct an independent Proposal that may later be added to an instance of TransactionBuilder

Parameters:
  • proposer (str) – Account name of the proposing user
  • proposal_expiration (int) – Number seconds until the proposal is supposed to expire
  • proposal_review (int) – Number of seconds for review of the proposal
  • transactionbuilder.TransactionBuilder – Specify your own instance of transaction builder (optional)
  • blockchain_instance (instance) – Blockchain instance
appendOps(ops, append_to=None)

Append op(s) to the transaction builder

Parameters:ops (list) – One or a list of operations
broadcast()
get_parent()

This allows to referr to the actual parent of the Proposal

get_raw()

Returns an instance of base “Operations” for further processing

is_empty()
json()

Return the json formated version of this proposal

list_operations()
set_expiration(p)
set_parent(p)
set_proposer(p)
set_review(p)
class graphenecommon.transactionbuilder.TransactionBuilder(tx={}, proposer=None, **kwargs)

Bases: dict, graphenecommon.instance.AbstractBlockchainInstanceProvider

This class simplifies the creation of transactions by adding operations and signers.

addSigningInformation(account, permission)

This is a private method that adds side information to a unsigned/partial transaction in order to simplify later signing (e.g. for multisig or coldstorage)

FIXME: Does not work with owner keys!

add_required_fees(ops, asset_id='1.3.0')

Auxiliary method to obtain the required fees for a set of operations. Requires a websocket connection to a witness node!

appendMissingSignatures()

Store which accounts/keys are supposed to sign the transaction

This method is used for an offline-signer!

appendOps(ops, append_to=None)

Append op(s) to the transaction builder

Parameters:ops (list) – One or a list of operations
appendSigner(accounts, permission)

Try to obtain the wif key from the wallet by telling which account and permission is supposed to sign the transaction

Parameters:
  • accounts (str,list,tuple,set) – accounts to sign transaction with
  • permission (str) – type of permission, e.g. “active”, “owner” etc
appendWif(wif)

Add a wif that should be used for signing of the transaction.

broadcast()

Broadcast a transaction to the blockchain network

Parameters:tx (tx) – Signed transaction to broadcast
clear()

Clear the transaction builder and start from scratch

constructTx()

Construct the actual transaction and store it in the class’s dict store

get_block_params(use_head_block=False)

Auxiliary method to obtain ref_block_num and ref_block_prefix. Requires a websocket connection to a witness node!

get_parent()

TransactionBuilders don’t have parents, they are their own parent

is_empty()
json()

Show the transaction as plain json

list_operations()
permission_types = ['active', 'owner']

Some graphene chains support more than just owner, active (e.g. steem also has ‘posting’)

set_expiration(p)
set_fee_asset(fee_asset)

Set asset to fee

sign()

Sign a provided transaction with the provided key(s)

Parameters:
  • tx (dict) – The transaction to be signed and returned
  • wifs (string) – One or many wif keys to use for signing a transaction. If not present, the keys will be loaded from the wallet as defined in “missing_signatures” key of the transactions.
verify_authority()

Verify the authority of the signed transaction