Example #1
0
    def test_token_serialization(self):
        # ignore 0 values in TokenBalanceMap
        m0 = TokenBalanceMap({3234: 10, 0: 0, 3567: 0})
        m1 = TokenBalanceMap({3234: 10})
        self.assertEqual(m0.serialize(bytearray()), m1.serialize(bytearray()))
        self.assertEqual(
            TokenBalanceMap.deserialize(m0.serialize(bytearray())).balance_map,
            {3234: 10},
        )

        mx = FakeTokenBalanceMap({3232: 109, 0: 0, 3567: 999999})
        bb = bytearray(b"\x00\x00\x00\x03\x00\x00\x02\x0c\xa0\x01m\x02\r\xef\x03\x0fB?")
        self.assertEqual(mx.serialize(bytearray()), bb)
        self.assertEqual(
            TokenBalanceMap.deserialize(bb).balance_map, {3232: 109, 3567: 999999}
        )

        # if skip_func == None, do not omit key/value pairs
        md0 = MapData({5: 0, 1: 2, 10: 9})
        md1 = MapData({10: 9, 3: 0, 1: 2})
        self.assertNotEqual(md0.serialize(), md1.serialize())
Example #2
0
 def put_minor_block_coinbase(self, m_hash: bytes, coinbase_tokens: dict):
     tokens = TokenBalanceMap(coinbase_tokens)
     self.db.put(b"mheader_" + m_hash, tokens.serialize())
     self.m_hash_dict[m_hash] = coinbase_tokens
Example #3
0
 def test_zero_balance(self):
     m0 = TokenBalanceMap({3234: 10, 0: 0, 3567: 0})
     m1 = TokenBalanceMap.deserialize(m0.serialize())
     self.assertEqual(m0, m1)