paltalabs / create-soroban-dapp

Boilerplate for Soroban dApps in ReactJS
https://create-soroban-dapp.vercel.app
Apache License 2.0
33 stars 42 forks source link

Xbull Wallet pops up when signing a transaction with freigther #60

Open chopan123 opened 3 weeks ago

chopan123 commented 3 weeks ago

Xbull wallet popup appears when sending a transaction to change the title of the greeting contract. It also throws the following error:

Uncaught (in promise) 
Object { stack: "_super@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/util/createErrorClass.js:7:26\nEmptyErrorImpl@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/util/EmptyError.js:6:11\ncomplete@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/firstValueFrom.js:20:28\nConsumerObserver.prototype.complete@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subscriber.js:138:33\nSubscriber.prototype._complete@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subscriber.js:92:30\nSubscriber.prototype.complete@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subscriber.js:69:18\ntakeUntil/</<@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/operators/takeUntil.js:10:141\nOperatorSubscriber/_this._next<@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/operators/OperatorSubscriber.js:33:27\nSubscriber.prototype.next@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subscriber.js:51:18\nSubject.prototype.next/<@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subject.js:69:34\nerrorContext@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/util/errorContext.js:22:9\nSubject.prototype.next@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subject.js:59:24\nxBullWalletConnect/this.closeCurrentPromisesSubscription<@webpack-internal:///./node_modules/@creit-tech/xbull-wallet-connect/lib/index.js:44:44\nConsumerObserver.prototype.next@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subscriber.js:113:33\nSubscriber.prototype._next@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subscriber.js:80:26\nSubscriber.prototype.next@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/Subscriber.js:51:18\ntimer/</<@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/observable/timer.js:28:28\nAsyncAction.prototype._execute@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js:79:18\nAsyncAction.prototype.execute@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/scheduler/AsyncAction.js:67:26\nAsyncScheduler.prototype.flush@webpack-internal:///./node_modules/rxjs/dist/cjs/internal/scheduler/AsyncScheduler.js:38:33\n", name: "EmptyError", message: "no elements in sequence" }

Step to Reproduce

  1. Create project
  2. Install dependencies
  3. launch Dapp with yarn dev
  4. change the title and sign transaction with freighter wallet
  5. wait until Xbull wallet appears

Expected Behaviour When signing with a wallet that's not Xbull, Xbull popup should not appear.

Acceptance Criteria

Gift-Naomi commented 3 weeks ago

Hi @chopan123 I can work on this prefectly

NueloSE commented 3 weeks ago

@chopan123 can i work on this

martinvibes commented 3 weeks ago

@chopan123 i would love to work on this

chopan123 commented 3 weeks ago

Just remember you need to be registered in Only Dust to be assigned!

Gift-Naomi commented 3 weeks ago

Just remember you need to be registered in Only Dust to be assigned!

I have registered on OnlyDust sir

ShantelPeters commented 3 weeks ago

Hi @chopan123 can I be assigned to this issue please

PoulavBhowmick03 commented 3 weeks ago

Just remember you need to be registered in Only Dust to be assigned!

Gm, I believe only the comments which are made once the Odhack starts at 9.30 CET count right?

Ayoazeez26 commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a web developer with over 6 years experience building applications both personal and professional projects. I started contributing to open source via onlydust in march this year and I have contributed to a couple of issues, you can see them in my profile.

How I plan on tackling this issue

Make sure Xbull does not appear when signing with a wallet that is not Xbull

GideonBature commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am a Software Engineer and Technical writer, I have experience with TypeScript and Rust, I also have experience working with wallets, hence I believe I will be able to solve this problem with both the wallet and error.

How I plan on tackling this issue

I will first reproduce the error on my local machine, read the project description to better understand it, get a little familiar with the code base. Afterwards trace the files involved, make research where necessary, experiments with my solutions until both error and wallet problem is solved.

PoulavBhowmick03 commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I'm Poulav Bhowmick, a software engineer at Invisible Studios with a robust background in TypeScript, Rust, Solidity Cairo, fullstack development and blockchain technology. My experience includes building robust applications, optimizing functionalities and blockchain integration. I have actively participated in events and open source contributions, enhancing my capability to tackle real-world tech challenges. My projects can be viewed on my GitHub Profile and OnlyDust Profile. Plus I´m active member of Starknet community🇷.

