def test_from_xdr_obj_muxed_account(self):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     destination = (
         "MAAAAAAAAAAAJURAAB2X52XFQP6FBXLGT6LWOOWMEXWHEWBDVRZ7V5WH34Y22MPFBHUHY"
     )
     send_asset = Asset(
         "USD", "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"
     )
     dest_asset = Asset(
         "USD", "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"
     )
     send_amount = "3.1415000"
     dest_min = "3.0070000"
     path = [
         Asset("USD", "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"),
         Asset("EUR", "GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL"),
     ]
     origin_xdr_obj = PathPaymentStrictSend(
         destination, send_asset, send_amount, dest_asset, dest_min, path, source
     ).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, PathPaymentStrictSend)
     assert op.source == source
     assert op.destination == destination
     assert op.send_asset == send_asset
     assert op.dest_asset == dest_asset
     assert op.send_amount == "3.1415"
     assert op.dest_min == "3.007"
     assert op.path == path
 def test_from_xdr_obj(self):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     destination = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"
     send_asset = Asset(
         "USD", "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"
     )
     dest_asset = Asset(
         "USD", "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"
     )
     send_amount = "3.1415000"
     dest_min = "3.0070000"
     path = [
         Asset("USD", "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"),
         Asset("EUR", "GDTNXRLOJD2YEBPKK7KCMR7J33AAG5VZXHAJTHIG736D6LVEFLLLKPDL"),
     ]
     origin_xdr_obj = PathPaymentStrictSend(
         destination, send_asset, send_amount, dest_asset, dest_min, path, source
     ).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, PathPaymentStrictSend)
     assert op.source == source
     assert op.destination == destination
     assert op.send_asset == send_asset
     assert op.dest_asset == dest_asset
     assert op.send_amount == "3.1415"
     assert op.dest_min == "3.007"
     assert op.path == path
 def test_from_xdr_obj(self):
     bump_to = 123123123
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     origin_xdr_obj = BumpSequence(bump_to, source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, BumpSequence)
     assert op.source == source
     assert op.bump_to == bump_to
 def test_from_xdr_obj(self):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     destination = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"
     origin_xdr_obj = AccountMerge(destination, source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, AccountMerge)
     assert op.source == source
     assert op.destination == destination
 def test_from_xdr_obj(self):
     asset = Asset("USD", "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7")
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     limit = "123456.789"
     origin_xdr_obj = ChangeTrust(asset, limit, source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, ChangeTrust)
     assert op.source == source
     assert op.limit == limit
     assert op.asset == asset
 def test_from_xdr_obj_muxed_account(self):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     destination = (
         "MAAAAAAAAAAAJURAAB2X52XFQP6FBXLGT6LWOOWMEXWHEWBDVRZ7V5WH34Y22MPFBHUHY"
     )
     origin_xdr_obj = AccountMerge(destination, source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, AccountMerge)
     assert op.source == source
     assert op.destination == destination
    def test_get_source_no_exist_from_xdr_obj(self):  # BAD TEST
        destination = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"
        starting_balance = "1000.00"
        origin_op = CreateAccount(destination, starting_balance)
        origin_xdr_obj = origin_op.to_xdr_object()

        op = Operation.from_xdr_object(origin_xdr_obj)
        assert op.source == None
        assert op.starting_balance == "1000"
        assert op.destination == destination
 def test_from_xdr_obj(self, name, value):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     origin_xdr_obj = ManageData(name, value, source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, ManageData)
     assert op.source == source
     assert op.data_name == name
     if isinstance(value, str):
         value = value.encode()
     assert op.data_value == value
    def test_get_source_exist_from_xdr_obj(self):  # BAD TEST
        source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
        destination = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"
        starting_balance = "1000.00"
        origin_op = CreateAccount(destination, starting_balance, source)
        origin_xdr_obj = origin_op.to_xdr_object()

        op = Operation.from_xdr_object(origin_xdr_obj)
        assert op.source == source
        assert op.starting_balance == "1000"
        assert op.destination == destination
