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

Add Brick Towers app #404

Open
8 tasks done
skisel-bt opened this issue Oct 22, 2024 · 12 comments
Open
8 tasks done

Add Brick Towers app #404

skisel-bt opened this issue Oct 22, 2024 · 12 comments
Assignees
Labels
Ready for Listing Safe app reviewed and ready to be listed.

Comments

@skisel-bt
Copy link

skisel-bt commented Oct 22, 2024

Entry type

  • New addition

App info

URL:

Manifest.json URL:
Prod (Mainnet): https://safe.bricktowers.io/manifest.json
Staging (Holesky): https://safe.dev.bricktowers.io/manifest.json

Name: Brick Towers Staking

Description: Stake with Brick Towers and enjoy secure native staking or pooled staking options. Maximize rewards with our enterprise-grade security and full custody control. No slashing risks—your assets are always safe.

Icon (PNG, 180x180): https://safe.bricktowers.io/logo180.png
It's minified via https://tinypng.com: yes

Homepage: https://safe.bricktowers.io/
Twitter: https://x.com/BrickTowers
GitHub: https://github.com/bricktowers/

App supports batching multiple transactions via Safe: not needed

Supported networks

- Mainnet
- Holesky

Revision checks

  • Used smart contracts were audited.
  • You have implemented the app using the Safe Apps SDK
  • Your Safe App includes a manifest.json file at the root with the required data
  • The app can be loaded as a custom Safe App in the Apps section of https://app.safe.global.
  • The app auto-connects to the Safe as a wallet
  • It doesn't try to connect to the browser wallet (e.g. MetaMask)
  • You are able to trigger and execute one transaction with a Safe.
  • RPC requests are optimized (not triggering many requests in a very short time period).

Audit document

The app is mainly a wrapper around Stakewise staking pool contracts: https://github.com/stakewise/contracts/tree/master/audits
There is also custom Ethereum fee splitter used in case of native staking: https://github.com/bricktowers/ethereum-contracts/tree/main/eth-validator-fee-splitter/audit

Team information

Company: Brick Towers AG

Official website: https://bricktowers.io/

Point of contact: Sergey Kisel

Email: sergey.kisel@bricktowers.io

Telegram: @sergeykisel

@kirkkonen
Copy link

This submission was reviewed and approved by the product team.

@tmjssz
Copy link

tmjssz commented Nov 19, 2024

This submission is missing a link to the code for review. A link to the production app is also missing.

@skisel-bt
Copy link
Author

@tmjssz link for the app on production is https://safe.bricktowers.io/

The app without safe integration would be on https://staking.bricktowers.io/ or on holesky https://staking.dev.bricktowers.io/

Is the code for the app itself is essential to get through the process? Safe dapp code is part of the bigger frontend application repository (Brick Towers Dashboard), which is currently not open-source. Is there a particular functionality you are interested in, could we share with you some fragments?

@tmjssz
Copy link

tmjssz commented Nov 20, 2024

Hi @skisel-bt the code review is a required part of the process to hightlight potential issues or suggest improvements. We're particularly interested in how the app integrates with Safe. Can you send an invite to the private repo so we can take a look at the code?

@skisel-bt
Copy link
Author

hi @tmjssz the invite has been sent to you to access our repository. Please let me know if it worked out.

@tmjssz
Copy link

tmjssz commented Nov 27, 2024

@skisel-bt Thanks it worked.

I finished reviewing the code and have a couple of improvement suggestions:

  • Address compilation warnings (there are 985)
    • In particular the ones regarding missing dependencies in useEffect and useMemo hook usages. This could lead to unexpected behaviour and bugs in your app.
  • Use code quality tools like linters and code formatter
  • Add basic unit test coverage
  • Add @safe-global/safe-gateway-typescript-sdk to dependency list in package.json
    • Import TransactionStatus from main package instead using .../dist/types/transactions path
      import { TransactionStatus } from "@safe-global/safe-gateway-typescript-sdk";

Otherwise it looks good to me and I think we can proceed with QA.

