On-line auctions implementation contest

There is a clear need for efficient implementation of different Auction types in Free TON. As many use cases demands auction mechanics we need a reference implementation of many auction types in-line with distributed smart contract architecture. Here I propose a Contest to fill that gap.

Contest participants will compete to create, test and deploy smart contracts implementing different types of auctions.

What types of auctions?

Since we have already implemented Vickry auctions in DeNS contest we should concentrate on the following auction types and their variants:

  1. English auction (https://en.wikipedia.org/wiki/English_auction)
  2. Dutch (https://en.wikipedia.org/wiki/Dutch_auction)

Both auction types should be implemented for forward (https://en.wikipedia.org/wiki/Forward_auction), reversed (https://en.wikipedia.org/wiki/Reverse_auction) auction types and blind variant (which technically are considered a separate type but we will use the English and Dutch names for simplicity) should be submitted with at least a commit-reveal scheme or zero-knowledge proofs.

What are architectural guidelines?

All submitted auction implementations should be composable, meaning the combined auction systems supporting governance contracts, etc, could be set up using the submissions. For example a cascading auctions, auctions with reserved or non reserved price and so on could be set up with minimal additions.

Auctions must be scalable and should not rely on a single contract. Auction Root contract should be able to deploy infinite amount of atomic auctions. Bids should be submitted as a separate contract each.

Interfaces

Contracts must interface with TON Crystal native cryptocurrency, Transfer function in DePools as well as TIP-3 tokens.

Auctions must emit on-chain events reporting important state changes that could be used by other smart contracts.

What programming languages could be used?

Solidity or C++ or combination of these must be used

What should submission include?

Source code (open source, Free Software licence)

Tests scripts for TS-4 in Python (should cover all functions, run and pass)

Description using any of the following languages: TLA+ family, TL-B, UML, Prolog family

DeBots following the latest specifications (link) to all user interactions with auction smart contracts

All smart contracts and DeBots should be deployed to DevNet, addresses provided in the submission, operational

SetCode Policy

Contracts may have SetCode function but the clean no SetCode variant should be provided as well.

Contest Dates: 30 March 2021 — 30 April 2021

Winners criteria:

Best implementation of most contest types according to provided architectural guidelines and contest terms.

Proposed prizes:

1 place — 50 000

2 place — 25 000

3 place — 10 000

Places 4 and 5 — 2 500 each

The jury:

Jury should be formed from known experts in the field of smart contracts only

Jury rewards:

An amount equal to 5% of all total tokens actually awarded and distributed will go to each juror for performing their civic duty to the community and taking the time to judge each submission and provide feedback.

8 Likes

There is the only one Subgov which can efficiently judge smart contracts contests - DevEx

1 Like

Looks like after this contest (Free TON Community) any subgovernance will be able to run SC contests with Global jurors

Test scripts for all functionality using one of the existing frameworks (should cover all functions, run and pass):

  • TS-4 in Python fron TonLabs;
  • Echpochmak fron Wintexpro;
  • TON testing suite or Locklift from Broxus;
2 Likes

Please include in the contest rules that a video presentation of the work is highly desirable.
And, at the end of the acceptance of applications, an AMA session will be appointed for participants, judges and everyone else. All records will be published on YouTube.

2 Likes

Simple Auction
Simplified English & Dutch Auctions if Free TON smart contracts.

Code & documentation

Sample Root in Devnet
0:0eb6fef10aa7f2496c8f43c5b120ae01a2f0661508184b98b9b0c8f44052b709

Sample DeBot in Devnet
0:ed64f712d1c8e263cbaf338944f1a78e8beaa3acc5534c57e759471a342a4868

https://devex.gov.freeton.org/submission?proposalAddress=0%3Af4bad3b4f8c58251f5123941332a847e659f708f724c6f77d204091e729cedbf&submissionId=1

7 Likes

Free TON online Auctions

Code & documentation:
https://github.com/tonred/auction

All info in documentation

By TON RED team

https://devex.gov.freeton.org/submission?proposalAddress=0%3Af4bad3b4f8c58251f5123941332a847e659f708f724c6f77d204091e729cedbf&submissionId=2

2 Likes

Introduction

The previous launch of the contest failed due to the small number of participants and low quality of works, at the meeting of DevEx Subgov, it was decided to relaunch this contest.
A copy of the document in Google Doc format is here: Contest-proposal-On-line_auctions_implementation_relaunch - Google Docs


Bellow is the text of the contest proposal.
These parts were changed:

  • dates;
  • participants rewards;
  • jury reward;
  • added a section of the contest announcement program;

There is a clear need for efficient implementation of different Auction types in Free TON. As many use cases demands auction mechanics we need a reference implementation of many auction types in-line with distributed smart contract architecture. Here I propose a Contest to fill that gap.

Contest participants will compete to create, test and deploy smart contracts implementing different types of auctions.

Contest period

Contest Dates: 25 June 2021 — 25 July 2021
Judging: 26 July 2021 — 8 August 2021

What types of auctions?

Since we have already implemented Vickry auctions in DeNS contest we should concentrate on the following auction types and their variants:

  1. English auction (https://en.wikipedia.org/wiki/English_auction )
  2. Dutch (https://en.wikipedia.org/wiki/Dutch_auction )

Both auction types should be implemented for forward (https://en.wikipedia.org/wiki/Forward_auction ), reversed (Reverse auction - Wikipedia) auction types and blind variant (which technically are considered a separate type but we will use the English and Dutch names for simplicity) should be submitted with at least a commit-reveal scheme or zero-knowledge proofs.

What are architectural guidelines?

All submitted auction implementations should be composable, meaning the combined auction systems supporting governance contracts, etc, could be set up using the submissions. For example a cascading auctions, auctions with reserved or non reserved price and so on could be set up with minimal additions.

Auctions must be scalable and should not rely on a single contract. Auction Root contract should be able to deploy infinite amount of atomic auctions. Bids should be submitted as a separate contract each.

Interfaces

Contracts must interface with TON Crystal native cryptocurrency, Transfer function in DePools as well as TIP-3 tokens.

Auctions must emit on-chain events reporting important state changes that could be used by other smart contracts.

What programming languages could be used?

Solidity or C++ or combination of these must be used

What should submission include?

Source code (open source, Free Software licence).
● Test scripts for all functionality using one of the existing frameworks (should cover all functions, run and pass):
○ TS-4 in Python from TonLabs;
○ Echpochmak fron Wintexpro;
○ TON testing suite or Locklift from Broxus.
● Description using any of the following languages: TLA+ family, TL-B, UML, Prolog family.
● DeBots following the latest specifications to all user interactions with auction smart contracts.
● All smart contracts and DeBots should be deployed to DevNet, addresses provided in the submission, operational.

SetCode Policy

Contracts may have SetCode function but the clean no SetCode variant should be provided as well.

Defense of contest works

At the end of the applications acceptance, AMA-session will be appointed for participants, jurors and everyone else. At this session, each contestant has to present his/her work.

A video presentation of the work is highly desirable. There are no strict requirements for the presentation. It can be prepared in any form (slide show, program text demonstration, video performance, etc.).

The presentation language is English or Russian. The presentation time should not exceed 10-20 minutes.

If a contestant cannot present the work on-line, he/she can make a video recording and publish it on YouTub.

Winners criteria:

Best implementation of most contest types according to provided architectural guidelines and contest terms.

Proposed prizes:

1 place — 50 000
2 place — 35 000
3 place — 20 000
4 place — 15 000
5 place — 10 000

Voting

Only qualified jurors, able to understand and evaluate smart contracts on Free TON should judge.
Each juror will vote by rating each submission on a scale of 1 to 10 or can choose to reject it if it does not meet requirements, or they can choose to abstain from voting if they feel unqualified to judge.
Jurors will provide feedback on your submissions.
Duplicate, incomplete or inappropriate submissions will be rejected.

The jury:

Telegram ID Public key
@lailune fb2fe560bfbdda910798e1365d9419ff6e0a75ed5262410b714f162434a88af6
@d_borisenkov 09e78ab9ceb5a0df34ecd4d70822848eba2d8cfc63fa05ef613b5d9a373b2a99
@inyellowbus f0c02482ac2a54691aba1e2c38b6cd7fd3708f9eb015058c7d85a939646715e7
@Custler 2c0ec55a109eb466d9db5ee7c3adb075e77627ade83ae17cea847671ab8f0a85
@RRoman_Tver 49c1c8453240fced11141a690870924fb4d9e9eeb8ea6fae54b8549677fb8bd5
@anovi 6bf867e7773038f9491b5d397cb7da8a20e112b45db9523cd8dae9deb608fb5a
@ded_mrz 9e808b1540babb85c428b9197b8df87860882d2db70607dfa134774a0513db30
@aleksandr_h 3bdb99452a6ed9138af385d035e0967250d0e2da6f58b90245f285daf250915c
@zxcat 0f07a7cb924c7420520d0d98afad87d9b5e1765920fda698c22da6d0cd3354b9
@bivanovsky 1a99622e54b4e87d603dd87c9cc936b388b2a0e1979bb56d4039cfad0fbadc8c
@get_username d89e20f2e164f4e64a3637cc6926baf66482bf8c875e4e7eebedd6f28024998c
@pafaul 7657b6b62ec6846e6341315ba3b8d611afe2ef79e8ee3214d45cc4ede3c50972

Jury rewards:

An amount equal to 10% of all total tokens actually awarded and distributed will go to each juror for performing their civic duty to the community and taking the time to judge each submission and provide feedback.

Contest announcement and attracting new members rewards

An amount equal to 5% of the prize fund will be allocated to announcing partners who participates in announcing the contest in different media according with the following table: media list for technical contests announcements, to be distributed equally among them:

  • @anovi
  • @Alex770
  • @moqub
  • @heyodhewow
  • @lesnik13utsa
  • @Kronchs

Each participant of the contest, when submitting an application, will be asked through which announcing partner he/she learned about the contest. After the end of the contest, for each participant who won a reward, an amount equal to 5% of his/her reward will additionally be distributed:

  • To the announcing partner who attracted him, if the referral was given during work submission;
  • Or equally to all aforementioned partners of the announcement program, if the referral was not specified.
4 Likes

Reserved space for future detailed instructions.

2 Likes

The announcement of the contest was posted on many crypto forums, at the moment we are working on opening the Free TON page on the dev.to developers website.

2 Likes

Hi!

Very interesting competition. Unfortanlty, I’m a begginer in freeTon.

Do you have some ofical tutorials and development examples?

I found only https://ton.dev/ and some habr.ru topics.

Maybe you have more?

1 Like

Pruvendo team plans to send its solution in a few hours.

1 Like

Hi! Here’s my submission.
Repo: https://github.com/SolderingArmor/freeton-auctions
Description: (attached to contest submission);
Telegram: @SuperArmor
Wallet: 0:cba39007bdb0f025aac0609b25e96a7d2153f06d22fa47b5f6c26cf756b8b2d6

2 Likes

Hi ! Here is our submission:
Repo: GitHub - OCamlPro/freeton_auctions: Implementation of Auctions on Free TON
Contact on Telegram: @fabrice_dune
Wallet: 0:24a44423bc7edc2598b50ae87267bd06bc53455328e837dae32b9b7592716de7

2 Likes

Hi! Here is our submission:
Repo: https://github.com/tonred/auction
Contact on Telegram: @Abionics
Wallet: 0:fa94171cb0565789224814561cc558e59315971ee9d03085de3dcb5f8b94d95e

2 Likes

In case you wish to reach me use Telegram account @SergeyEgorovSPb

1 Like

Online auctions Phase 2 Contest Proposal

Prepared by @SergeyEgorovSPb and @misha8299

Motivation

The contest #26 Online auctions implementation - relaunch, correct version had four accepted submissions, however, none of them was production-ready and could not be used ‘as is’ for the real auctions. The goal of the proposed contest is to encourage the teams to improve their solutions, making them production-ready.

Common requirements

  1. The solution must be either :

  2. an extension of the Contest #26 solution provided by its original author

  3. a completely new solution developed from scratch

  4. Must follow all general guidelines provided by the original contest

Submission Requirements

  1. All the solutions must be production-ready

  2. Debots with the following features must be implemented:

  3. The seller should be able:

1. Clearly set the item for selling
2. Set all the auction parameters (such as initial price, duration etc.)
3. Select the auction type (optional, in case the implementation allows multi-type setups)
4. Prove the item ownership and/or lease it to the auctioneer if required (see below)
5. Select wallet for the payment
6. Start the auction
7. Check the progress and final results
8. Stop the auction upon time expiration
  1. The buyer should be able:
1. Get the list of all the active auctions (for the current setup)
2. Get all the public properties of the item being sold
3. Get all the auction conditions (type, initial price, duration, fee etc.)
4. Get the item ownership proofs
5. Make a bid
6. Check the progress and final results
7. Stop the auction upon time expiration
  1. The auctioneer should be able:

  2. Either:

1. Deploy his own system of auctions (setup), or:
2. Use the root of all the auction systems to create the own one
  1. Restrict the items for sale

  2. Define the type (or types) of the auctions

  3. Define the currency of the auctions (native, TIP-3, Depool deposits)

  4. Define the auctioneer’s fee

  5. Define all the other policy if applicable

  6. Both native and TIP-3 auctions must be supported.

  7. Support for Depool deposits is optional (but its ready-to-production implementation should be awarded by additional points)

  8. The items for sale must be as generic as possible

  9. The creation of a new auctioneer or a new auction must be broadcasted with as much details as possible

  10. The solution must have a clear and reliable defence against:

  11. Selling the item that is not owned by the seller, at any time of the auction. It can be resolved by temporary transferring the ownership (or leasing) to the auctioneer

  12. Refusing to transfer the item after the auction completion

  13. Buying the item with denial to pay for it

  14. The high coverage of TS4 tests is highly desired (and should bring additional points). Alternatively (and ideally) the test suite that runs the test over one of the dev nets may be presented with the corresponding tests

  15. All the submissions must have the detailed Scenarios section in their reports where all the common use-cases are described step by step

  16. The solutions must be deployed either to main or any of dev nets and pass all the scenarios mentioned at the previous point

  17. All the other requirements must follow the requirements of the original Contest #26 unless they explicitly contradict with the requirements mentioned above

Contest dates

Submissions - Nov 8, 21 - Nov 28, 21

Voting - 7 days

Awards

  • 1st place - 50 000 TON
  • 2nd place - 35 000 TON
  • 3rd place - 20 000 TON
  • 4th place - 15 000 TON
  • 5th place - 10 000 TON

Jury

Jury team

The jury team will be identified by the Contest #45 that ends before the voting starts.

Jury guidelines

  1. If any of the “must” items from Requirements sections is not met the whole submission must be rejected (as the production quality is expected)
  2. If the juror thinks the submission is not ready for production it must be rejected
  3. For the rest of guidelines the ones from the original contest should be used

Jury rewards

  1. Each juror is awarded by 500 TON for voting for each submission
  2. Each voting must be accompanied by the detailed feedback (at least, five lines of the text), otherwise it’s not awarded

Administrative rewards

The amount of 5 000 TON is equally distributed between the authors of the present document and @anovi (as the contest facilitator).

Other

All the other items should follow the original contest.

3 Likes

As we agreed at the team meeting the following changes were applied:

  1. Removed the restriction to base solutions on the original solutions of other participants
  2. The original jurors are included into jhe jury in addition to newly selected ones

Please see the updated document at Auctions Phase 2 Proposal - Google Docs

1 Like