Some participants in the Red Pulse token sale were left unhappy after certain transactions were ineligible to receive RPX. The issue occurred at the beginning of the second period of the ICO in which participants were allowed to contribute up to 1352 NEO, having been restricted to 27 NEO in the first hour.
When the second hour began 3,242 users sent NEO to the ICO contract, only to find out later the second contribution round did not begin until the next block. These NEO contributions will have to be refunded manually by the Red Pulse team.
Many felt that the Red Pulse team incorrectly communicated the method by which the time of the contribution period was calculated.
The refund process has been outlined here – https://www.reddit.com/r/RedPulseToken/comments/758d0y/rpx_sale_refund_process/
Red Pulse CEO, Jonathan Ha has put out a statement on Reddit, offering an explanation to the confusion.
The full statement can be found below.
I know there’s been a lot of frustration and unhappiness regarding start of the second period of our RPX sale. As stated previously, during this first period, the cap was set at 1,000USD (27 NEO). At the conclusion of this first hour, the cap was lifted to 50,000USD (1,352 NEO). Consequently, many people who wanted to invest more, waited until the second period to invest more.
People who contributed NEO as part of block 1445025, were not considered by the smart contract to be part of the second period of participation yet. However, those that were part of block 144026, and going forward, were included. The reason for this is because smart contract timestamps are deterministic, meaning that it must output the same result, given the same input. In NEP-5 standard, the code used is:
uint now = Blockchain.GetHeader(Blockchain.GetHeight()).Timestamp;
Executing this line gets the timestamp of the PREVIOUS block, because that is the only way all the nodes can agree on what “now” actually means, since the current block 1445025 was still in progress. For everyone that contributed as part of block 144025, the “now” parameter was returned as 2017-10-08 13:59:50 GMT, outside the window of the second period. When the next block 1445026 began, the “now” parameter was then returned as 2017-10-08 14:01:44 GMT, which is within the window of the second period.
Regarding automatic refunds, we were unable to do this as a refund function could only be accomplished with implicit transaction outputs. The NEO blockchain was not designed to have implicit transaction outputs for global assets (such as NEO), because it would bring a number of problems and risk to the SPV protocol. After consulting with the NEO core dev team, the next steps for them are: NEO will provide a trigger mechanism, so that future smart contracts can refuse a transaction upon receiving a global asset transfer at a certain condition. This way, there is no need for refund, because the asset would not be accepted in the first place.
For Red Pulse our next steps are to focus on refunds. I understand the sensitivity regarding having your NEO tied up, so I’m prioritizing the refunds above all else, and personally working around the clock to process them. I aim to have these completed within a week.
Thank you everyone for your understanding, and I apologize for any misunderstanding and inconvenience caused.
Best regards, Jonathan Ha Founder & CEO, Red Pulse