Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat_: sending transaction improvements #5807

Merged
merged 6 commits into from
Oct 1, 2024
Merged

Conversation

saledjenic
Copy link
Contributor

@saledjenic saledjenic commented Sep 6, 2024

Instead of the complicated approach we used before, these changes should simplify sending transaction/s suggested by the Router. Many calculations that were done on the client side before will be fully handled on the statusgo side. These changes make the sending process the same for accounts (key pairs) migrated to a keycard and those stored locally in local keystore files.

Deprecated endpoints:

  • CreateMultiTransaction
  • ProceedWithTransactionsSignatures

Deprecated signal:

  • wallet.sign.transactions

New endpoints:

  • BuildTransactionsFromRoute
  • SendRouterTransactionsWithSignatures

The flow for sending the best router suggested by the router:

  • call BuildTransactionsFromRoute
  • wait for the wallet.router.sign-transactions signal
  • sign received hashes using SignMessage call or sign on keycard
  • call SendRouterTransactionsWithSignatures with the signatures of signed hashes from the previous step
  • wallet.router.transactions-sent signal will be sent after sending transactions or an error occurs

New signals:

  • wallet.router.sending-transactions-started // notifies client that the sending transactions process started
  • wallet.router.sign-transactions // notifies client about the list of transactions that need to be signed
  • wallet.router.transactions-sent // notifies client about transactions that are sent
  • wallet.transaction.status-changed // notifies about status of sent transactions

Tests for this PR will be added via this issue:

@status-im-auto
Copy link
Member

status-im-auto commented Sep 6, 2024

Jenkins Builds

