Hi there! Is there an explorer available for tracking pending/mempool transactions?
I've submitted a transaction through the testnet TON Center API over 1h ago and it still didn't get confirmed. All transactions I've submitted before have been confirmed within seconds. Having an explorer which offers a more detailed look into the current network status, individual blocks, and pending transactions would be really useful for development.

Jan 14, 2023, 8:52 PM
there are no pending txs/mempool in ton
Jan 15, 2023, 8:12 AM
Then where do transactions go after sending, but before being added into a block? Correct me if I'm wrong, but there must be some sort of temporary storage where transactions wait to be included in a block by validators. While there might not be a global mempool, there should at least be one for each work or shard blockchain, I assume. After all, how do validators agree on which blocks to include, if they don't have a picture of all the possible transactions which could've gone into a block?

Sorry if these are dumb questions, but I'm still reading my way through the white paper. :) My main concern is the testnet transaction I sent through TON Center API - why did it never get confirmed, unlike the dozens of transactions I've sent prior? Are there some additional checks my code needs to make and potentially resend the transaction or something similar? I've followed the examples provided in the documentation and didn't notice anything alike. In all examples you shoot and wait for the confirmation, no extra logic to handle cases like mine.

Thank you for your help!
Jan 15, 2023, 9:28 AM
external messages are processed by validators. some validator can just ignore your message if something happens and he won't be punished for doing that.
external messages have no guarantee of being delivered
Jan 15, 2023, 9:36 AM
So there's no guarantee the transaction will get delivered? I guess the best option in this case is to re-broadcast it every X seconds or a minute then? Would be nice to include this in the docs, because I think it's a pretty important point, especially when you need to process transactions in a queue, like you do with seqno-wallets, an ignored transaction can brick your entire system, if not handled appropriately.
Jan 15, 2023, 9:41 AM
yes, you just should resend it. trying like every 15-20 seconds should be fine.
Jan 15, 2023, 9:42 AM
Got it. Thank you for your help!
Jan 15, 2023, 9:43 AM
because it's pretty profitable to maintain a validator node
Jan 15, 2023, 9:45 AM
I've updated my code to resend the transaction every 20 seconds and it's still not coming through. What could be the issue? See the sending code attached.

Sending wallet: https://testnet.tonscan.org/address/EQAKgUmCYrQ4L8_Fs8X69QD9mt-vkBDATBJeAmCAca8qoLaO
Jan 15, 2023, 10:38 AM
are you sure your seqno is correct?
you can also try printing the result of that sendTransfer call
there should be execution logs somewhere. big chance that your transaction just got rejected because of some wrong parameters
Jan 15, 2023, 10:39 AM
Yes seqno is correct. This wallet has only sent 1 transaction so far with seqno 0. You can verify that on tonscan
SendTransfer doesn't return anything (Promise)
Hmm not sure where, i haven't been able to find any yet. Will have another look
Double checked the source for "ton" js library and I can't find any way to get logs for the sendTransfer request. Since it uses axios under the hood, I tried adding request/response interceptors, but that also didn't seem to work - I guess the lib gets a different instance of axios than my service. Might need to come up with some temporary hacky way of getting some code added to the lib, so I can log the relevant data myself
Not sure if this helps clear things up, but I managed to log the API request & response relating to this issue. API doesn't give any indication that there is something wrong with the transaction.
Jan 15, 2023, 1:05 PM
Have you tried using other API provider?
For example, if you're using toncenter.com now, you could try tonapi.io. Or the other way round.
Or, you could start lite client in toncli and try to send the BOC from there.
Jan 15, 2023, 1:11 PM
Haven't tried that, thank you for the suggestion. I'll give that a shot
Ok `tonapi.io` does return an error. I'm just not sure what it means
Jan 15, 2023, 1:46 PM
This means transaction is outdated, you have to create new one with later expiration time.
Jan 15, 2023, 1:48 PM
Hmm but it was generated only seconds before I submitted it through the API. How long is the expiration? And does it matter that my service already submitted this boc through toncenter API before I tried sending it manually?
Jan 15, 2023, 1:50 PM
Maybe your computer time is wrong
Jan 15, 2023, 1:50 PM
Oh, you may be right. Looks like the server i was testing on is almost 1min behind. That's why I never encountered this issue on my local machine. Didn't expect the time to have anything to do with this. Nice catch. I'll sync the time and see if that changes anything
Yep, looks like that was the issue! The moment I synced the clock, transaction went through. Lesson learned - correct time is important to be able to send transactions. Thank you a lot for your help and patience @Gusarich and @pcrafter !!
Jan 15, 2023, 2:04 PM

© 2024 Draquery.com All rights reserved.