@github-project-automation github-project-automation bot moved this to New issues in Safe{Wallet} Nov 27, 2024
@parius parius moved this from New issues to Ready for QA in Safe{Wallet} Nov 27, 2024
@francovenica francovenica moved this from Ready for QA to QA in progress in Safe{Wallet} Nov 28, 2024
@francovenica francovenica self-assigned this Nov 28, 2024
@francovenica
Copy link

francovenica commented Nov 28, 2024

QA report.
TL DR: looks good, check the URL you are giving to users to visit blockexplorer after a tx, is not the tx hash (Point 3). Tx samples at the bottom

The feature looks pretty good. I was able to stake, unstake and mint.
For native staking I used a safe we got with 32 eth to try it. It shows a message to be signed instead of a tx, which I didn't sign to not waste the tokens. Still the flow till just before the final signing looks good
Also I was able to switch safes and see that the app re connects just fine

Some feedback:
1 - The first time I loaded the app my MM extension in chrome popup. I had to connect with my user. After that It was the safe that it was connected to the app, so the end result is correct and what it is expected, but still it was confusing why the MM pop up showed up. Only happened once and never again. Not considered an issue

2 - There is an edge case with the txs that are not execute right away.
In our safe, you can just sign a tx and not execute it right away. If you take that fully signed tx and "Cancel it" the tx is not executed obviously, but if you return to the app it will give you a "success" message, like if the tx was executed just fine.
I don't consider this an issue since is probably an unexpected behaviour given the type of "wallet" that is using the app. Still it was worth reporting.

3 - There is an issue after executing a tx like a staking. The application shows you a button with a link to the block explorer, but the hash you are giving is our "SafeTxHash" instead of the "TxHash", so it takes to ta tx in the block explorer that doesn't exist
image

I'd appreciate to fix only the point 3. Points 1 and 2 are just reports, not issues.

Some tx I've executed with the app:

https://app.safe.global/transactions/tx?safe=eth:0x8675B754342754A30A2AeF474D114d8460bca19b&id=multisig_0x8675B754342754A30A2AeF474D114d8460bca19b_0xbd72336a9b70f01f0ed701ba579e74f754e9afaab3fdfa2422a88904ba03d820

https://app.safe.global/transactions/tx?safe=eth:0x8675B754342754A30A2AeF474D114d8460bca19b&id=multisig_0x8675B754342754A30A2AeF474D114d8460bca19b_0xbba0e0d49c8aca75f428641e62b17a55ecfacfcb880a70094784b84b190ee709

https://app.safe.global/transactions/tx?safe=eth:0x8675B754342754A30A2AeF474D114d8460bca19b&id=multisig_0x8675B754342754A30A2AeF474D114d8460bca19b_0xd710f993433974f94b30cff882518180e8963e6d0dcc6c1ffae6d5c261b4fa7e

@skisel-bt
Copy link
Author

Hi @francovenica @tmjssz
Thank you for your extensive work with our application as well as very detailed feedback.
We will be fixing in the next few days the most critical points and will release them by the beginning of the next week.

@skisel-bt
Copy link
Author

Hi @francovenica @tmjssz
Points 2 and 3 are fixed as well as some code review feedback. Point 1 will need a bit more time.
Prod app has been released now.

@francovenica francovenica moved this from QA in progress to Ready to merge in Safe{Wallet} Dec 3, 2024
@francovenica
Copy link

Thanks! Lgtm

Approved

@PooyaRaki
Copy link
Contributor

@skisel-bt
The app is now listed.
Thanks for your submission.

@github-project-automation github-project-automation bot moved this from Ready to merge to Done in Safe{Wallet} Dec 5, 2024
@skisel-bt
Copy link
Author

@PooyaRaki @francovenica @tmjssz

Thank you for successfully publishing our Safe app—much appreciated!

I wanted to check if it would be possible to add tags to our app, specifically including "staking." Would this require changes to our manifest, or is there a different process for updating the tags?

Additionally, we'd like to include our Telegram page for user support. Here's the link:
https://t.me/brick_towers_support

Please let me know how best to proceed.

@PooyaRaki PooyaRaki reopened this Jan 11, 2025
@PooyaRaki PooyaRaki added the Ready for Listing Safe app reviewed and ready to be listed. label Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Ready for Listing Safe app reviewed and ready to be listed.
Projects
Archived in project
Development

No branches or pull requests

5 participants