예제 #1
0
 def test_valid_manage_sell_offer_operation(self):
     raw_data = load_horizon_file("operations/manage_sell_offer.json")
     parsed_data = ManageSellOfferOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150661572935458818")
     self.assertEqual(parsed_data.paging_token, "150661572935458818")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GBLKRATZODTSJNU7XTB5HY5VAAN63CPRT77UYZT2VLCNXE7F3YHSW22M",
     )
     self.assertEqual(parsed_data.type, "manage_sell_offer")
     self.assertEqual(parsed_data.type_i, 3)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 6, 12, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "559fa74a4c492e2bc8402b77b1aec28725bf094825e3b78d571f2160501d0f56",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.amount, Decimal("478.6351404"))
     self.assertEqual(parsed_data.price, Decimal("32.6639943"))
     self.assertEqual(parsed_data.price_r.n, 326639943)
     self.assertEqual(parsed_data.price_r.d, 10000000)
     self.assertEqual(parsed_data.buying_asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.buying_asset_code, "RMT")
     self.assertEqual(
         parsed_data.buying_asset_issuer,
         "GDEGOXPCHXWFYY234D2YZSPEJ24BX42ESJNVHY5H7TWWQSYRN5ZKZE3N",
     )
     self.assertEqual(parsed_data.selling_asset_type, "native")
     self.assertEqual(parsed_data.selling_asset_code, None)
     self.assertEqual(parsed_data.selling_asset_issuer, None)
예제 #2
0
 def test_valid_begin_sponsoring_future_reserves_operation(self):
     raw_data = load_horizon_file("operations/begin_sponsoring_future_reserves.json")
     parsed_data = BeginSponsoringFutureReservesOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150660619450806273")
     self.assertEqual(parsed_data.paging_token, "150660619450806273")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GDDUVW72OCNRAVL752HXYJQTXEJQRYHDWU76YKGDEWZ5HCATZBSKJM7Y",
     )
     self.assertEqual(parsed_data.type, "begin_sponsoring_future_reserves")
     self.assertEqual(parsed_data.type_i, 16)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 5, 52, 6, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "41d80b1509a355d45271e0058c7ceac8ee616c2b5215bdb664ec55e50d2bad6c",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.sponsored_id,
         "GDS6ULV46WVSO2USGIVTIUDYBL3ROBPQEEANE3AY6XZION25DCNFIE2R",
     )
예제 #3
0
 def test_valid(self):
     raw_data = load_horizon_file("root.json")
     parsed_data = Root.parse_obj(raw_data)
     self.assertEqual(
         parsed_data.horizon_version,
         "2.2.0-7d7e58007af55e7697223009fd24daf76aa908e2",
     )
     self.assertEqual(
         parsed_data.core_version,
         "stellar-core 16.0.0 (0e35ac6ef382391096dbe4443197051452a3ce50)",
     )
     self.assertEqual(parsed_data.ingest_latest_ledger, 35075520)
     self.assertEqual(parsed_data.history_latest_ledger, 35075520)
     self.assertEqual(
         parsed_data.history_latest_ledger_closed_at,
         datetime.datetime(2021,
                           4,
                           24,
                           1,
                           31,
                           8,
                           tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(parsed_data.history_elder_ledger, 2)
     self.assertEqual(parsed_data.core_latest_ledger, 35075520)
     self.assertEqual(
         parsed_data.network_passphrase,
         "Public Global Stellar Network ; September 2015",
     )
     self.assertEqual(parsed_data.current_protocol_version, 16)
     self.assertEqual(parsed_data.core_supported_protocol_version, 16)
     self.assertEqual(parsed_data.links.self.href,
                      "https://horizon.stellar.org/")
     self.assertEqual(parsed_data.links.self.templated, None)
예제 #4
0
 def test_valid_create_account_operation(self):
     raw_data = load_horizon_file("operations/create_account.json")
     parsed_data = CreateAccountOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150661852106629126")
     self.assertEqual(parsed_data.paging_token, "150661852106629126")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GDYG6NVTFCY6HPBRQ3SQNKTDZUR7SS6WAWNEAKAFJW5EMKDGQLPG523C",
     )
     self.assertEqual(parsed_data.type, "create_account")
     self.assertEqual(parsed_data.type_i, 0)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 6, 17, 55, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "2d634bd0b1f5006a11555309fc812ff0ae21020c534697954631fd17b042eb06",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.account,
         "GCYXLFYRSJWRPQ7JYSPHDNFRNXQ377BNUHF3TDZCPCQMVJS2QKMXCT2E",
     )
     self.assertEqual(
         parsed_data.funder,
         "GDYG6NVTFCY6HPBRQ3SQNKTDZUR7SS6WAWNEAKAFJW5EMKDGQLPG523C",
     )
     self.assertEqual(parsed_data.starting_balance, Decimal("4.0000000"))
예제 #5
0
 def test_valid_payment_operation(self):
     raw_data = load_horizon_file("operations/payment.json")
     parsed_data = PaymentOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150661113372200961")
     self.assertEqual(parsed_data.paging_token, "150661113372200961")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GA6PS2RUKTEEEDNG463HAJWSMNCMG2Z7Q4ALYFQOHIKS47POTBVAU4QV",
     )
     self.assertEqual(parsed_data.type, "payment")
     self.assertEqual(parsed_data.type_i, 1)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 6, 2, 24, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "77d866660693f5c1550b1b5a8bb6583ded550e1c9687c68c83282443c8c91341",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.from_,
         "GA6PS2RUKTEEEDNG463HAJWSMNCMG2Z7Q4ALYFQOHIKS47POTBVAU4QV",
     )
     self.assertEqual(
         parsed_data.to, "GDLE7PMXCPKNALUQP6VLZTDUD2O5SJJ4GKKYXUME6KWHCPEAVGIWY6G6"
     )
     self.assertEqual(parsed_data.amount, Decimal("67.7492240"))