Click to see older builds (104)
Commit #️⃣ Finished (UTC) Duration Platform Result
✖️ 89425ce #1 2024-09-06 20:34:14 ~1 min tests 📄log
✔️ 89425ce #1 2024-09-06 20:35:32 ~2 min tests-rpc 📄log
✔️ 89425ce #1 2024-09-06 20:36:58 ~4 min linux 📦zip
✔️ 89425ce #1 2024-09-06 20:37:50 ~4 min ios 📦zip
✔️ 89425ce #1 2024-09-06 20:38:29 ~5 min android 📦aar
✖️ 45ace27 #2 2024-09-09 09:06:10 ~1 min tests 📄log
✔️ 45ace27 #2 2024-09-09 09:06:58 ~2 min android 📦aar
✔️ 45ace27 #2 2024-09-09 09:07:05 ~2 min tests-rpc 📄log
✔️ 45ace27 #2 2024-09-09 09:07:13 ~2 min linux 📦zip
✔️ 45ace27 #2 2024-09-09 09:08:06 ~3 min ios 📦zip
✖️ e84de17 #3 2024-09-09 11:23:13 ~58 sec tests 📄log
✔️ e84de17 #3 2024-09-09 11:24:14 ~2 min android 📦aar
✔️ e84de17 #3 2024-09-09 11:24:23 ~2 min linux 📦zip
✔️ e84de17 #3 2024-09-09 11:24:33 ~2 min tests-rpc 📄log
✔️ e84de17 #3 2024-09-09 11:25:29 ~3 min ios 📦zip
✖️ c4dc7d7 #4 2024-09-10 07:59:49 ~1 min tests 📄log
✔️ c4dc7d7 #4 2024-09-10 08:00:56 ~2 min tests-rpc 📄log
✔️ c4dc7d7 #4 2024-09-10 08:01:04 ~2 min android 📦aar
✔️ c4dc7d7 #4 2024-09-10 08:01:12 ~2 min linux 📦zip
✔️ c4dc7d7 #4 2024-09-10 08:02:41 ~3 min ios 📦zip
✔️ c4dc7d7 #5 2024-09-11 11:55:53 ~3 min ios 📦zip
✖️ c4dc7d7 #5 2024-09-11 11:55:56 ~3 min tests 📄log
✔️ c4dc7d7 #5 2024-09-11 11:56:25 ~4 min linux 📦zip
✔️ c4dc7d7 #5 2024-09-11 11:56:40 ~4 min tests-rpc 📄log
✔️ c4dc7d7 #5 2024-09-11 11:57:52 ~5 min android 📦aar
✖️ e94174f #6 2024-09-11 11:59:17 ~59 sec tests 📄log
✔️ e94174f #6 2024-09-11 12:01:29 ~3 min tests-rpc 📄log
✔️ e94174f #6 2024-09-11 12:01:49 ~3 min ios 📦zip
✔️ e94174f #6 2024-09-11 12:01:59 ~3 min linux 📦zip
✔️ e94174f #6 2024-09-11 12:04:00 ~5 min android 📦aar
✔️ 1e5f2df #7 2024-09-11 16:27:23 ~2 min android 📦aar
✔️ 1e5f2df #7 2024-09-11 16:27:29 ~2 min tests-rpc 📄log
✔️ 1e5f2df #7 2024-09-11 16:27:34 ~2 min linux 📦zip
✔️ 1e5f2df #7 2024-09-11 16:57:13 ~31 min tests 📄log
✔️ 5c31f55 #8 2024-09-12 08:08:20 ~2 min tests-rpc 📄log
✔️ 5c31f55 #8 2024-09-12 08:08:41 ~2 min android 📦aar
✔️ 5c31f55 #8 2024-09-12 08:09:03 ~2 min linux 📦zip
✔️ 5c31f55 #8 2024-09-12 08:10:20 ~4 min ios 📦zip
✔️ 5c31f55 #8 2024-09-12 08:38:12 ~31 min tests 📄log
✖️ c515d9d #9 2024-09-13 09:33:51 ~1 min tests 📄log
✔️ c515d9d #9 2024-09-13 09:34:22 ~2 min android 📦aar
✔️ c515d9d #9 2024-09-13 09:34:30 ~2 min tests-rpc 📄log
✔️ c515d9d #9 2024-09-13 09:34:37 ~2 min linux 📦zip
✔️ c515d9d #9 2024-09-13 09:35:39 ~3 min ios 📦zip
✔️ 0506f56 #10 2024-09-17 07:41:44 ~2 min android 📦aar
✔️ 0506f56 #10 2024-09-17 07:41:52 ~2 min tests-rpc 📄log
✔️ 0506f56 #10 2024-09-17 07:41:57 ~2 min linux 📦zip
✔️ 0506f56 #10 2024-09-17 07:46:48 ~7 min ios 📦zip
✔️ 0506f56 #10 2024-09-17 08:10:57 ~31 min tests 📄log
✔️ 89503c9 #11 2024-09-23 06:32:31 ~2 min tests-rpc 📄log
✔️ 89503c9 #11 2024-09-23 06:34:12 ~4 min linux 📦zip
✔️ 89503c9 #11 2024-09-23 06:34:55 ~4 min android 📦aar
✔️ 89503c9 #11 2024-09-23 06:36:07 ~6 min ios 📦zip
✔️ 89503c9 #11 2024-09-23 07:02:06 ~31 min tests 📄log
✔️ 88b11d7 #12 2024-09-23 07:20:43 ~59 sec tests-rpc 📄log
✔️ 88b11d7 #12 2024-09-23 07:21:03 ~1 min android 📦aar
✔️ 88b11d7 #12 2024-09-23 07:21:36 ~1 min linux 📦zip
✔️ 88b11d7 #12 2024-09-23 07:23:22 ~3 min ios 📦zip
✔️ 88b11d7 #12 2024-09-23 07:50:27 ~30 min tests 📄log
✔️ e18d12f #13 2024-09-24 07:13:04 ~1 min android 📦aar
✔️ e18d12f #13 2024-09-24 07:13:17 ~2 min tests-rpc 📄log
✔️ e18d12f #13 2024-09-24 07:13:27 ~2 min linux 📦zip
✔️ e18d12f #13 2024-09-24 07:15:19 ~4 min ios 📦zip
✔️ e18d12f #13 2024-09-24 07:43:12 ~31 min tests 📄log
✔️ e18d12f #15 2024-09-24 10:36:44 ~58 sec tests-rpc 📄log
✔️ e18d12f #15 2024-09-24 10:36:53 ~1 min android 📦aar
✔️ e18d12f #15 2024-09-24 10:38:06 ~1 min linux 📦zip
✔️ e18d12f #15 2024-09-24 10:43:13 ~5 min ios 📦zip
✔️ e18d12f #15 2024-09-24 11:37:42 ~32 min tests 📄log
✔️ 8751aae #14 2024-09-24 10:35:24 ~2 min android 📦aar
✔️ 8751aae #14 2024-09-24 10:35:35 ~2 min tests-rpc 📄log
✔️ 8751aae #14 2024-09-24 10:35:51 ~2 min linux 📦zip
✔️ 8751aae #14 2024-09-24 10:37:33 ~4 min ios 📦zip
✔️ 8751aae #14 2024-09-24 11:04:52 ~31 min tests 📄log
✔️ 34c0418 #16 2024-09-25 09:19:18 ~2 min android 📦aar
✔️ 34c0418 #16 2024-09-25 09:20:32 ~3 min tests-rpc 📄log
✔️ 34c0418 #16 2024-09-25 09:21:08 ~3 min linux 📦zip
✔️ 34c0418 #16 2024-09-25 09:22:21 ~5 min ios 📦zip
✔️ 34c0418 #16 2024-09-25 09:51:24 ~34 min tests 📄log
✔️ 12ae74a #17 2024-09-26 08:23:57 ~1 min android 📦aar
✔️ 12ae74a #17 2024-09-26 08:24:32 ~2 min linux 📦zip
✔️ 12ae74a #17 2024-09-26 08:24:44 ~2 min tests-rpc 📄log
✔️ 12ae74a #17 2024-09-26 08:26:46 ~4 min ios 📦zip
✔️ 12ae74a #17 2024-09-26 08:53:20 ~31 min tests 📄log
✔️ 54f971c #18 2024-09-26 08:25:49 ~1 min android 📦aar
✔️ 54f971c #18 2024-09-26 08:26:18 ~1 min tests-rpc 📄log
✔️ 54f971c #18 2024-09-26 08:26:43 ~1 min linux 📦zip
✔️ 54f971c #18 2024-09-26 08:30:35 ~3 min ios 📦zip
✔️ 54f971c #18 2024-09-26 09:25:21 ~31 min tests 📄log
✔️ da522e1 #19 2024-09-27 11:46:46 ~1 min tests-rpc 📄log
✔️ da522e1 #19 2024-09-27 11:46:56 ~2 min android 📦aar
✔️ da522e1 #19 2024-09-27 11:47:10 ~2 min linux 📦zip
✔️ da522e1 #19 2024-09-27 11:50:13 ~5 min ios 📦zip
✔️ da522e1 #19 2024-09-27 12:16:28 ~31 min tests 📄log
✔️ 0ff24b5 #20 2024-09-30 07:18:08 ~2 min android 📦aar
✔️ 0ff24b5 #20 2024-09-30 07:18:36 ~2 min linux 📦zip
✔️ 0ff24b5 #20 2024-09-30 07:19:03 ~3 min tests-rpc 📄log
✔️ 0ff24b5 #20 2024-09-30 07:19:23 ~3 min ios 📦zip
✔️ 0ff24b5 #20 2024-09-30 07:47:28 ~31 min tests 📄log
✔️ 454d0f5 #21 2024-09-30 08:14:55 ~2 min android 📦aar
✖️ 454d0f5 #21 2024-09-30 08:15:10 ~2 min tests 📄log
✔️ 454d0f5 #21 2024-09-30 08:15:14 ~2 min linux 📦zip
✔️ 454d0f5 #21 2024-09-30 08:15:52 ~3 min ios 📦zip
✔️ 454d0f5 #21 2024-09-30 08:15:59 ~3 min tests-rpc 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ b1575d0 #22 2024-09-30 08:41:07 ~2 min android 📦aar
✔️ b1575d0 #22 2024-09-30 08:41:22 ~2 min linux 📦zip
✔️ b1575d0 #22 2024-09-30 08:42:06 ~3 min tests-rpc 📄log
✔️ b1575d0 #22 2024-09-30 08:42:10 ~3 min ios 📦zip
✔️ b1575d0 #22 2024-09-30 09:10:18 ~31 min tests 📄log
✔️ 4773c62 #23 2024-10-01 11:56:06 ~2 min android 📦aar
✔️ 4773c62 #23 2024-10-01 11:56:23 ~2 min linux 📦zip
✔️ 4773c62 #23 2024-10-01 11:57:03 ~3 min tests-rpc 📄log
✔️ 4773c62 #23 2024-10-01 11:57:20 ~3 min ios 📦zip
✔️ 4773c62 #23 2024-10-01 12:25:26 ~31 min tests 📄log

