Fomo3d 代码分析二 key价格部分

fomo 游戏的 key 价格计算关键代码解读( F3DKeysCalcLong.sol 中的 eth(uint256 keys)方法 )

return ((78125000).mul(_keys.sq()).add(((149999843750000).mul(_keys.mul(1000000000000000000))) / (2))) / ((1000000000000000000).sq());

上面最后 除以 的 1e18 ^ 2  就是 2个 18 位, 一个是 key 有18位小数, 一个是 eth 也是18位

然后2部分 加起来, 一部分是指数级增长, 一部分是等差的, 我认为后面的等差的是基础, 前面的是附加的, 当然这完全看谁比谁大

所以 这2个常量 78125000(控制附加部分增长速度, 指数级增长), 149999843750000(控制基础部分增长速度, 等比增长)

第一个常量越大, 增长速度越快, 第二个常量越大, key 的价格越高, 包括初始就很高, 然后

初始 key 价格为: 149999843750000/2/1e18 + 78125000/1e18 eth  = 0.000075 eth

最后, 如果想修改这2个数, 通过上面精简出来计算初始 key 的公式, 算出想要的初始值 及 增长速度, 当然还需要修改 keys(uint256 eth) 里面的实现, 下面是我总结的对应规律, 根据2个常量计算出 keys 公式中对应常量的值

// (from keys)

        // 156250000 = 78125000 * 2 ;

        // 312500000000000000000000000 = 78125000 * 4e18

        // 5624988281256103515625000000000000000000000000000000000000000000 = ((149999843750000/2)^2) * 1e36

        // 74999921875000000000000000000000 = 149999843750000/2 * 1e18

我也不知道这么长的数字如何计算, 只能建议尽量都是整数吧, 好几个计算器都不好使, 自己写 java 代码都靠不住

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容