예제 #6
0
 def test_valid(self):
     raw_data = load_horizon_file("asset_stat.json")
     parsed_data = AssetStat.parse_obj(raw_data)
     self.assertEqual(parsed_data.asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.asset_code, "ZX2")
     self.assertEqual(
         parsed_data.asset_issuer,
         "GDBSQA2GDRBRZVWOMRLZ6V4ZN2UESRQAEIHGKCZDR3YO4QIMC3CLHPR3",
     )
     self.assertEqual(
         parsed_data.paging_token,
         "ZX2_GDBSQA2GDRBRZVWOMRLZ6V4ZN2UESRQAEIHGKCZDR3YO4QIMC3CLHPR3_credit_alphanum4",
     )
     self.assertEqual(parsed_data.num_accounts, 1)
     self.assertEqual(parsed_data.num_claimable_balances, 0)
     self.assertEqual(parsed_data.num_liquidity_pools, 0)
     self.assertEqual(parsed_data.amount, Decimal("1001"))
     self.assertEqual(parsed_data.accounts.authorized, 1)
     self.assertEqual(
         parsed_data.accounts.authorized_to_maintain_liabilities, 0)
     self.assertEqual(parsed_data.accounts.unauthorized, 0)
     self.assertEqual(parsed_data.claimable_balances_amount, Decimal("0"))
     self.assertEqual(parsed_data.liquidity_pools_amount, Decimal("0"))
     self.assertEqual(parsed_data.balances.authorized, Decimal("1001"))
     self.assertEqual(
         parsed_data.balances.authorized_to_maintain_liabilities,
         Decimal("0"))
     self.assertEqual(parsed_data.balances.unauthorized, Decimal("0"))
     self.assertEqual(parsed_data.flags.auth_required, False)
     self.assertEqual(parsed_data.flags.auth_revocable, False)
     self.assertEqual(parsed_data.flags.auth_immutable, False)
     self.assertEqual(parsed_data.flags.auth_clawback_enabled, False)
예제 #7
0
 def test_valid_end_sponsoring_future_reserves_operation(self):
     raw_data = load_horizon_file("operations/end_sponsoring_future_reserves.json")
     parsed_data = EndSponsoringFutureReservesOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150660606565855256")
     self.assertEqual(parsed_data.paging_token, "150660606565855256")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GD6XEQ7YNR2EQIDWFX6AISIPKKVBC5GXBV4X5GL73QUUZK5GMWJIN3LW",
     )
     self.assertEqual(parsed_data.type, "end_sponsoring_future_reserves")
     self.assertEqual(parsed_data.type_i, 17)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 5, 51, 49, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "4e4e2cc4ed2e31091db53762d74340f3689431b88321acc1c0935bbced6aa252",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.begin_sponsor,
         "GDDUVW72OCNRAVL752HXYJQTXEJQRYHDWU76YKGDEWZ5HCATZBSKJM7Y",
     )
예제 #8
0
 def test_valid_clawback_claimable_balance_operation(self):
     raw_data = load_horizon_file("operations/clawback_claimable_balance.json")
     parsed_data = ClawbackClaimableBalanceOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "3513936083165185")
     self.assertEqual(parsed_data.paging_token, "3513936083165185")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GD5YHBKE7FSUUZIOSL4ED6UKMM2HZAYBYGZI7KRCTMFDTOO6SGZCQB4Z",
     )
     self.assertEqual(parsed_data.type, "clawback_claimable_balance")
     self.assertEqual(parsed_data.type_i, 20)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 5, 6, 3, 48, 5, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "8820306ee424f47fd1c16b28ab034a3bdab0147fc16c65b145ba1df5f338c8a2",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.balance_id,
         "000000001fe36f3ce6ab6a6423b18b5947ce8890157ae77bb17faeb765814ad040b74ce1",
     )
예제 #9
0
 def test_valid_revoke_sponsorship_operation(self):
     raw_data = load_horizon_file("operations/revoke_sponsorship.json")
     parsed_data = RevokeSponsorshipOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "2731345797189633")
     self.assertEqual(parsed_data.paging_token, "2731345797189633")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GDD6DIT7PDSB6PZ5B5SBUKQBIHZDWWBZN4LCFDEHYIYI4DNTC4WXL4ZO",
     )
     self.assertEqual(parsed_data.type, "revoke_sponsorship")
     self.assertEqual(parsed_data.type_i, 18)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 25, 1, 46, 45, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "8a9cb28209126c9ac3691eca753f492606318268a0c3d27359e28ccd9bad0588",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.account_id,
         "GBAG5JOFNNE7B2FXLZGLV56U5NR2ZFHRS6FALKCX3W5CND27W4DM7TBX",
     )
