A Great ICO with a Rough Finish

Update November 21st 2021

We could finally solve the technical issue and recover all funds from the ICO with the help of Gnosis. A huge thank you goes out to Richard Meissner from Gnosis to assist us with an updated Safe that consumes less gas so that we can transfer the BNB to our multisig wallet.

When DEX?

In order to solve the issue, the time locked wallet for our investors had to be created with an unlock date that we associate with our DEX launch. Please be aware that this is not fully confirmed at the time of writing as of now we have to align it with the upcoming marketing activities for the launch. It may be slightly adjusted, but we’ll keep you updated on all channels as well as in this article.

TL;DR

We currently can’t get the funds transferred to our multisig wallet. The BNBs are not gone, they are still in our contract. This is no scam.

The contract balance on BSC Scan

A sequence of events

As mentioned in the video, we tried to finalize the crowdsale on Saturday. Technically, it is a call to the finalize operation, which should do two things:

List of failed Finalize transactions
Transaction Details showing out of gas for the send transaction

Why is it bad?

We use the address.send() function to transfer the BNB, the “safest way to send ETH (or BNB)” according to the documentation. Safe because the gas limit automatically prevents a re-entrancy attack. The gas limit was determined back in the days when 2,300 was sufficient to send even BNB to contracts that also implement a bit of logic. However, in the last few years, gas costs have been raised to the point where even a simple read of a variable consumes almost all the gas in the send transaction. I should have used a generic call operation to transfer the BNB to a contract that requires more than 2,300 gas.

What if this doesn’t work?

The problem described above, that gas costs have increased in the past, but the “safe” features keep the old gas limit, has already been addressed on Ethereum with the EIP-2930. The intention here is to give contracts a temporary way out, even with gas limits that are too low, to perform a transaction. Unfortunately, this EIP is not available on the Binance Smart Chain. It’s pretty new though and I don’t see a reason why Binance shouldn’t implement it. The good thing about the BSC is that it is not as decentralized as Ethereum. With only 21 validators, an update is easier to coordinate. While this is not a short-term solution, it also means that BSCs are not locked forever.

Links

Source Code of our Contract on github:
https://github.com/Skylight-Solutions/ico-contracts

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Monaco Market

Monaco Market

monacomarket.co — The first NFT marketplace for real world investment grade goods.