grants-and-bounties
grants-and-bounties copied to clipboard
Revise SDKs page for better library understanding
Summary
A reorganization of the SDKs page based on functional type libraries, for clarity and precision.
Bounty Context
Why it's Important? This enhancement should improve the process of choosing SDK for TON Blockchain developers.
Currently, it's challenging for developers to determine which library to use for each task, leading to inefficiencies and a slower development process. The change will streamline the development flow, making the platform more friendly and intuitive to new and existing developers alike.
Problem showcase The existing organization of the SDKs page is based on the type of transport- RPC/ADNL/without, which is causing confusion for developers.
Potential Solution A revised SDKs page based on the functional direction of libraries, similar to the ETH documentation reference, will offer an improved user experience. With this change, developers will be able to quickly find the appropriate library for their specific task, which can accelerate development and innovation on the TON Blockchain platform.
References
ETH Documentation Reference:
- https://ethereum.org/en/developers/docs/apis/javascript/
- https://ethereum.org/en/developers/docs/programming-languages/python/
- https://ethereum.org/en/developers/docs/programming-languages/java/
REWARD
- SBT Bounty Reward
- ~~1000~~ 300USD in TON (downgraded because task partly implemented - link)
🪄 Created with the help of TON Bounties Creator Bot.
In the Ethereum JavaScript Reference, they, besides the connection to the node, also showcase interacting with smart contracts, wallet functionality, and utility functions. Does this footstep aim to redo the SDKs page, similar to that, or just focus on differentiating why/when/how to choose between RPC/Native ADNL/tonlibjson wrapper/3rd-party services?
@liketurbo Yes, the main priority is on the "how to choose the SDK for my task" problem. The developer has a problem and doesn't know how to solve it, and we want to provide a potential way to solve his task.
I also expect a concise description and demonstration of contract interactions get method(seqno), message sending(transfer message with a comment), and NODE/RPC connections.
- This could assist developers in selecting the appropriate SDK, and the best way to create an optimal description is to double-check the developer's feedback while designing this.
- It should primarily reference related documentation and the main GitHub pages of libraries. We should avoid including any information that could quickly become outdated.
@reveloper Sorry for the delay. There are a couple questions that, I believe, need addressing.
- You mentioned that we should avoid information that can become outdated. My question is, to what extent? Code snippets can become outdated, but they are needed to showcase the problem's solution. Would it be okay to use them?
- As a continuation of the first question, which snippets? Most SDKs per language heavily overlap in functionality, making either one suitable for basic tasks. In that case, which library's API should we use when writing code snippets?
@reveloper Can you list all the tasks that you want to showcase, or is getting seqno, transferring a message, and establishing node/RPC all there is to it?
I think the list from xssnick/tonutils-go provides good coverage for the most common tasks.
-
Wallet
- Example
- Create
- Transfer
- Balance
- Transfer to many
- Send message to contract
- Build transaction and send from another place
-
Accounts
- List transactions
- Get balance
- Subscribe to transactions
-
NFT
- Details
- Mint
- Transfer
-
Jettons
- Details
- Transfer
-
DNS
- Resolve
- Get records
- Set records
-
Contracts
- Use get methods
- Send external message
- Deploy
-
Cells
- Create
- Parse
- TLB Loader/Serializer
- BoC
I can complete this footstep.
@delovoyhomie This task was partly finished with PR , but the expected result doesn't reached. However, for the part @ProgramCrafter done, it's fair to reamburse 300USD in TON for his job. (reward updated)
I acknowledge the updated reward and provide wallet, UQCyoez1VF4HbNNq5Rbqfr3zKuoAjKorhK-YZr7LIIiVrX0-
.