예제 #10
0
 def test_valid_clawback_operation(self):
     raw_data = load_horizon_file("operations/clawback.json")
     parsed_data = ClawbackOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "3510036252856321")
     self.assertEqual(parsed_data.paging_token, "3510036252856321")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GCHYD6AWPR2PN66JFFDR63OEFO5RMOUGFL7D3BBUEMTJDMUFHPLNX2SC",
     )
     self.assertEqual(parsed_data.type, "clawback")
     self.assertEqual(parsed_data.type_i, 19)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 5, 6, 2, 28, 28, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "7c4b7f6ef383afba397b20628b1f2556d72eb092dc8b875093e9b92cde1b4889",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.asset_type, "credit_alphanum12")
     self.assertEqual(parsed_data.asset_code, "Hello")
     self.assertEqual(
         parsed_data.asset_issuer,
         "GCHYD6AWPR2PN66JFFDR63OEFO5RMOUGFL7D3BBUEMTJDMUFHPLNX2SC",
     )
     self.assertEqual(
         parsed_data.from_,
         "GCDG7N63GJMJDI4627LY3XKNZARQNX3QFY6HAWON3JDAS3SCGINGQHEQ",
     )
     self.assertEqual(parsed_data.amount, Decimal("1234"))
예제 #11
0
 def test_valid(self):
     raw_data = load_horizon_file("offer.json")
     parsed_data = Offer.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "544689347")
     self.assertEqual(parsed_data.paging_token, "544689347")
     self.assertEqual(
         parsed_data.seller,
         "GBB7HYFEUJLJLABG7EGSY54HM3QISTVCS4O3EANIGX5YFCOJK7A6MZAA",
     )
     self.assertEqual(parsed_data.selling.asset_type, "native")
     self.assertEqual(parsed_data.selling.asset_code, None)
     self.assertEqual(parsed_data.selling.asset_issuer, None)
     self.assertEqual(parsed_data.buying.asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.buying.asset_code, "SLVR")
     self.assertEqual(
         parsed_data.buying.asset_issuer,
         "GBZVELEQD3WBN3R3VAG64HVBDOZ76ZL6QPLSFGKWPFED33Q3234NSLVR",
     )
     self.assertEqual(parsed_data.amount, Decimal("677.1953280"))
     self.assertEqual(parsed_data.price_r.n, 10000000)
     self.assertEqual(parsed_data.price_r.d, 17500001)
     self.assertEqual(parsed_data.price, Decimal("0.5714285"))
     self.assertEqual(parsed_data.last_modified_ledger, 35067578)
     self.assertEqual(
         parsed_data.last_modified_time,
         datetime.datetime(2021,
                           4,
                           23,
                           13,
                           34,
                           40,
                           tzinfo=datetime.timezone.utc),
     )
예제 #12
0
 def test_valid_manage_data_operation(self):
     raw_data = load_horizon_file("operations/manage_data.json")
     parsed_data = ManageDataOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150660585091022850")
     self.assertEqual(parsed_data.paging_token, "150660585091022850")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GDPNHOQWJG6EFYCSSBJTNZH6L7YVQKIAQOKQDH6HDDV2OTDVTFVAF5GN",
     )
     self.assertEqual(parsed_data.type, "manage_data")
     self.assertEqual(parsed_data.type_i, 10)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 5, 51, 21, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "d050b7036b96b8eeb1735b9ed78b5d514b7f54126e519d8980c14b988ae6d479",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.name, "MESSAGE_DATA_0")
     self.assertEqual(
         parsed_data.value,
         "UW1kaDJ5d2hmclJmWmQ2elFrcnpSdDdTM1dCOUFLQnJ3dHBIQ0RGUm5OWmhTcA==",
     )
예제 #13
0
 def test_valid_claim_claimable_balance_operation(self):
     raw_data = load_horizon_file("operations/claim_claimable_balance.json")
     parsed_data = ClaimClaimableBalanceOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "2730894825627649")
     self.assertEqual(parsed_data.paging_token, "2730894825627649")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GAEY7JFLBBDD6PAUPVRVKMBNSL5W6GYMUOGJKNGHGFSFGJU6CT2IUARS",
     )
     self.assertEqual(parsed_data.type, "claim_claimable_balance")
     self.assertEqual(parsed_data.type_i, 15)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 25, 1, 37, 30, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "ebf78969b439f9b6c0777695c76a668e5baabe747696fbef7fc7d40b5cbe9a6d",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.balance_id,
         "00000000a5c8c85c12a32ec1b30fc1792a542ca38702afd78eb4fe524d028887cf6b6952",
     )
     self.assertEqual(
         parsed_data.claimant,
         "GAEY7JFLBBDD6PAUPVRVKMBNSL5W6GYMUOGJKNGHGFSFGJU6CT2IUARS",
     )
예제 #14
0
 def test_valid(self):
     raw_data = load_horizon_file("path.json")
     parsed_data = Path.parse_obj(raw_data)
     self.assertEqual(parsed_data.source_asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.source_asset_code, "CNY")
     self.assertEqual(
         parsed_data.source_asset_issuer,
         "GAREELUB43IRHWEASCFBLKHURCGMHE5IF6XSE7EXDLACYHGRHM43RFOX",
     )
     self.assertEqual(parsed_data.source_amount, Decimal("39.9854243"))
     self.assertEqual(parsed_data.destination_asset_type,
                      "credit_alphanum4")
     self.assertEqual(parsed_data.destination_asset_code, "BB1")
     self.assertEqual(
         parsed_data.destination_asset_issuer,
         "GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN",
     )
     self.assertEqual(parsed_data.destination_amount, Decimal("5"))
     self.assertEqual(len(parsed_data.path), 2)
     self.assertEqual(parsed_data.path[0].asset_type, "native")
     self.assertEqual(parsed_data.path[0].asset_code, None)
     self.assertEqual(parsed_data.path[0].asset_issuer, None)
     self.assertEqual(parsed_data.path[1].asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.path[1].asset_code, "USD")
     self.assertEqual(
         parsed_data.path[1].asset_issuer,
         "GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX",
     )
