grants-and-bounties icon indicating copy to clipboard operation
grants-and-bounties copied to clipboard

Revise SDKs page for better library understanding

Open reveloper opened this issue 1 year ago • 6 comments

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.

reveloper avatar Nov 08 '23 04:11 reveloper

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 avatar Jan 23 '24 12:01 liketurbo

@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.

  1. 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.
  2. 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 avatar Jan 25 '24 02:01 reveloper

@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?

liketurbo avatar Jan 30 '24 02:01 liketurbo

@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

liketurbo avatar Jan 30 '24 02:01 liketurbo

I can complete this footstep.

ProgramCrafter avatar Mar 03 '24 15:03 ProgramCrafter

@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)

reveloper avatar May 14 '24 10:05 reveloper

I acknowledge the updated reward and provide wallet, UQCyoez1VF4HbNNq5Rbqfr3zKuoAjKorhK-YZr7LIIiVrX0-.

ProgramCrafter avatar May 21 '24 19:05 ProgramCrafter