Source code for bitshares.aio.transactionbuilder
# -*- coding: utf-8 -*-
from graphenecommon.aio.transactionbuilder import (
TransactionBuilder as GrapheneTransactionBuilder,
ProposalBuilder as GrapheneProposalBuilder,
)
from bitsharesbase import operations, transactions
from bitsharesbase.account import PrivateKey, PublicKey
from bitsharesbase.objects import Operation
from bitsharesbase.signedtransactions import Signed_Transaction
from .amount import Amount
from .asset import Asset
from .account import Account
from ..instance import BlockchainInstance
# Uses synchronous BlockchainInstance because it's __init__ is synchronous.
# Other methods will use async Instance.
[docs]@BlockchainInstance.inject
class ProposalBuilder(GrapheneProposalBuilder):
"""
Proposal Builder allows us to construct an independent Proposal that may later be
added to an instance ot TransactionBuilder.
:param str proposer: Account name of the proposing user
:param int proposal_expiration: Number seconds until the proposal is
supposed to expire
:param int proposal_review: Number of seconds for review of the
proposal
:param .transactionbuilder.TransactionBuilder: Specify
your own instance of transaction builder (optional)
:param instance blockchain_instance: Blockchain instance
"""
[docs] def define_classes(self):
self.operation_class = Operation
self.operations = operations
self.account_class = Account
# Uses synchronous BlockchainInstance because it's __init__ is synchronous.
# Other methods will use async Instance.
[docs]@BlockchainInstance.inject
class TransactionBuilder(GrapheneTransactionBuilder):
"""This class simplifies the creation of transactions by adding operations and
signers."""
[docs] def define_classes(self):
self.account_class = Account
self.asset_class = Asset
self.operation_class = Operation
self.operations = operations
self.privatekey_class = PrivateKey
self.publickey_class = PublicKey
self.signed_transaction_class = Signed_Transaction
self.amount_class = Amount