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

Next of kin user interface #4

Open
wants to merge 39 commits into
base: master
Choose a base branch
from

Conversation

walterthesmart
Copy link
Owner

#NextOfKin Smart Contract User Interface

Overview

This pull request introduces a user interface for the NextOfKin smart contract. The NextOfKin contract is a Clarity-based smart contract deployed on the Stacks blockchain, designed to automatically distribute a user's STX and BTC to designated beneficiaries after a specified period of wallet inactivity.

Changes Introduced

  1. Created a new React component (App.js) to serve as the main interface for the NextOfKin contract.
  2. Implemented wallet connection functionality using @stacks/connect.
  3. Added a responsive navbar with a wallet connection button.
  4. Set up state management for user address using React's useState hook.
  5. Implemented session storage to persist user connection state.

Detailed Description

Wallet Connection

The UI now includes a "Connect Wallet" button that, when clicked, initiates the Stacks wallet connection process. This is crucial for users to interact with the NextOfKin contract. The connection process is handled by the showConnect function from @stacks/connect.

User Session Management

We've implemented a UserSession object to manage the user's session. This allows us to retrieve and store the user's Stacks address securely.

State Management

The component uses React's useState hook to manage the user's address state. This state is updated when the wallet is connected and is used to display the appropriate button text ("Connect Wallet" or "Wallet Connected").

Session Persistence

To improve user experience, we've implemented session storage. This allows the user's connection state to persist across page reloads, reducing the need for repeated wallet connections.

UI Design

The interface features a clean, responsive navbar with the application title and the wallet connection button. We've used Tailwind CSS for styling, ensuring a modern and consistent look.

How This Relates to the NextOfKin Smart Contract

While this PR doesn't directly interact with the NextOfKin smart contract yet, it lays the groundwork for future interactions. The wallet connection is a crucial first step, as it will allow us to:

  1. Retrieve the user's Stacks address, which will be necessary for interacting with the contract.
  2. Set up beneficiaries and inactivity periods in future iterations.
  3. Display contract-related information such as current beneficiaries, inactivity period, and fund distribution status.

Next Steps

  1. Implement functions to interact directly with the NextOfKin smart contract.
  2. Create forms for users to set up beneficiaries and inactivity periods.
  3. Develop a dashboard to display contract-related information.
  4. Implement error handling and user feedback for contract interactions.

Testing

  • Tested wallet connection functionality on testnet.
  • Verified that the user's address is correctly stored and retrieved from session storage.
  • Ensured responsive design works across various screen sizes.

Dependencies

  • @stacks/connect: For Stacks wallet integration
  • React: For building the user interface
  • Tailwind CSS: For styling

Notes for Reviewers

  • Please check the wallet connection flow and ensure it's working as expected.
  • Verify that the user's address is correctly managed in both state and session storage.
  • Provide feedback on the UI design and suggest any improvements.

This PR sets the foundation for the NextOfKin contract's user interface. Future PRs will build upon this to create a full-featured interface for managing beneficiaries and interacting with the contract.

The commit adds a new file `nok-trait.clar` which defines the `nok-trait` contract. This contract includes several functions such as `deposit`, `assign-recipients`, `check-and-distribute`, `get-balance`, `get-recipients`, and `get-last-activity`. The purpose of this commit is to introduce the `nok-trait` contract to the project.- code for stacks
…y period

This commit adds the `constants.clar` file which defines three constants: `CONTRACT_OWNER`, `MAX_RECIPIENTS`, and `INACTIVITY_PERIOD`. These constants are used in the project to set the contract owner, limit the maximum number of recipients, and define the inactivity period. This change improves the modularity and readability of the code- Code for stacks
…nd-distribute functions

The commit adds the `main.clar` file which defines the `NextofKin` contract. This contract includes several functions such as `deposit`, `assign-recipients`, and `check-and-distribute`. It also includes read-only functions like `get-balance`, `get-recipients`, and `get-last-activity`. The purpose of this commit is to introduce the `NextofKin` contract to the project and provide functionality for depositing funds, assigning recipients, and distributing funds in case of inactivity.-code for stacks
… nok-trait

This commit adds multiple contract files including `NextofKin`, `constants`, `core`, `distribution`, and `nok-trait`. These contracts provide various functionalities such as depositing funds, assigning recipients, checking and distributing funds, and retrieving balance and recipient information. The purpose of this commit is to introduce these contracts to the project and improve modularity and readability of the code.-code for stacks
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.

1 participant