Closed scottywm closed 2 years ago
I don't get it. could you explain it more?
the context is used for making http request. https://github.com/portto/solana-go-sdk/blob/main/rpc/client.go#L63
your sending tokens behavior will be packed in a tx and then you send it.
An empty context is used when sending the tokens in this line of code
txhash, err := c.SendTransaction(context.Background(), tx)
I'm asking if I could give the context a timeout like so.
ctx, cancel := context.WithTimeout(context.Background(), 5)
And then insert this context into the transaction like so
txhash, err := c.SendTransaction(ctx, tx)
Would this work?
It will be a very very short time if you only give 5 here. iirc WithTimeout
default is nano second
maybe try to use some thing like
context.WithTimeout(context.Background(), 1*time.Second)
Ok so if I do it like this will it terminate the transaction after 5 seconds?
context.WithTimeout(context.Background(), 5*time.Second)
to be more precisely, the transaction will fail by
So how can I put a timeout on this transaction so the transaction will fail after say 3, 4 or even 5 seconds?
Your transaction will execute by validators after you send it. You can only wait for the result. This thing I don't think can fulfill in SDK level, even program level.
Ok. So then how can I put a timeout on this transaction?
As I said, the timeout is only for http request and I don't think you can put a timeout for a transaction in SDK level even program level.
So if the solana Blockchain goes down while a transaction is being processed, what happens?
It may succeed or not. There are too many factors need to be considered in your question. If you have more questions about Solana, you can join Solana's Discord.
I'm going to close this issue. Feel free to open another issue for questions related to this SDK.
Can i make the context timeout when creating the transaction (tx) and also sending the tokens, or must the context be epty as done in the example?