Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Commit c2d93f6

Browse files
dungeon-master-666maratsarbasov
authored andcommitted
Fix transaction address
1 parent a72ddad commit c2d93f6

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

crypto/block/check-proof.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ td::Result<BlockTransaction::Info> BlockTransaction::validate() {
324324
return td::Status::Error("cannot unpack transaction #");
325325
}
326326
Info res;
327+
res.blkid = blkid;
327328
res.now = trans.now;
328329
res.lt = trans.lt;
329330
res.hash = root->get_hash().bits();
@@ -342,6 +343,7 @@ td::Result<BlockTransactionList::Info> BlockTransactionList::validate() const {
342343
for (auto& root : list) {
343344
BlockTransaction transaction;
344345
transaction.root = root;
346+
transaction.blkid = blkid;
345347
TRY_RESULT(info, transaction.validate());
346348
res.transactions.push_back(std::move(info));
347349
}

crypto/block/check-proof.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,11 @@ struct TransactionList {
8989
};
9090

9191
struct BlockTransaction {
92+
ton::BlockIdExt blkid;
9293
td::Ref<vm::Cell> root;
9394

9495
struct Info {
96+
ton::BlockIdExt blkid;
9597
td::uint32 now;
9698
ton::LogicalTime lt;
9799
ton::Bits256 hash;
@@ -101,9 +103,11 @@ struct BlockTransaction {
101103
};
102104

103105
struct BlockTransactionList {
106+
ton::BlockIdExt blkid;
104107
td::BufferSlice transactions_boc;
105108

106109
struct Info {
110+
ton::BlockIdExt blkid;
107111
std::vector<BlockTransaction::Info> transactions;
108112
};
109113

tonlib/tonlib/TonlibClient.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2363,7 +2363,8 @@ struct ToRawTransactions {
23632363
return td::Status::Error("Failed to fetch storage fee from transaction");
23642364
}
23652365
storage_fee = storage_fees->to_long();
2366-
address = trans.account_addr.as_slice().str();
2366+
auto std_address = block::StdAddress(info.blkid.id.workchain, trans.account_addr);
2367+
address = std_address.rserialize(true);
23672368
}
23682369
return tonlib_api::make_object<tonlib_api::raw_transaction>(
23692370
tonlib_api::make_object<tonlib_api::accountAddress>(std::move(address)),
@@ -2441,7 +2442,8 @@ struct ToRawTransactions {
24412442
return td::Status::Error("Failed to fetch storage fee from transaction");
24422443
}
24432444
storage_fee = storage_fees->to_long();
2444-
address = trans.account_addr.as_slice().str();
2445+
auto std_address = block::StdAddress(info.blkid.id.workchain, trans.account_addr);
2446+
address = std_address.rserialize(true);
24452447
}
24462448
return tonlib_api::make_object<tonlib_api::raw_transaction>(
24472449
tonlib_api::make_object<tonlib_api::accountAddress>(std::move(address)),
@@ -4411,6 +4413,7 @@ td::Status TonlibClient::do_request(const tonlib_api::blocks_getTransactionsExt&
44114413
r.incomplete_ = bTxes->incomplete_;
44124414
// bTxes->transactions to block::BlockTransactionList::Info
44134415
block::BlockTransactionList list;
4416+
list.blkid = create_block_id(id);
44144417
list.transactions_boc = std::move(bTxes->transactions_->transactions_);
44154418
auto info = list.validate();
44164419
if (info.is_error()) {

0 commit comments

Comments
 (0)