def constructTx(self):
        """ Construct the actual transaction and store it in the class's dict
            store
        """
        if self.bitshares.proposer:
            ops = [operations.Op_wrapper(op=o) for o in list(self.ops)]
            proposer = Account(self.bitshares.proposer,
                               bitshares_instance=self.bitshares)
            ops = operations.Proposal_create(
                **{
                    "fee": {
                        "amount": 0,
                        "asset_id": "1.3.0"
                    },
                    "fee_paying_account":
                    proposer["id"],
                    "expiration_time":
                    transactions.formatTimeFromNow(
                        self.bitshares.proposal_expiration),
                    "proposed_ops": [o.json() for o in ops],
                    "extensions": []
                })
            ops = [Operation(ops)]
        else:
            ops = [Operation(o) for o in list(self.ops)]

        ops = transactions.addRequiredFees(self.bitshares.rpc, ops)
        expiration = transactions.formatTimeFromNow(self.bitshares.expiration)
        ref_block_num, ref_block_prefix = transactions.getBlockParams(
            self.bitshares.rpc)
        tx = Signed_Transaction(ref_block_num=ref_block_num,
                                ref_block_prefix=ref_block_prefix,
                                expiration=expiration,
                                operations=ops)
        super(TransactionBuilder, self).__init__(tx.json())
 def test_create_proposal(self):
     self.op = operations.Proposal_create(
         **{
             "fee": {"amount": 0, "asset_id": "1.3.0"},
             "fee_paying_account": "1.2.0",
             "expiration_time": "1970-01-01T00:00:00",
             "proposed_ops": [
                 {
                     "op": [
                         0,
                         {
                             "fee": {"amount": 0, "asset_id": "1.3.0"},
                             "from": "1.2.0",
                             "to": "1.2.0",
                             "amount": {"amount": 0, "asset_id": "1.3.0"},
                             "extensions": [],
                         },
                     ]
                 }
             ],
             "extensions": [],
         }
     )
     self.cm = (
         "f68585abf4dce7c80457011600000000000000000000000000"
         "00010000000000000000000000000000000000000000000000"
         "00000001204baf7f11a7ff12337fc097ac6e82e7b68f82f02c"
         "c7e24231637c88a91ae5716674acec8a1a305073165c65e520"
         "a64769f5f62c0301ce21ab4f7c67a6801b4266"
     )
     self.doit()
 def test_create_proposal(self):
     op = operations.Proposal_create(
         **{
             "fee": {
                 "amount": 0,
                 "asset_id": "1.3.0"
             },
             "fee_paying_account":
             "1.2.0",
             "expiration_time":
             "1970-01-01T00:00:00",
             "proposed_ops": [{
                 "op": [
                     0, {
                         "fee": {
                             "amount": 0,
                             "asset_id": "1.3.0"
                         },
                         "from": "1.2.0",
                         "to": "1.2.0",
                         "amount": {
                             "amount": 0,
                             "asset_id": "1.3.0"
                         },
                         "extensions": []
                     }
                 ]
             }],
             "extensions": []
         })
     ops = [Operation(op)]
     tx = Signed_Transaction(ref_block_num=ref_block_num,
                             ref_block_prefix=ref_block_prefix,
                             expiration=expiration,
                             operations=ops)
     tx = tx.sign([wif], chain=prefix)
     tx.verify([PrivateKey(wif).pubkey], "BTS")
     txWire = hexlify(bytes(tx)).decode("ascii")
     compare = ("f68585abf4dce7c80457011600000000000000000000000000"
                "00010000000000000000000000000000000000000000000000"
                "00000001204baf7f11a7ff12337fc097ac6e82e7b68f82f02c"
                "c7e24231637c88a91ae5716674acec8a1a305073165c65e520"
                "a64769f5f62c0301ce21ab4f7c67a6801b4266")
     self.assertEqual(compare[:-130], txWire[:-130])
Ejemplo n.º 4
0
 def get_raw(self):
     """ Returns an instance of base "Operations" for further processing
     """
     if not self.ops:
         return
     ops = [operations.Op_wrapper(op=o) for o in list(self.ops)]
     proposer = Account(self.proposer, bitshares_instance=self.bitshares)
     data = {
         "fee": {
             "amount": 0,
             "asset_id": "1.3.0"
         },
         "fee_paying_account":
         proposer["id"],
         "expiration_time":
         transactions.formatTimeFromNow(self.proposal_expiration),
         "proposed_ops": [o.json() for o in ops],
         "extensions": []
     }
     if self.proposal_review:
         data.update({"review_period_seconds": self.proposal_review})
     ops = operations.Proposal_create(**data)
     return Operation(ops)