예제 #15
0
 def test_valid_account_merge_operation(self):
     raw_data = load_horizon_file("operations/account_merge.json")
     parsed_data = AccountMergeOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150661877876133889")
     self.assertEqual(parsed_data.paging_token, "150661877876133889")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GBMZ7GUHNHT6TG4ITOBG46TKA5YMNH7ZKHHJSQRU6PNYBSAELLXNOFDE",
     )
     self.assertEqual(parsed_data.type, "account_merge")
     self.assertEqual(parsed_data.type_i, 8)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 6, 18, 26, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "f86aaf456dc000e565ac89bd0b21abcedad4d3ab497bdb9fefa782c9e6ce8c98",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(
         parsed_data.account,
         "GBMZ7GUHNHT6TG4ITOBG46TKA5YMNH7ZKHHJSQRU6PNYBSAELLXNOFDE",
     )
     self.assertEqual(
         parsed_data.into, "GDYG6NVTFCY6HPBRQ3SQNKTDZUR7SS6WAWNEAKAFJW5EMKDGQLPG523C"
     )
예제 #16
0
 def test_valid_path_payment_strict_send_operation(self):
     raw_data = load_horizon_file("operations/path_payment_strict_send.json")
     parsed_data = PathPaymentStrictSendOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150660589386170369")
     self.assertEqual(parsed_data.paging_token, "150660589386170369")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GDBKRQWEUJGRWWCAGK75L4PZXM2S3DQQIG6S43Y2GMN3IUFZWCLSRA46",
     )
     self.assertEqual(parsed_data.type, "path_payment_strict_send")
     self.assertEqual(parsed_data.type_i, 13)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 5, 51, 27, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "add2a945914c8090a8f889e6fe6177c58fea0fe2c361893612462d0601f2eb31",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.asset_code, "BTC")
     self.assertEqual(
         parsed_data.asset_issuer,
         "GAUTUYY2THLF7SGITDFMXJVYH3LHDSMGEAKSBU267M2K7A3W543CKUEF",
     )
     self.assertEqual(
         parsed_data.from_,
         "GDBKRQWEUJGRWWCAGK75L4PZXM2S3DQQIG6S43Y2GMN3IUFZWCLSRA46",
     )
     self.assertEqual(
         parsed_data.to, "GDBKRQWEUJGRWWCAGK75L4PZXM2S3DQQIG6S43Y2GMN3IUFZWCLSRA46"
     )
     self.assertEqual(parsed_data.amount, Decimal("0.0005045"))
     self.assertEqual(len(parsed_data.path), 2)
     self.assertEqual(parsed_data.path[0].asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.path[0].asset_code, "ETH")
     self.assertEqual(
         parsed_data.path[0].asset_issuer,
         "GBDEVU63Y6NTHJQQZIKVTC23NWLQVP3WJ2RI2OTSJTNYOIGICST6DUXR",
     )
     self.assertEqual(parsed_data.path[1].asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.path[1].asset_code, "USDT")
     self.assertEqual(
         parsed_data.path[1].asset_issuer,
         "GCQTGZQQ5G4PTM2GL7CDIFKUBIPEC52BROAQIAPW53XBRJVN6ZJVTG6V",
     )
     self.assertEqual(parsed_data.source_amount, Decimal("57.4988800"))
     self.assertEqual(parsed_data.destination_min, Decimal("0.0004995"))
     self.assertEqual(parsed_data.source_asset_type, "native")
     self.assertEqual(parsed_data.source_asset_code, None)
     self.assertEqual(parsed_data.source_asset_issuer, None)
예제 #17
0
 def test_transaction_muxed_account_valid(self):
     raw_data = load_horizon_file("transaction_muxed_account.json")
     parsed_data = Transaction.parse_obj(raw_data)
     self.assertEqual(
         parsed_data.account_muxed,
         "MDSPXRRA5D4WD4LCR6NNZEHQJHHZ74UCPHXJT4SC7HCFWJFOFOLUUAAAAAAAAAAAPMRCO",
     )
     self.assertEqual(parsed_data.account_muxed_id, 123)
     self.assertEqual(
         parsed_data.fee_account_muxed,
         "MDSPXRRA5D4WD4LCR6NNZEHQJHHZ74UCPHXJT4SC7HCFWJFOFOLUUAAAAAAAAAAAPMRCO",
     )
     self.assertEqual(parsed_data.fee_account_muxed_id, 123)