Example #10
0
 def test_from_xdr_obj(self, asset_code, authorize):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     trustor = "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7"
     origin_xdr_obj = AllowTrust(trustor, asset_code, authorize,
                                 source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, AllowTrust)
     assert op.source == source
     assert op.trustor == trustor
     assert op.asset_code == asset_code
     assert op.authorize == authorize
    def test_get_muxed_account_source_exist_from_xdr_obj(self):  # BAD TEST
        source = "MAAAAAAAAAAAJURAAB2X52XFQP6FBXLGT6LWOOWMEXWHEWBDVRZ7V5WH34Y22MPFBHUHY"
        destination = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"
        starting_balance = "1000.00"
        origin_op = CreateAccount(destination, starting_balance, source)
        origin_xdr_obj = origin_op.to_xdr_object()

        op = Operation.from_xdr_object(origin_xdr_obj)
        assert op.source == source
        assert op.starting_balance == "1000"
        assert op.destination == destination
def _check_payment_op(
    operation: Operation, want_asset: str, want_amount: float
) -> bool:
    return (
        operation.type_code() == Xdr.const.PAYMENT
        and str(operation.destination) == settings.STELLAR_DISTRIBUTION_ACCOUNT_ADDRESS
        and str(operation.asset.code) == want_asset
        and
        # TODO: Handle multiple possible asset issuance accounts
        str(operation.asset.issuer) == settings.STELLAR_ISSUER_ACCOUNT_ADDRESS
        and float(operation.amount) == want_amount
    )
Example #13
0
 def _check_payment_op(operation: Operation, want_asset: str,
                       want_amount: Decimal) -> bool:
     # TODO: Add test cases!
     issuer = operation.asset.issuer
     code = operation.asset.code
     asset = settings.ASSETS.get(code, {})
     return (operation.type_code() == Xdr.const.PAYMENT and str(
         operation.destination) == asset.get("DISTRIBUTION_ACCOUNT_ADDRESS")
             and str(code) == want_asset and
             # TODO: Handle multiple possible asset issuance accounts
             str(issuer) == asset.get("ISSUER_ACCOUNT_ADDRESS")
             and Decimal(operation.amount) == want_amount)
 def test_from_xdr_obj(self):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     destination = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"
     amount = "1000.0000000"
     asset = Asset("USD", "GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7")
     origin_xdr_obj = Payment(destination, asset, amount, source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, Payment)
     assert op.source == source
     assert op.destination == destination
     assert op.amount == "1000"
     assert op.asset == asset
 def test_to_xdr(self, selling, buying, amount, price, source, xdr):
     op = CreatePassiveSellOffer(selling, buying, amount, price, source)
     xdr_obj = op.to_xdr_object()
     assert xdr_obj.to_xdr() == xdr
     from_instance = Operation.from_xdr_object(xdr_obj)
     assert isinstance(from_instance, CreatePassiveSellOffer)
     assert from_instance.source == source
     assert from_instance.buying == buying
     assert from_instance.selling == selling
     assert Decimal(from_instance.amount) == Decimal(amount)
     if not isinstance(price, Price):
         price = Price.from_raw_price(price)
     assert from_instance.price == price
 def _cast_operation_and_result(
     cls, operation: Operation, op_result: Xdr.types.OperationResult
 ) -> Tuple[Optional[PaymentOp], Optional[PaymentOpResult]]:
     code = operation.type_code()
     op_xdr_obj = operation.to_xdr_object()
     if code == Xdr.const.PAYMENT:
         return (
             Payment.from_xdr_object(op_xdr_obj),
             op_result.tr.paymentResult,
         )
     elif code == Xdr.const.PATH_PAYMENT_STRICT_SEND:
         return (
             PathPaymentStrictSend.from_xdr_object(op_xdr_obj),
             op_result.tr.pathPaymentStrictSendResult,
         )
     elif code == Xdr.const.PATH_PAYMENT_STRICT_RECEIVE:
         return (
             PathPaymentStrictReceive.from_xdr_object(op_xdr_obj),
             op_result.tr.pathPaymentStrictReceiveResult,
         )
     else:
         return None, None
 def test_to_xdr(self, selling, buying, amount, price, offer_id, source, xdr):
     op = ManageBuyOffer(selling, buying, amount, price, offer_id, source)
     xdr_obj = op.to_xdr_object()
     assert xdr_obj.to_xdr() == xdr
     from_instance = Operation.from_xdr_object(xdr_obj)
     assert isinstance(from_instance, ManageBuyOffer)
     assert from_instance.source == source
     assert from_instance.buying == buying
     assert from_instance.selling == selling
     assert from_instance.amount == amount
     if not isinstance(price, Price):
         price = Price.from_raw_price(price)
     assert from_instance.price == price
     assert from_instance.offer_id == offer_id
Example #18
0
    def test_get_source_muxed_from_xdr_obj(self):  # BAD TEST
        destination = "GCEZWKCA5VLDNRLN3RPRJMRZOX3Z6G5CHCGSNFHEYVXM3XOJMDS674JZ"
        source = "GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB"
        source2 = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
        starting_balance = "1000.00"
        origin_op = CreateAccount(destination, starting_balance, source)
        origin_xdr_obj = origin_op.to_xdr_object()

        op = Operation.from_xdr_object(origin_xdr_obj)
        assert op.to_xdr_object().to_xdr() == origin_xdr_obj.to_xdr()
        assert op.source == source
        assert (
            op._source_muxed.to_xdr()
            == Keypair.from_public_key(source).xdr_muxed_account().to_xdr()
        )
        op.source = source2
        assert op.source == source2
        assert op._source_muxed is None
 def test_to_xdr(
     self,
     inflation_dest,
     clear_flags,
     set_flags,
     master_weight,
     low_threshold,
     med_threshold,
     high_threshold,
     home_domain,
     signer,
     source,
     xdr,
 ):
     op = SetOptions(
         inflation_dest,
         clear_flags,
         set_flags,
         master_weight,
         low_threshold,
         med_threshold,
         high_threshold,
         signer,
         home_domain,
         source,
     )
     xdr_obj = op.to_xdr_object()
     assert xdr_obj.to_xdr() == xdr
     from_instance = Operation.from_xdr_object(xdr_obj)
     assert isinstance(from_instance, SetOptions)
     assert from_instance.source == source
     assert from_instance.clear_flags == clear_flags
     assert from_instance.set_flags == set_flags
     assert from_instance.master_weight == master_weight
     assert from_instance.low_threshold == low_threshold
     assert from_instance.med_threshold == med_threshold
     assert from_instance.high_threshold == high_threshold
     assert from_instance.signer == signer
     assert from_instance.home_domain == home_domain
 def test_from_xdr_obj(self):
     source = "GDL635DMMORJHKEHHQIIB4VPYM6YGEMPLORYHHM2DEHAUOUXLSTMHQDV"
     origin_xdr_obj = Inflation(source).to_xdr_object()
     op = Operation.from_xdr_object(origin_xdr_obj)
     assert isinstance(op, Inflation)
     assert op.source == source
Example #21
0
 def _check_payment_op(operation: Operation, want_asset: Asset) -> bool:
     return (operation.type_code() == Xdr.const.PAYMENT and str(
         operation.destination) == want_asset.distribution_account
             and str(operation.asset.code) == want_asset.code
             and str(operation.asset.issuer) == want_asset.issuer)
 def test_to_xdr_amount_raise(self, origin_amount, exception, reason):
     with pytest.raises(exception, match=reason):
         Operation.to_xdr_amount(origin_amount)
 def test_from_xdr_amount(self, origin_amount, expect_value):
     assert Operation.from_xdr_amount(origin_amount) == expect_value