예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
 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
예제 #5
0
 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
예제 #6
0
    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
예제 #7
0
    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
예제 #8
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
예제 #9
0
 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
예제 #10
0
 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
예제 #11
0
 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
예제 #12
0
 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
예제 #13
0
 def test_from_xdr_amount(self, origin_amount, expect_value):
     assert Operation.from_xdr_amount(origin_amount) == expect_value
예제 #14
0
 def test_to_xdr_amount_raise(self, origin_amount, exception, reason):
     with pytest.raises(exception, match=reason):
         Operation.to_xdr_amount(origin_amount)
예제 #15
0
 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