예제 #18
0
 def test_valid_path_payment_strict_receive_operation(self):
     raw_data = load_horizon_file("operations/path_payment_strict_receive.json")
     parsed_data = PathPaymentStrictReceiveOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150661572933464065")
     self.assertEqual(parsed_data.paging_token, "150661572933464065")
     self.assertEqual(parsed_data.transaction_successful, False)
     self.assertEqual(
         parsed_data.source_account,
         "GDQLBBDNG5L3TZLR5RPVQFT4CUORSTHWX3GJBHCCADXBJV55ZHW6CL5B",
     )
     self.assertEqual(parsed_data.type, "path_payment_strict_receive")
     self.assertEqual(parsed_data.type_i, 2)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 6, 12, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "999119fca29afe1d994fb744e80afbb76efc9a4abb56e6ed8209b1248c0f629e",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.asset_type, "native")
     self.assertEqual(parsed_data.asset_code, None)
     self.assertEqual(parsed_data.asset_issuer, None)
     self.assertEqual(
         parsed_data.from_,
         "GDQLBBDNG5L3TZLR5RPVQFT4CUORSTHWX3GJBHCCADXBJV55ZHW6CL5B",
     )
     self.assertEqual(
         parsed_data.to, "GDQLBBDNG5L3TZLR5RPVQFT4CUORSTHWX3GJBHCCADXBJV55ZHW6CL5B"
     )
     self.assertEqual(parsed_data.amount, Decimal("2386.8885355"))
     self.assertEqual(parsed_data.source_amount, Decimal("0"))
     self.assertEqual(parsed_data.source_max, Decimal("2386.8885355"))
     self.assertEqual(parsed_data.source_asset_type, "native")
     self.assertEqual(parsed_data.source_asset_code, None)
     self.assertEqual(parsed_data.source_asset_issuer, None)
     self.assertEqual(len(parsed_data.path), 2)
     self.assertEqual(parsed_data.path[0].asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.path[0].asset_code, "USDC")
     self.assertEqual(
         parsed_data.path[0].asset_issuer,
         "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
     )
     self.assertEqual(parsed_data.path[1].asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.path[1].asset_code, "SLT")
     self.assertEqual(
         parsed_data.path[1].asset_issuer,
         "GCKA6K5PCQ6PNF5RQBF7PQDJWRHO6UOGFMRLK3DYHDOI244V47XKQ4GP",
     )
예제 #19
0
 def test_valid_change_trust_operation_liquidity_pool_id(self):
     raw_data = load_horizon_file("operations/change_trust_liquidity_pool_id.json")
     parsed_data = ChangeTrustOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "1578868632723457")
     self.assertEqual(parsed_data.paging_token, "1578868632723457")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GAQXAWHCM4A7SQCT3BOSVEGRI2OOB7LO2CMFOYFF6YRXU4VQSB5V2V2K",
     )
     self.assertEqual(
         parsed_data.source_account_muxed,
         "MAQXAWHCM4A7SQCT3BOSVEGRI2OOB7LO2CMFOYFF6YRXU4VQSB5V2AAAAAAAAE4DUGF2O",
     )
     self.assertEqual(parsed_data.source_account_muxed_id, 1278881)
     self.assertEqual(parsed_data.type, "change_trust")
     self.assertEqual(parsed_data.type_i, 6)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 10, 7, 18, 2, 57, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "4ebd36d6ae43622d606a0b7c59fd28d1c0b07d96bae7deb5c86e7b93a9c1c5c3",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.asset_type, "liquidity_pool_shares")
     self.assertEqual(
         parsed_data.liquidity_pool_id,
         "2c0bfa623845dd101cbf074a1ca1ae4b2458cc8d0104ad65939ebe2cd9054355",
     )
     self.assertEqual(parsed_data.limit, Decimal("922337203685.4775807"))
     self.assertEqual(
         parsed_data.trustee,
         None,
     )
     self.assertEqual(
         parsed_data.trustor,
         "GAQXAWHCM4A7SQCT3BOSVEGRI2OOB7LO2CMFOYFF6YRXU4VQSB5V2V2K",
     )
     self.assertEqual(
         parsed_data.trustor_muxed,
         "MAQXAWHCM4A7SQCT3BOSVEGRI2OOB7LO2CMFOYFF6YRXU4VQSB5V2AAAAAAAAE4DUGF2O",
     )
     self.assertEqual(
         parsed_data.trustor_muxed_id,
         1278881,
     )
예제 #20
0
 def test_valid_create_claimable_balance_operation(self):
     raw_data = load_horizon_file("operations/create_claimable_balance.json")
     parsed_data = CreateClaimableBalanceOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150684654087864322")
     self.assertEqual(parsed_data.paging_token, "150684654087864322")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5",
     )
     self.assertEqual(parsed_data.type, "create_claimable_balance")
     self.assertEqual(parsed_data.type_i, 14)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 14, 16, 59, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "bc00281659b1b3d25674fd078c294036476dbbde37403e70ab66b651fd829c18",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(
         parsed_data.sponsor,
         "GBGJB2WEIQCCUZYISUKAFRPR46LQ62O7W6CDKN52NVROG44LLL3L73X2",
     )
     self.assertEqual(
         parsed_data.asset,
         "USDPEND:GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5",
     )
     self.assertEqual(parsed_data.amount, Decimal("900"))
     self.assertEqual(len(parsed_data.claimants), 2)
     self.assertEqual(
         parsed_data.claimants[0].destination,
         "GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5",
     )
     self.assertEqual(parsed_data.claimants[0].predicate.unconditional, True)
     self.assertEqual(
         parsed_data.claimants[1].destination,
         "GCBMP2WKIAX7KVDRCSFXJWFM5P7HDCGTCC76U5XR52OYII6AOWS7G3DT",
     )
     self.assertEqual(
         parsed_data.claimants[1].predicate.not_predicate.abs_before,
         datetime.datetime(2021, 4, 26, 4, 0, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.claimants[1].predicate.not_predicate.abs_before_epoch,
         1619409600,
     )
예제 #21
0
 def test_valid_set_options_operation(self):
     raw_data = load_horizon_file("operations/set_options.json")
     parsed_data = SetOptionsOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "2696453482881025")
     self.assertEqual(parsed_data.paging_token, "2696453482881025")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GASM5Q5QTMV7K45AWLFY7CAJGSPXVRH3MUNN7N3P7X4JHAFSB6RXHWCC",
     )
     self.assertEqual(parsed_data.type, "set_options")
     self.assertEqual(parsed_data.type_i, 5)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 13, 55, 29, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "125c35e68b82b2a77970f1ccfa737e3a2e7b12e6c6bc683f9d415ed77a98f54e",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(len(parsed_data.set_flags), 1)
     self.assertEqual(parsed_data.set_flags[0], 1)
     self.assertEqual(len(parsed_data.set_flags_s), 1)
     self.assertEqual(parsed_data.set_flags_s[0], "auth_required")
     self.assertEqual(len(parsed_data.clear_flags), 1)
     self.assertEqual(parsed_data.clear_flags[0], 2)
     self.assertEqual(len(parsed_data.clear_flags_s), 1)
     self.assertEqual(parsed_data.clear_flags_s[0], "auth_revocable")
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.home_domain, "example.com")
     self.assertEqual(
         parsed_data.inflation_dest,
         "GDLSZ37Q6AJN6UNQPXIWNRAB3LETWAASA2H3OWNHRUWMG2LVU3A45S6D",
     )
     self.assertEqual(parsed_data.master_key_weight, 10)
     self.assertEqual(
         parsed_data.signer_key,
         "GDLSZ37Q6AJN6UNQPXIWNRAB3LETWAASA2H3OWNHRUWMG2LVU3A45S6D",
     )
     self.assertEqual(parsed_data.signer_weight, 10)
     self.assertEqual(parsed_data.low_threshold, 1)
     self.assertEqual(parsed_data.med_threshold, 10)
     self.assertEqual(parsed_data.high_threshold, 20)
