Skip to content

Commit

Permalink
Merge pull request #7 from Stanislav-Povolotsky/master
Browse files Browse the repository at this point in the history
More accurate counting of available space during MessageAny serialization
  • Loading branch information
yungwine authored Feb 20, 2024
2 parents f7a68a3 + 412f523 commit f8b2a19
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
4 changes: 2 additions & 2 deletions pytoniq_core/tlb/transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,15 +159,15 @@ def serialize(self) -> Cell:
builder = Builder().store_cell(self.info.serialize())
if self.init:
builder.store_bit(1) # maybe true
if len(self.init.serialize().bits) <= builder.available_bits and len(self.init.serialize().refs) <= builder.available_refs:
if len(self.init.serialize().bits) <= (builder.available_bits - 2) and len(self.init.serialize().refs) <= builder.available_refs:
builder.store_bit(0) # Either left
builder.store_cell(self.init.serialize())
else:
builder.store_bit(1) # Either right
builder.store_ref(self.init.serialize())
else:
builder.store_bit(0) # maybe false
if len(self.body.bits) <= builder.available_bits and len(self.body.refs) <= builder.available_refs:
if len(self.body.bits) <= (builder.available_bits - 1) and len(self.body.refs) <= builder.available_refs:
builder.store_bit(0) # Either left
builder.store_cell(self.body)
else:
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setuptools.setup(
name="pytoniq-core",
version="0.1.28",
version="0.1.29",
author="Maksim Kurbatov",
author_email="[email protected]",
description="TON Blockchain SDK",
Expand Down
12 changes: 12 additions & 0 deletions tests/test_MessageAny_serialize.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from pytoniq_core.tlb import MessageAny, ExternalMsgInfo, InternalMsgInfo, CurrencyCollection
from pytoniq_core.tlb.block import ExtraCurrencyCollection
from pytoniq_core.boc import Address, Cell, Builder

from pytoniq_core.tlb.account import StateInit

def test_ser():
test_addr = Address("EQDLjulz89Z90ReVL-a9TTKc5ON0PVhCHVGx3pkvzX5Qzt3S")
info = ExternalMsgInfo(test_addr, test_addr, 0)
body = Builder().store_bits([1,] * 482).end_cell()
message = MessageAny(info = info, init = None, body = body)
message.serialize()

0 comments on commit f8b2a19

Please sign in to comment.