How I plan on tackling this issue

Investigate the Wallet Configurations: Begin by checking the browser extension configurations for both Freighter and Xbull Wallet. It's possible that both extensions are set to handle the same event or protocol.

Inspect Event Listeners: Dive into the code where transaction signing is triggered. Identify the event listeners that are being invoked and ensure that only Freighter is actively listening for the signing event when it is selected.

Conditional Handling: Implement conditional logic that prioritizes Freighter when it is the chosen wallet for signing transactions. This might involve disabling or unregistering Xbull Wallet's event listeners when Freighter is in use.

User Selection Validation: Before triggering the signing process, validate the user's wallet selection and ensure that only the corresponding wallet's event is fired.

Next Steps:

Debug the issue with both wallets active in a test environment. Implement the fixes and test to ensure that only the selected wallet (Freighter in this case) pops up for signing. Document the steps taken and the changes made.

josephchimebuka commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hello @chopon123 I am Joseph Chimebuka I'm a full-stack software developer with 4+ years of experience in crafting innovative products. I've built a range of projects, including https://mattedsgn.vercel.app/ and https://metacrypt.vercel.app/ showcasing my expertise in React, Next.js, and blockchain technologies. I'm also an active contributor onlydust. here's my account https://app.onlydust.com/u/josephchimebuka.

How I plan on tackling this issue

Verify that the Xbull wallet integration in the application is correctly configured, including the appropriate settings and permissions.

Then I will review the specific error message being thrown to identify the root cause.

I will ensure that the greeting contract code is correct and that any changes to the contract are properly deployed and compatible with the latest Xbull wallet version. I will Test the transaction flow thoroughly to confirm that the issue is resolved and the popup and error no longer appear.

ScottyDavies commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am front end developer with 4 years experience. i have worked with microsoft on several projects, this will be my first time contributing to the hackathon and i am ready to work

How I plan on tackling this issue

I would approach this issue with following steps Proposed Solution:

Detect the active wallet being used by the user. Conditionally render the Xbull wallet popup only when the active wallet is the Xbull wallet. Handle wallet-specific events and transactions to ensure the application works seamlessly with different wallets. Implement robust error handling and logging to identify and address any compatibility issues. Thoroughly test the wallet integration functionality.

raizo07 commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

Hello, i'll like to apply to be assigned to work on this. I'm a fullstack Dev with over four years experience. I have contributed to a lot of Open Source projects like this.

Benjtalkshow commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I am Benjamin, and I will be glad to address the issue where the Xbull wallet popup appears incorrectly when sending a transaction to change the title of the greeting contract. I have experience in debugging and resolving complex issues related to wallet integrations and transaction handling.

How I plan on tackling this issue

I will investigate and resolve the issue by:

I look forward to resolving this issue to improve the user experience and functionality of our Dapp.

ShantelPeters commented 3 weeks ago

I am applying to this issue via OnlyDust platform.

My background and how it can be leveraged

I have a strong background in debugging and optimizing web applications, particularly with integration issues involving various wallets and transaction handling. My experience includes resolving similar issues with wallet popups and ensuring compatibility across different services. This will help in addressing the Xbull wallet issue, ensuring that only the appropriate wallet popups appear and that all functionalities, including title changes, work correctly.

How I plan on tackling this issue

To address the issue:

  1. Identify Source: Investigate where Xbull wallet is being triggered in the code when interacting with the Freighter wallet.

  2. Check Integration: Review how wallet integration is managed and ensure that wallet detection and handling logic correctly differentiates between Xbull and other wallets.

  3. Update Conditions: Modify the conditions or logic that triggers the Xbull wallet popup to ensure it's only invoked when the Xbull wallet is actively being used.

  4. Test Thoroughly: Test with all specified wallets (Freighter, Lobstr, Hana) to confirm the issue is resolved and Xbull only appears when expected.

  5. Fix Error: Address the EmptyError by ensuring all necessary values are present and properly handled in the observable sequences.

This approach will ensure that the Xbull wallet popup issue is resolved and functionality with other wallets is maintained.

onlydustapp[bot] commented 3 weeks ago

The maintainer chopan123 has assigned josephchimebuka to this issue via OnlyDust Platform. Good luck!

PoulavBhowmick03 commented 2 weeks ago

Thanks! onto it