@saledjenic saledjenic changed the title init Sending transaction improvements Sep 9, 2024
@@ -742,11 +753,91 @@ func (api *API) CreateMultiTransaction(ctx context.Context, multiTransactionComm
return nil, api.s.transactionManager.SendTransactionForSigningToKeycard(ctx, cmd, data, api.router.GetPathProcessors())
}

func (api *API) BuildTransactionsFromRoute(ctx context.Context, uuid string, slippagePercentage float32) (err error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can make this API a bit more break-proof by using a struct (parameters or something) instead of plainly slippagePercentage

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlipicar agree, good idea, done.

@@ -55,9 +64,17 @@ type SendTxArgs struct {
Input types.HexBytes `json:"input"`
Data types.HexBytes `json:"data"`

// additional data
// additional data - version SendTxArgsVersion1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm not sure why we decided to just copy all the fields from ethapi.TransactionArgs (raw parameters needed to send a tx to the chain), I kind of like to keep that as a separate struct and then have all the remaining "metadata" as additional fields. Then the lower level modules that are not interested in the metadata can just consume the original type.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlipicar this is the first step of improvements and simplifications I want to do, we can discuss that for some of the next steps for sure, but this was the easiest now since any bigger change will require updating Transactor that I don't want to touch yet, since I didn't want to break any endpoint that we already have and is being used by the mobile app.

ToChainID uint64
FromTokenID string
ToTokenID string
ToContractAddress types.Address
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not clear what this parameter's meaning is without looking at the code, could you add some comment?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlipicar comment added.

const (
SendTxArgsVersion0 SendTxArgsVersion = 0
SendTxArgsVersion1 SendTxArgsVersion = 1
)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this version will go away when deprecated code will be handle, maybe add a comment to remove this Version attribute?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, will add. And yes, once the mobile app switches to the new tx sending flow, and we make sure that there is no part of the app that uses old sendargs, we can simplify Transactor a lot and remove the version property.
Once we move all TXs sendings to this flow, we will have a uniform flow across the app that is easier to maintain and extend.

Copy link
Collaborator

@igor-sirotin igor-sirotin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@saledjenic I would like to open a discussion here and bring some attention.


This PR is too big.
And there're 2 issues behind such huge PRs. Even Github files diff barely loads 🫠

  1. Reviewers waste too much time and energy.

    And if they don't it means they didn't pay enough attention.
    If I was to review such PR carefully, it would take 1-2 hours of high concentration, just to keep all the details in mind.

  2. The chances to spot a bug are very low.

    Rarely can a developer keep so much stuff in mind. And even more rare they can assume how such code would break.
    This basically makes the reviews useless.

    I admire you as a dev, the amount of stuff you can keep in mind is great. But other developers are not like you.

  3. With due respect, there's no way even you can think of all the edge cases

    We're all humans and we do mistakes. And there're 2 ways to fight this: code review and testing. Code review is useless in such case. And there're no tests either.

  4. There are no tests

    You know, me and you, we love this topic ❤️ 😄

    I see that you opened a separate ticket. But why we can't implement it in a same PR?
    We have no rush now. There's no milestone. There's no deadline. The focus is quality and reliability. Isn't it?


Also, such PRs take too much time to merge. And meanwhile you start preparing new changes on top of these. And then the PR is pushed to be reviewed and tested ASAP, as it's been open for so long, and there's another portion of code waiting.

This process is unhealthy for the product and everyone involved.
It would go much faster and simpler for everyone, if the iterations were more granular.


Having this said,
Would you please consider dividing this PR into a few smaller ones?

@saledjenic
Copy link
Contributor Author

@igor-sirotin I appreciate your perspective and what you brought up, and I agree with most of them, but some things I see a bit differently. :)

First of all, I don't know why you are for smaller PRs instead of having multiple logically split commits in a single PR?
Some downsides that I see:

  • if for example, I want to apply a change, like this one, in case more PRs are created I will need to rebase many times until they get reviewed
  • if I don't do PRs one on top of another, but wait for it to be merged, before continuing, then I see that as wasting time and losing the context in terms of changes that I want to do
  • while I'm in my 4th, 5th PR and I see that I forgot to add something that logically belongs to the 1st PR, a lot of work will be needed to add the change there and then rebase all PRs to get the change

Would you please consider dividing this PR into a few smaller ones?

I can organize them in several commits instead, not PRs, hope that works?

This PR is too big.

The size of the PR depends on the change that is done. So if I want to rename a single function that is used in many places, I will have many changes and the PR will be big, but that change cannot be split. This may be a bad example, but what I want to say is I added a new function BuildTransactionV2 to the interface that is implemented by ~10 processors (~10 different files and the implementation of that function is the same as the previous version that had to keep because of compatibility, just because the input params are different) and that bloated a code. So we have to look at the gist of changes. The gist is in services/wallet/transfer/transaction_manager_route.go all other changes are side effects. But that file cannot work without other changes.

There are no tests

Correct, there are no tests here, yet, at the time of this PR, the mechanism for handling signals for functional tests was not implemented (not sure if that's merged even today), but because of that, I informed Anton D about that and created a new issue for adding tests for this part #5831 that was mentioned in the description of this PR.

@igor-sirotin
Copy link
Collaborator

igor-sirotin commented Sep 19, 2024

@saledjenic thank you for being open for discussion ❤️

Large PR split by commits VS. several small PRs

  1. The size of the PR depends on the change that is done

    Of course, a function rename or updating anything in a vendor folder might change 100s of files. But that's an obvious granular change. This PR doesn't seem to be one of these:
    image

  2. Of course, sometimes large PR is unavoidable, because changes are too tightly coupled. But:

    • This PR doesn't seem to be one (though I didn't dig into the changes)
    • It's better to follow a different process then: discuss and agree on the changes before making them, so that by the PR open moment everybody involved is already familiar with changes.
    • This is usually a sign of that code needs to be refactored to decouple some parts
  3. If changes can be decoupled, it's still better to have 5 small PRs in compare to 5 commits in a single PR.

    Comments to a single commit in a large PR will hold other 4 commits from being merged.

  4. Some comments:

    in case more PRs are created I will need to rebase many times

    Yes, for you it will be more work.
    But for the reviewers (which is more than one) it will be less. Overall less time will be spent. We should respect each other's time.

    I don't feel the problem of rebasing though. Is it that big of a thing today?

    if I don't do PRs one on top of another, but wait for it to be merged, before continuing, then I see that as wasting time

    Smaller PR's will be reviewed much faster.

    while I'm in my 4th, 5th PR and I see that I forgot to add something that logically belongs to the 1st PR, a lot of work will be needed to add the change there

    Again, smaller PR's wil lbe reviewed much faster. You won't need to work on 4-5 PRs of the same context in parallel.

    But yes, again, it will be more time for you. But less time for everyone else.

Tests

Soo, we actually have a policy in the repo:

- All new functionality MUST be introduced with tests that:

It's totally fine if @antdanchenko implements the tests. But they should be introduced in the same PR, because we agreed on the intention to keep develop branch stable and release-ready.

not sure if that's merged even today

FYI, it was merged a week ago 👌


Really, we're discussing things here that are a well-known good practices 🤔

@saledjenic saledjenic force-pushed the transaction-improvements branch 2 times, most recently from 89503c9 to 88b11d7 Compare September 23, 2024 07:19
@saledjenic saledjenic force-pushed the transaction-improvements branch 3 times, most recently from 454d0f5 to b1575d0 Compare September 30, 2024 08:38
@saledjenic
Copy link
Contributor Author

@igor-sirotin all your comments are addressed, thanks for the review.

@status-im-auto
Copy link
Member

✔️ status-go/prs/tests/PR-5807#22 🔹 ~31 min 🔹 b1575d0 🔹 📦 tests package

@churik
Copy link
Member

churik commented Sep 30, 2024

@saledjenic as just today we merged all swaps related PRs + all fixes after last wallet refactoring, we'll retest it briefly one more time, thank you!

saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 1, 2024
Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 1st part of #16336
@VolodLytvynenko
Copy link

Hey @saledjenic , thanks for the PR! I’ve checked to see if it affects mobile, and I can confirm it doesn’t while also fixing the ERC-20 approval issues on Arbitrum. Please let me know if any last commits are added, and I'll quickly recheck to ensure it still doesn't impact mobile. I promise it won't take long :)

@saledjenic
Copy link
Contributor Author

Thanks for checking @VolodLytvynenko.

Nothing new was added, since I just rebase this PR from time to time, cause it's opened for a long time already and I have other PRs based on it and that's why you see/receive email about changes.

saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 1, 2024
Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 1st part of #16336
saledjenic and others added 6 commits October 1, 2024 13:47
Added props:
- `Version` used to differ old and new usage
- `ValueOut`
- `FromChainID`
- `ToChainID`
- `FromTokenID`
- `ToTokenID`
- `ToContractAddress`
- `SlippagePercentage`
…cess

This commit simplifies the sending process of the best route suggested by the router.
It also makes the sending process the same for accounts (key pairs) migrated to a keycard
and those stored locally in local keystore files.

Deprecated endpoints:
- `CreateMultiTransaction`
- `ProceedWithTransactionsSignatures`

Deprecated signal:
- `wallet.sign.transactions`

New endpoints:
- `BuildTransactionsFromRoute`
- `SendRouterTransactionsWithSignatures`

The flow for sending the best router suggested by the router:
- call `BuildTransactionsFromRoute`
- wait for the `wallet.router.sign-transactions` signal
- sign received hashes using `SignMessage` call or sign on keycard
- call `SendRouterTransactionsWithSignatures` with the signatures of signed hashes from the previous step
- `wallet.router.transactions-sent` signal will be sent after transactions are sent or if an error occurs

New signals:
- `wallet.router.sending-transactions-started` // notifies client that the sending transactions process started
- `wallet.router.sign-transactions` // notifies client about the list of transactions that need to be signed
- `wallet.router.transactions-sent` // notifies client about transactions that are sent
- `wallet.transaction.status-changed` // notifies about status of sent transactions
Copy link
Collaborator

@igor-sirotin igor-sirotin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code's good, thanks @saledjenic for the fixes.


I still see a lot of uncovered new code, which goes against the agreed policy.
I won't hold this PR, it's been around for 1 month already. But I'm worried about this, so please let's discuss this and agree on our processes for the new PRs.

@alaibe alaibe merged commit 107e2cb into develop Oct 1, 2024
11 of 12 checks passed
@alaibe alaibe deleted the transaction-improvements branch October 1, 2024 12:30
saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 1, 2024
Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 1st part of #16336
saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 1, 2024
Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 1st part of #16336
saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 1, 2024
Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 1st part of #16336
saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 2, 2024
Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 2nd part of #16336
saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 2, 2024
…ing flow

Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 2nd part of #16336
saledjenic added a commit to status-im/status-desktop that referenced this pull request Oct 2, 2024
…ing flow

Based on changes done in this PR status-im/status-go#5807
we can simplify our client logic a lot.

This results in the removal of many lines of code that are no longer needed

Closes 2nd part of #16336
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants