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

Smart Contract for Scalable Airdrops on TON Blockchain #273

Closed
3 tasks done
Gusarich opened this issue Jul 11, 2023 · 12 comments · Fixed by #346
Closed
3 tasks done

Smart Contract for Scalable Airdrops on TON Blockchain #273

Gusarich opened this issue Jul 11, 2023 · 12 comments · Fixed by #346
Assignees
Labels
Approved This proposal is approved by the committee Developer Tool Related to tools or utilities used by developers

Comments

@Gusarich
Copy link
Collaborator

Gusarich commented Jul 11, 2023

Summary

Developing a scalable and cost-effective solution for conducting large airdrops on the TON blockchain using Merkle proofs and sharded smart contract architecture.

Context

Currently, on-chain airdrops face limitations in terms of cost and efficiency. Existing approaches involve either paying high fees for distributing all tokens at once or storing large numbers of individual recipient entries in on-chain dictionaries. These methods are expensive and inefficient for large-scale airdrops. This project aims to address these challenges by implementing a scalable and inexpensive solution that maintains a consistent claiming process for users.

Goals

  • Create a default path for users to create on-chain airdrops
  • Improve the cost-effectiveness and scalability of airdrops

Deliverables

  • Repository containing the code for the smart contract covered with tests
  • Documentation and examples on how to use the smart contract

Definition of Done

  • Smart contract is completed and covered with tests
  • PR to @ton/core with Merkle proof creation functionality is merged
  • Documentation and examples of usage

Reward

  • Standard TON Footstep NFT
  • 1500 USD in TON equivalent

Total: 1500 USD

Oriental Release Date

The beginning of October

@Gusarich Gusarich added the footstep This is a TON Footstep issue label Jul 11, 2023
@Gusarich
Copy link
Collaborator Author

Gusarich commented Jul 11, 2023

I would like to complete this footstep if it gets approved.
The initial technical description of the system had been in my repository for a few months already:

@howardpen9
Copy link

also had same idea but I implement in Tact-lang... T_T

@Gusarich
Copy link
Collaborator Author

@delovoyhomie what do you think?

@Gusarich Gusarich changed the title Smart Contract and Web Interface for Scalable Airdrops on TON Blockchain Smart Contract for Scalable Airdrops on TON Blockchain Sep 27, 2023
@Gusarich
Copy link
Collaborator Author

The smart contracts are completed and covered with tests. I'll proceed with adding more test cases to make sure everything works correctly. I'll begin working on the documentation and examples after the approval of this Bounty.

The completion of this Bounty has also required the additions in @ton/core functionality for Dictionaries.
I'm using my forked branch of the library for testing until the PR is merged:

@delovoyhomie
Copy link
Collaborator

LGTM!

@delovoyhomie delovoyhomie added Approved This proposal is approved by the committee Developer Tool Related to tools or utilities used by developers labels Sep 28, 2023
@delovoyhomie delovoyhomie removed the footstep This is a TON Footstep issue label Oct 18, 2023
@Gusarich
Copy link
Collaborator Author

Update: the ton-org/ton-core#14 PR was merged and I'll be able to finishing this footstep as soon as the new release of @ton/core library comes out.

@Gusarich
Copy link
Collaborator Author

I am pleased to announce that this Bounty has been successfully completed. The smart contracts have been developed, thoroughly tested, well-documented, and come with usage examples.

Currently, there is an issue with wallet applications, as detailed in #283. This issue necessitated adjustments to the initial implementation to ensure its functionality despite the problem. Consequently, the solution is now slightly less efficient and user-friendly. However, I intend to revise and optimize it once the problem with sending exotic cells in wallet applications is resolved.

For rewards, here's my TON wallet address:

  • UQBKgXCNLPexWhs2L79kiARR1phGH1LwXxRbNsCFF9doczSI

@delovoyhomie
Copy link
Collaborator

To accurately recognize your valuable contributions in our repository, we kindly request you to submit a Pull Request to the Hall of Fame file, providing the wallet address and a link to the bounty with the number.

Please follow these steps:

  1. Fork the repository (if you haven't already).
  2. Edit the Hall of Fame file, commit, and push your changes.
  3. Create a Pull Request from your fork to the main repository, providing the wallet address and a link to the bounty with the number (for example, Pull Request Article: Generation of block random seed #136).

For reference on what your entry should look like, please see the examples of past merged pull requests.

@Gusarich, thank you for your contribution!

@Gusarich
Copy link
Collaborator Author

@delovoyhomie done! #346

@howardpen9
Copy link

@A91y
Copy link

A91y commented Jul 11, 2024

Hey, can you guide me to convert this contract into tact language?
Considering my limited experience in funC.

@Gusarich
Copy link
Collaborator Author

Hey, can you guide me to convert this contract into tact language? Considering my limited experience in funC.

This is definetely going to be implemented in Tact as an example but only after tact-lang/tact#154 gets implemented

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved This proposal is approved by the committee Developer Tool Related to tools or utilities used by developers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants