Exemplo n.º 1
0
    def test_asset_state(self):
        input = binascii.unhexlify(self.assset)

        asset = AssetState.DeserializeFromDB(input)

        self.assertEqual(asset.GetName(), 'NEOGas')
        self.assertEqual(asset.AssetId.ToBytes(), self.assetkey)
        self.assertEqual(asset.Precision, 8)
        self.assertEqual(asset.Admin.ToBytes(), b'68ebfc4fefbe24c9cff0f7e3c0d27ed396d07f9f')
        self.assertEqual(asset.Issuer.ToBytes(), b'68ebfc4fefbe24c9cff0f7e3c0d27ed396d07f9f')
        self.assertEqual(asset.IsFrozen, False)
        self.assertTrue(asset.Owner.IsInfinity)

        self.assertIsNotNone(asset.ToJson())
Exemplo n.º 2
0
    def test_account_2(self):

        hash = UInt160(data=self.ac2_h)
        account2 = AccountState(script_hash=hash)

        addr = account2.Address

        self.assertEqual(addr, self.ac2_a)

        input = binascii.unhexlify(self.assset)
        asset = AssetState.DeserializeFromDB(input)

        account2.AddToBalance(asset.AssetId, Fixed8(97800000000))

#        print("account 2 %s " % json.dumps(account2.ToJson(), indent=4))

        self.assertEqual(account2.BalanceFor(asset.AssetId), Fixed8(97800000000))

        input = binascii.unhexlify(self.ac1_out)
        account1 = AccountState.DeserializeFromDB(input)
Exemplo n.º 3
0
    def test_account_state(self):
        hash = UInt160(data=self.shash)
        account = AccountState(script_hash=hash)

        addr = account.Address

        self.assertEqual(addr, self.saddr)

        input = binascii.unhexlify(self.assset)

        asset = AssetState.DeserializeFromDB(input)

        account.AddToBalance(asset.AssetId, Fixed8(2440000000))

        self.assertEqual(account.BalanceFor(asset.AssetId), Fixed8(2440000000))

        account.SubtractFromBalance(asset.AssetId, Fixed8(1220000000))

        self.assertEqual(account.BalanceFor(asset.AssetId), Fixed8(1220000000))

        self.assertEqual(account.HasBalance(asset.AssetId), True)

        sshare_hash = Blockchain.SystemShare().Hash

        account.SubtractFromBalance(sshare_hash, Fixed8(800000000))

        self.assertFalse(account.AllBalancesZeroOrLess())

        acct_json = account.ToJson()

        stream = StreamManager.GetStream()
        writer = BinaryWriter(stream)

        account.Serialize(writer)
        out = stream.ToArray()
        StreamManager.ReleaseStream(stream)

        input = binascii.unhexlify(out)
        newaccount = AccountState.DeserializeFromDB(input)

        self.assertEqual(acct_json, newaccount.ToJson())