hashgraph / hedera-sdk-js

Hederaβ„’ Hashgraph SDK for JavaScript/TypeScript
https://docs.hedera.com/guides/docs/sdks
Apache License 2.0
256 stars 136 forks source link

Create an Example for "Create Account with Threshold Key" functionality #2511

Open ivaylogarnev-limechain opened 3 weeks ago

ivaylogarnev-limechain commented 3 weeks ago

πŸ†•πŸ₯ First Timers Only

This issue is reserved for people who have never contributed to Hedera or any open source project in general. We know that creating a pull request (PR) is a major barrier for new contributors. The goal of this issue and all other issues labeled by 'good first issue' is to help you make your first contribution to Hedera.

πŸ‘Ύ Description of the issue

Problem

The Hedera Java SDK includes an example that demonstrates how to create an account with a threshold key (CreateAccountThresholdKeyExample.java). This is a crucial feature that allows users to create accounts where multiple signatures are required to authorize transactions, which is an essential security mechanism.

However, there is no equivalent example available in the Hedera JavaScript SDK. Developers using the JavaScript SDK would benefit from having a similar example to guide them in creating accounts with threshold keys in a JavaScript environment.

Solution

Below is a link to the existing Java implementation, which can serve as a basis for creating the JavaScript example: CreateAccountThresholdKeyExample.java

Steps to Implement

  1. Generate key pairs using the JavaScript SDK (PrivateKey.generateED25519()).
  2. Create a threshold key by initializing a KeyList with a threshold and adding the public keys.
  3. Create an account with the threshold key.
  4. Perform a transaction requiring multi-signature from the threshold key.
  5. Delete the account as part of cleanup, also requiring multi-signature.

Expected Outcome

The new example will provide developers with a clear guide for setting up multi-signature accounts using threshold keys in JavaScript. This is especially important for those building more complex, secure applications that require multi-signature transactions

By providing this JavaScript example, we align the JavaScript SDK with the Java SDK in terms of documentation and usability, making it easier for developers to build Hedera-based applications.

πŸ“‹ Step by step guide to do a contribution

If you have never contributed to an open source project at GitHub, the following step-by-step guide will introduce you to the workflow. More information and concrete samples for shell commands for each step can be found in our CONTRIBUTING.md file. A more detailed general documentation of the GitHub PR workflow can be found here.

πŸŽ‰ Contribute to Hacktoberfest

Solve this issue as part of the Hacktoberfest event and get a chance to receive cool goodies like a T-Shirt. 🎽

πŸ€” Additional Information

If you have any questions, just ask us directly in this issue by adding a comment. You can join our community chat at Discord. A general manual about open-source contributions can be found here.

b-l-u-e commented 5 hours ago

I am interested in working on the issue

samswag commented 58 minutes ago

Sure, assigning you