예제 #22
0
 def test_valid(self):
     raw_data = load_horizon_file("ledger.json")
     parsed_data = Ledger.parse_obj(raw_data)
     self.assertEqual(
         parsed_data.id,
         "548393ec23959e1959a62f003029ecf96be89e13df036073bf64918996ec4227",
     )
     self.assertEqual(parsed_data.paging_token, "115352659677937664")
     self.assertEqual(
         parsed_data.hash,
         "548393ec23959e1959a62f003029ecf96be89e13df036073bf64918996ec4227",
     )
     self.assertEqual(
         parsed_data.prev_hash,
         "446d6eca81dd6db6daf50d93ca9d297bd60b1233b91de3765cccdf503cfffcb0",
     )
     self.assertEqual(parsed_data.sequence, 26857634)
     self.assertEqual(parsed_data.successful_transaction_count, 27)
     self.assertEqual(parsed_data.failed_transaction_count, 1)
     self.assertEqual(parsed_data.operation_count, 133)
     self.assertEqual(parsed_data.tx_set_operation_count, 134)
     self.assertEqual(
         parsed_data.closed_at,
         datetime.datetime(2019,
                           11,
                           18,
                           19,
                           27,
                           21,
                           tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(parsed_data.total_coins,
                      Decimal("105443902087.3472865"))
     self.assertEqual(parsed_data.fee_pool, Decimal("1807038.9789761"))
     self.assertEqual(parsed_data.base_fee_in_stroops, 100)
     self.assertEqual(parsed_data.base_reserve_in_stroops, 5000000)
     self.assertEqual(parsed_data.max_tx_set_size, 1000)
     self.assertEqual(parsed_data.protocol_version, 12)
     self.assertEqual(
         parsed_data.header_xdr,
         "AAAADERtbsqB3W222vUNk8qdKXvWCxIzuR3jdlzM31A8//ywoQieYsSc05/BpgEqnLR7fKXz7t0K42V7NOjbGZA/wTEAAAAAXdLwmQAAAAAAAAAAplf68mTg/Z/DDyEZeLCoNbJnMZm4SYsYWjUjuDOSfPeRNFE4n9Hm19yKutjwVurFjk72JKVHI8J+ELwLZgWsywGZ0KIOoh6z7HlbYQAAEG9XKhRBAAABFgAAAAAH9M6YAAAAZABMS0AAAAPop9+CeMs1/7BHgFltiQPH+VT+ACYb5P0lSXh7RpBLtd34kEpeL8qKJxYz4ufmkQ2lEv/HMR/i3bi1Rt0PYj185/0kAZ3ZRbmm2mVRMzmaCOak1rn2vejHXDh+MGlr6D6vI2tc/M6VIumTKUa7SgumWDyW0r5FcJTbu/FXDQ/6C4YAAAAA",
     )
 def test_valid(self):
     raw_data = load_horizon_file("trade_aggregation.json")
     parsed_data = TradeAggregation.parse_obj(raw_data)
     self.assertEqual(parsed_data.timestamp, 1619081700000)
     self.assertEqual(parsed_data.trade_count, 1)
     self.assertEqual(parsed_data.base_volume, Decimal("3.9000000"))
     self.assertEqual(parsed_data.counter_volume, Decimal("0.0000351"))
     self.assertEqual(parsed_data.avg, Decimal("0.0000090"))
     self.assertEqual(parsed_data.high, Decimal("0.0000090"))
     self.assertEqual(parsed_data.high_r.n, 9)
     self.assertEqual(parsed_data.high_r.d, 1000000)
     self.assertEqual(parsed_data.low, Decimal("0.0000090"))
     self.assertEqual(parsed_data.low_r.n, 9)
     self.assertEqual(parsed_data.low_r.d, 1000000)
     self.assertEqual(parsed_data.open, Decimal("0.0000090"))
     self.assertEqual(parsed_data.open_r.n, 9)
     self.assertEqual(parsed_data.open_r.d, 1000000)
     self.assertEqual(parsed_data.close, Decimal("0.0000090"))
     self.assertEqual(parsed_data.close_r.n, 9)
     self.assertEqual(parsed_data.close_r.d, 1000000)
예제 #24
0
 def test_valid_change_trust_operation_asset(self):
     raw_data = load_horizon_file("operations/change_trust_asset.json")
     parsed_data = ChangeTrustOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150661512804089860")
     self.assertEqual(parsed_data.paging_token, "150661512804089860")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GA26UJZUXR5Q2VMTJHAFS2DV6DKFRWBIN7JKDALGYFEXTRNGX5K6DEAZ",
     )
     self.assertEqual(parsed_data.type, "change_trust")
     self.assertEqual(parsed_data.type_i, 6)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 6, 10, 44, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "c96337fca2de58731dbfd7a70e90e1078af796e8c5b8f621584c4565311be4c1",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(
         parsed_data.sponsor,
         "GCZGSFPITKVJPJERJIVLCQK5YIHYTDXCY45ZHU3IRCUC53SXSCAL44JV",
     )
     self.assertEqual(parsed_data.asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.asset_code, "USDC")
     self.assertEqual(
         parsed_data.asset_issuer,
         "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
     )
     self.assertEqual(parsed_data.limit, Decimal("922337203685.4775807"))
     self.assertEqual(
         parsed_data.trustee,
         "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
     )
     self.assertEqual(
         parsed_data.trustor,
         "GA26UJZUXR5Q2VMTJHAFS2DV6DKFRWBIN7JKDALGYFEXTRNGX5K6DEAZ",
     )
예제 #25
0
 def test_valid_liquidity_pool(self):
     raw_data = load_horizon_file("trade_liquidity_pool.json")
     parsed_data = Trade.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "1567602933510145-0")
     self.assertEqual(parsed_data.paging_token, "1567602933510145-0")
     self.assertEqual(
         parsed_data.ledger_close_time,
         datetime.datetime(2021, 10, 7, 14, 13, 20, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(parsed_data.offer_id, None)
     self.assertEqual(parsed_data.trade_type, "liquidity_pool")
     self.assertEqual(parsed_data.liquidity_pool_fee_bp, 30)
     self.assertEqual(parsed_data.base_offer_id, "4613253621360898049")
     self.assertEqual(
         parsed_data.base_account,
         "GCUGVB6HXX56LMAYLTD2OJRJYGRGQRHQ4H5WFZRCWG4WOPCJSLFCWUZA",
     )
     self.assertEqual(parsed_data.base_amount, Decimal("10.0000000"))
     self.assertEqual(parsed_data.base_asset_type, "native")
     self.assertEqual(parsed_data.base_asset_code, None)
     self.assertEqual(parsed_data.base_asset_issuer, None)
     self.assertEqual(
         parsed_data.counter_liquidity_pool_id,
         "2389378a6156eedfac66daa000d24c926431c3e667b9f754771964f27a6da6ab",
     )
     self.assertEqual(parsed_data.counter_offer_id, None)
     self.assertEqual(
         parsed_data.counter_account,
         None,
     )
     self.assertEqual(parsed_data.counter_amount, Decimal("6475.7567056"))
     self.assertEqual(parsed_data.counter_asset_type, "credit_alphanum12")
     self.assertEqual(parsed_data.counter_asset_code, "BTCLN")
     self.assertEqual(
         parsed_data.counter_asset_issuer,
         "GD4UTLD46SWG5KCUVBRWFSFCUDISYNEJ2AF5FNB67ORAE6K7ZSAXH5O7",
     )
     self.assertEqual(parsed_data.base_is_seller, False)
     self.assertEqual(parsed_data.price.n, 64757567056)
     self.assertEqual(parsed_data.price.d, 100000000)
예제 #26
0
 def test_valid_inflation_operation(self):
     raw_data = load_horizon_file("operations/inflation.json")
     parsed_data = InflationOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "85376614040350721")
     self.assertEqual(parsed_data.paging_token, "85376614040350721")
     self.assertEqual(parsed_data.transaction_successful, False)
     self.assertEqual(
         parsed_data.source_account,
         "GDC2XPNEM4YAH22FK2TW7FSVGWQRGZGXLA3DAJLHNJ7YL5L5RSIXXXXX",
     )
     self.assertEqual(parsed_data.type, "inflation")
     self.assertEqual(parsed_data.type_i, 9)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2018, 9, 8, 5, 0, 7, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "25fca20b8d726ecced601b5ec230c3ef02852bbdc3aa082e9f6131a0ccf50ece",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
예제 #27
0
 def test_valid(self):
     raw_data = load_horizon_file("order_book_summary.json")
     parsed_data = OrderBookSummary.parse_obj(raw_data)
     self.assertEqual(parsed_data.base.asset_type, "native")
     self.assertEqual(parsed_data.base.asset_code, None)
     self.assertEqual(parsed_data.base.asset_issuer, None)
     self.assertEqual(parsed_data.counter.asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.counter.asset_code, "BTC")
     self.assertEqual(
         parsed_data.counter.asset_issuer,
         "GATEMHCCKCY67ZUCKTROYN24ZYT5GK4EQZ65JJLDHKHRUZI3EUEKMTCH",
     )
     self.assertEqual(len(parsed_data.bids), 20)
     self.assertEqual(parsed_data.bids[0].amount, Decimal("0.0010503"))
     self.assertEqual(parsed_data.bids[0].price, Decimal("0.0000070"))
     self.assertEqual(parsed_data.bids[0].price_r.n, 7)
     self.assertEqual(parsed_data.bids[0].price_r.d, 1000000)
     self.assertEqual(len(parsed_data.asks), 20)
     self.assertEqual(parsed_data.asks[0].amount, Decimal("485.0714286"))
     self.assertEqual(parsed_data.asks[0].price, Decimal("0.0000084"))
     self.assertEqual(parsed_data.asks[0].price_r.n, 21)
     self.assertEqual(parsed_data.asks[0].price_r.d, 2500000)
 def test_unconditional_valid(self):
     raw_data = load_horizon_file("claimable_balance_unconditional.json")
     parsed_data = ClaimableBalance.parse_obj(raw_data)
     self.assertEqual(
         parsed_data.id,
         "0000000035950db8eb2f303c37b67890aff15a26b5c16693aba4b40dcd31b54162e60456",
     )
     self.assertEqual(
         parsed_data.asset,
         "USDS:GBK4AYTOYIAYT4UJECSQGMACUWLKYOOM4VCAUUZ3Y3FG5XD2LYK3FGK2",
     )
     self.assertEqual(parsed_data.amount, Decimal("0.1000000"))
     self.assertEqual(
         parsed_data.sponsor,
         "GDDGK5C7UQWC7AEFZZVO7KXRXZVP2BBQJ2IQFAIROKME2O3XQR2CMVC7",
     )
     self.assertEqual(parsed_data.last_modified_ledger, 35068305)
     self.assertEqual(
         parsed_data.last_modified_time,
         datetime.datetime(2021,
                           4,
                           23,
                           14,
                           40,
                           19,
                           tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(len(parsed_data.claimants), 1)
     self.assertEqual(
         parsed_data.claimants[0].destination,
         "GANVXZ2DQ2FFLVCBSVMBBNVWSXS6YVEDP247EN4C3CM3I32XR4U3OU2I",
     )
     self.assertEqual(parsed_data.claimants[0].predicate.unconditional,
                      True)
     self.assertEqual(parsed_data.flags.clawback_enabled, False)
     self.assertEqual(
         parsed_data.paging_token,
         "35068305-0000000035950db8eb2f303c37b67890aff15a26b5c16693aba4b40dcd31b54162e60456",
     )
예제 #29
0
 def test_valid_create_passive_sell_offer_operation(self):
     raw_data = load_horizon_file("operations/create_passive_sell_offer.json")
     parsed_data = CreatePassiveSellOfferOperation.parse_obj(raw_data)
     self.assertEqual(parsed_data.id, "150701833957081089")
     self.assertEqual(parsed_data.paging_token, "150701833957081089")
     self.assertEqual(parsed_data.transaction_successful, True)
     self.assertEqual(
         parsed_data.source_account,
         "GCQPF34D4NP66RYULISYRSBS52M5FFZ2JVJ4LMQTQXDI2XGP6UDSE3IB",
     )
     self.assertEqual(parsed_data.type, "create_passive_sell_offer")
     self.assertEqual(parsed_data.type_i, 4)
     self.assertEqual(
         parsed_data.created_at,
         datetime.datetime(2021, 4, 24, 20, 17, 32, tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.transaction_hash,
         "b18f88e11353f60532eabbef17d76ed25eebc31f9448e765cf1cfdbbf4451e54",
     )
     self.assertEqual(parsed_data.transaction, None)
     self.assertEqual(parsed_data.sponsor, None)
     self.assertEqual(parsed_data.amount, Decimal("0.0001000"))
     self.assertEqual(parsed_data.price, Decimal("1.0000000"))
     self.assertEqual(parsed_data.price_r.n, 1)
     self.assertEqual(parsed_data.price_r.d, 1)
     self.assertEqual(parsed_data.buying_asset_type, "credit_alphanum4")
     self.assertEqual(parsed_data.buying_asset_code, "USA")
     self.assertEqual(
         parsed_data.buying_asset_issuer,
         "GCQPF34D4NP66RYULISYRSBS52M5FFZ2JVJ4LMQTQXDI2XGP6UDSE3IB",
     )
     self.assertEqual(parsed_data.selling_asset_type, "credit_alphanum12")
     self.assertEqual(parsed_data.selling_asset_code, "MONEY")
     self.assertEqual(
         parsed_data.selling_asset_issuer,
         "GA2KQTETIRREL66P64GV6KCVICPULLDVHWJDZSIJKDLIAGBXUCIZ6P6E",
     )
 def test_conditional_valid(self):
     raw_data = load_horizon_file("claimable_balance_conditional.json")
     parsed_data = ClaimableBalance.parse_obj(raw_data)
     self.assertEqual(len(parsed_data.claimants), 2)
     self.assertEqual(
         parsed_data.claimants[0].destination,
         "GCYTED6QWSGDNLQ2RBXDVYSKCOUB2BC6DLKGAU5QPNONMVN47ABUN6WE",
     )
     self.assertEqual(
         parsed_data.claimants[0].predicate.abs_before,
         datetime.datetime(2021,
                           4,
                           21,
                           19,
                           3,
                           6,
                           tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(parsed_data.claimants[0].predicate.abs_before_epoch,
                      1619031786)
     self.assertEqual(
         parsed_data.claimants[1].destination,
         "GDDAESY7RTZAZNWZLZD5RIKP2TWEAVISKQJZ43ZZ2YTMCNICRVW7OJP3",
     )
     self.assertEqual(
         parsed_data.claimants[1].predicate.not_predicate.abs_before,
         datetime.datetime(2021,
                           4,
                           21,
                           19,
                           3,
                           1,
                           tzinfo=datetime.timezone.utc),
     )
     self.assertEqual(
         parsed_data.claimants[1].predicate.not_predicate.abs_before_epoch,
         1619031781,
     )