Fushuma / Dev_grants

1 stars 0 forks source link

Add Launchpad to Sloth Finance #4

Closed yuriy77k closed 1 month ago

yuriy77k commented 3 months ago

Development Grant: Launchpad for Sloth Finance

Technical Details:

Launchpad should be like this: https://www.pinksale.finance/launchpads?chain=BSC but with Sloth Finance graphics style.

Information for each launchpad card should be taken from JSON in a config file. For example:

const launchpads = {
  card1: {
    name: "Project name",
    symbol: "Token symbol",
    address: "Token contract address",
    logo: "link to the logo",
    description: "Project description",
    startDate: "timestamp when the sale ends",
    endDate: "timestamp when the sale ends",
    icoContract: "Address of ICO contract",
    ...
  },
  card2: {

  },
  ...
} 

Information about ICO progress should be read from ICO smart contract.

ErrSystem commented 3 months ago

I am not sure if I will do it or no but can I have more informations about the location of the JSON data? Should I place it in src/config/launchpad/launchpads.ts ??

ErrSystem commented 3 months ago

I am making the UI and I would like to know more about the way the data will be insered to the JSON file.

yuriy77k commented 3 months ago

I am not sure if I will do it or no but can I have more informations about the location of the JSON data? Should I place it in src/config/launchpad/launchpads.ts ??

yes, it can be there

yuriy77k commented 3 months ago

I am making the UI and I would like to know more about the way the data will be insered to the JSON file.

For begin, data can be inserted manually,

But later, will be good to have a page "Create launchpad" where a project provides all required information and it should be added to the list of launchpads. But in this case, we can't use a config file, right?

ErrSystem commented 3 months ago

For begin, data can be inserted manually,

Okay!

we can't use a config file, right?

No, I think we can do a system that works with smart contracts. Like you said have a page to create launchpad, provide all the infos of the ICO and have a create button that will create a launchpad in smart contract. The data will be fetched from that smart contract, maybe it will work like this?

yuriy77k commented 3 months ago

No, I think we can do a system that works with smart contracts. Like you said have a page to create launchpad, provide all the infos of the ICO and have a create button that will create a launchpad in smart contract. The data will be fetched from that smart contract, maybe it will work like this?

We can't store all the info in a smart contract, it will be very expensive in gas. The better solution is to use a backend with a database to store the required info. But for now, we can work with manually editing the config.

Dalcor commented 3 months ago

I could provide that functionality for you. I'm familiar with tech. stack used in current exchange version (including next.js, viem/wagmi and tailwind)

Update will include:

The update will cost $1200 and will take about 7-10 days.

ErrSystem commented 3 months ago

Hey, here's a small update

I followed the instructions of Yuriy but adapted it to Sloth Finance style.

I think I can complete it for Wednesday (including responsive), I could need some help for smart contract integration.

Cost: $800.

image image

creepas commented 3 months ago

Oh this seems really good mate.

I will talk on monday with the team. You have it on github so we can take a look on the code and possibly start integrating smart contracts?

cReepas

On Sat, Mar 16, 2024, 15:16 ErrSys @.***> wrote:

Hey, here's a small update

I followed the instructions of Yuriy but adapted it to Sloth Finance style.

-

Launchpad list page is completed (screenshots)

Project info page under progress (completion 60%)

I think I can complete it for Wednesday (including responsive), I could need some help for smart contract integration.

Cost: $800.

image.png (view on web) https://github.com/Fushuma/Dev_grants/assets/62564023/c08726f4-82d3-4b03-ace8-b65b5b5f337a image.png (view on web) https://github.com/Fushuma/Dev_grants/assets/62564023/7406c8b7-bd5d-45df-b9e5-b634737d1cd5

— Reply to this email directly, view it on GitHub https://github.com/Fushuma/Dev_grants/issues/4#issuecomment-2001999912, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEVJUFBHVHCHW43Q7LYVJHTYYRA2JAVCNFSM6AAAAABEWR5YX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBRHE4TSOJRGI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

ErrSystem commented 3 months ago

Sounds good. I will share the repo's link by Monday.

Today, I improved the code of the Launchpad list page, and from my point of view it is completed. (screenshot 1)

I also made some progress in the code of the Project info page, so tomorrow I will work on smart contracts integration, if I have questions I will ask them here. (screenshot 2)

I dont think that its crucial but I want to mention that Sloth Finance's UI depends on the Tailwind library, I dont know it very well, so I used it when I could but wrote the majority of styles with CSS. However I plan to continue to work on Tailwind so I will be able to rewrite it in a few weeks, I hope its fine.

image image

yuriy77k commented 3 months ago

@ErrSystem you should not spend much time on it until we approve your offer. We'll discuss the proposed offers on Monday and write here what we choose.

ErrSystem commented 3 months ago

Hey @yuriy77k , actually I started to work on it 3 days ago and have completed the code. I wanted to work on the smart contract integration today but I will wait for you.

I have invited you and creepas to the repo so you can get the code, and a demo of the Launchpad page is online: https://streamable.com/ze06n8

Here are some of the features implemented:

  1. Design inspired from Sloth Finance
  2. Light and dark modes supported
  3. The pages are responsive
  4. Various animations and user friendly optimisation

Launchpads list page:

  1. Cards are updated automaticaly according to a config file
  2. Media section and Soft / Hard cap are optional if empty these parameters will not be shown
  3. The cards are sorted by state, live sales first, then the sales to come, then ended sales
  4. A card is deleted automaticaly 60d after completion (can be edited or removed)
  5. A card's state (live/soon/ended) is updated automaticaly
  6. When the sale ends, the timer is replaced by the end date

Project info page:

  1. If selected network is not the ICO's network the Buy button will be replaced by switch {network name}
  2. If wallet is disonnected, the Buy button will be replaced by connect wallet
  3. If entry is 0 then the buy button is disabled
  4. 1 coin is deducted from the input provided by the max button (Gas fee)
  5. UI don't allow the user to buy more than the tokens available on the contract (calculed like this: token for sale - current supply), if you do so the input value will automaticaly turn into the available tokens.
  6. Added a button to add the token to metamask
yuriy77k commented 3 months ago

@ErrSystem your offer is approved.

You should Implement:

  1. Smart Contract integration to display ICO information from the contract (function getCurrentRound()) and buy tokens (function buyToken()).

  2. Launchpad should support many chains and many tokens.

For example in JSON config should be such parameters:

const launchpads = {
card1: {
    ...
    chains: {
        "820": [
            "busdt", "bnb", // tokens from chain's token list, for example: \src\config\token-lists\tokenListInCLO.ts
            "native" // native coin, in chain 820 it's CLO
        ],
        "61": ["native"], // ETC
        ...
    }
    ...
  },
  card2: {

  },
  ...
}

Depending on the current chain, a user should be able to choose which token he wants to pay. tokenList

  1. If a card has the parameter: "vestingContract": "0xe5A5837b96176d6E47E541F186B2348DED2c0A1d" we should display vesting details like here: vesting

Use the function getUnlockedAmount to get vesting info and the function claim for claiming unlocked tokens.

ErrSystem commented 3 months ago

Okay, I will start working on it.

ErrSystem commented 3 months ago

Hello @yuriy77k, I started to work on the smart contracts integration today. For testing purpose, I tried to get the informations from the ICO of LiveDiff but I figured out that the values returned are not as defined in the linked documentation.

{ amount: 0n, price: 0n, roundStarts: 0n, totalReceived: 0n, totalSold: 0n }

The contract doesnt return the 'endDate' and 'startDate' parameters. Any thoughs?

yuriy77k commented 3 months ago

@ErrSystem sorry, the ICO contract was updated, but the documentation wasn't. Now I updated it.

ErrSystem commented 3 months ago

Thank you for your answer.

What about the endDate value? How I can get it?

yuriy77k commented 3 months ago

What about the endDate value? How I can get it?

In this ICO there is no endDate in the contract (the new round starts when all tokens from the previous will be sold).

So use endDate from the config parameter.

ErrSystem commented 3 months ago

Hey, I just wanted to tell you that I am still working on the launchpad upgrades and that I've done a lot of changes, It took me more time because I was busy with some personal things. I ensured to incorporate pre-existing systems to enhance the integration of the launchpads in the app.

Here are some changes I have done:

ErrSystem commented 2 months ago

Hello, I have almost finished the page., the only thing left is the functionality to buy the tokens. Here are some changes I have made this week:

I updated the readme file in the page repo with the variables required to add a chain to Sloth Finance. I made them minimal so every dev can do it.

Here are some screenshots of the different sections of the page (note that some values are missing because there is no smart contract to take informations from):

image image image image

Note: the "+" image in the second picture means that the ICO supports more than 2 chains.

Questions & Testing:

  1. For testing prurposes, I would like to have an ICO contract on 2 chains and have the possibility of editing its totalSold, do you think it is possible?

  2. The ICOs are organized by status "Live", "Soon", "Ended", which means that when an ICO is completed, it is automatically marked as "Ended". However, if an ICO is sold out then the end date from the config file will be wrong, we therefore need to fetch this data from the smart contract. Can you add it?

ErrSystem commented 2 months ago

Hello @yuriy77k any update on my questions?

On my side, I added the function to buy ICO tokens. However, I think that a more suitable approach for the launchpads page is to have one function to buy with the coin and one to buy with tokens (while precising in the arguments the token address), can you do this?

I also updated the repo if you want to check the code.

spatialiste commented 2 months ago

Hello @ErrSystem, sorry for the late answer; we have several things ongoing, so... However, this morning we discussed with @yuriy77k and this is what comes out:

1. For testing prurposes, I would like to have an ICO contract on 2 chains and have the possibility of editing its totalSold, do you think it is possible?

2. The ICOs are organized by status "Live", "Soon", "Ended", which means that when an ICO is completed, it is automatically marked as "Ended". However, if an ICO is sold out then the end date from the config file will be wrong, we therefore need to fetch this data from the smart contract. Can you add it?

We don't really want to edit the smart contract for now, so let's do the tests on Callisto Network, without the end date, please simply mark the sale as "Ended" when it's over.

But this is a great feature, and we could implement it in an upgrade.

3. A more suitable approach for the launchpads page is to have one function to buy with the coin and one to buy with tokens (while precising in the arguments the token address), can you do this?

Yes, the function to buy with coins is planned and will be added later. For now, let's start testing the UI with the LiveDIFF token. Please create a config file with the info below, and create a pull request into the development branch of this repo: https://github.com/CallistoEnterprise/soy-finance-app-v2:

Thank you.

ErrSystem commented 1 month ago

Hey @spatialiste, @yuriy77k, I've made a pull request to the developement branch as you requested.

Sloth Finance Patch notes:

Note: the structure of some files might have changed because of the extension Prettier but the functionalities are not impacted.

Sloth Finance: Launchpads, Pull request. Sloth Finance: Launchpads, Deployed website.

The LiveDiff test launchpad will end the 17/05/2024 12:00 UTC.

spatialiste commented 1 month ago

Hello @ErrSystem. We are starting to review the page today and we will get back to you by Friday. Thanks a lot.

spatialiste commented 1 month ago

Hi @ErrSystem, we've done some testing and the UI is great, but we found an issue, when attempting to purchase from Trust Wallet without BUSDT, the network is set to Ethereum instead of Callisto Network. This problem does not occur with Metamask.

Could you please check?

https://github.com/Fushuma/Dev_grants/assets/41175366/a6cf1364-a3bb-4ea7-ba27-7c332538490a

ErrSystem commented 1 month ago

Hey @spatialiste, I've run some tests and didn't encounter the error. However I've published a new version of the page where transactions can't be sent unless you have the required amount of tokens, which should resolve the issue.

Updated end date of the LiveDiff launchpad: 22/05/2024 18:00 UTC.

spatialiste commented 1 month ago

Hey @spatialiste, I've run some tests and didn't encounter the error. However I've published a new version of the page where transactions can't be sent unless you have the required amount of tokens, which should resolve the issue.

Updated end date of the LiveDiff launchpad: 22/05/2024 18:00 UTC.

Hello, so we made some more tests, and it works great; just that when the decimal is too long, the transaction is rejected, so please reduce it to 3 or 4 numbers. I would also prefer to have the "Details" button in green so that it will be more visible.

Last point: Could you please disable the menu entries "Boost Token" and "Burn & Boost" so that we can allocate the rocket icon to the launchpad?

ErrSystem commented 1 month ago

Hello @spatialiste, I've made the menu changes and switched the details button background to green as per your request. Additionally, I've fixed the bug you mentioned and addressed a few other issues as well.

Updated end date of the LiveDiff launchpad: 30/05/2024 18:00 UTC.

spatialiste commented 1 month ago

Hello @spatialiste, I've made the menu changes and switched the details button background to green as per your request. Additionally, I've fixed the bug you mentioned and addressed a few other issues as well.

Updated end date of the LiveDiff launchpad: 30/05/2024 18:00 UTC.

Hello @ErrSystem, We made some tests and found an error that was not present in the previous version. When setting the transaction value to "Max," the value is too big, and an error occurs (see screenshot).

image

Finally a last request, could we set "Return" as a button like we did for "Details"?

image

ErrSystem commented 1 month ago

Hello, I've made the changes you requested on the "Return" and "Go Back!" buttons:

image image

The issue you mentioned was caused by the decimal changes I've made in the previous version and its now resolved. I also fixed some other visual bugs.

ErrSystem commented 1 month ago

Hey, I checked again and updated the code to fix some input issues. You can check the commit here.

spatialiste commented 1 month ago

Hey, I checked again and updated the code to fix some input issues. You can check the commit here.

Thank you. We tested it this morning, and it works great. We will proceed with the payment to your wallet this afternoon.

Edit: Please provide me with a wallet address for the payment.

Thanks again.

ErrSystem commented 1 month ago

Hey @spatialiste, I am happy to hear that, here is my wallet address: 0x28544a8e2cdd21f58479628caf41da3b1884acb9

spatialiste commented 1 month ago

Hello @ErrSystem, We just processed the payment. Thank you again for participating in this grant and for the work you accomplished.

This grant is now completed.

Tx Link: https://bscscan.com/tx/0x93bb069d81d03a14522201ea88e0a06766efd3334533871b890425e07b0003e4