Skip to content

Instantly share code, notes, and snippets.

@tntdev21
tntdev21 / keo.md
Last active January 20, 2018 09:20
Ý tưởng dự án KEO - cùng nhau ra khơi

Ý tưởng dự án KEO - cùng nhau ra khơi

1. Thực trạng

  • Anh em trade coin một phần lớn vẫn dựa vào phân tích, lời khuyên hoặc đi mua kèo của một số anh em có chuyên môn, có khả năng phân tích kỹ thuật, phân tích thị trường.
  • Hiện tại đang có nhiều kênh chia sẻ kèo, free có, thu phí có, trúng có, trật có.
  • Anh em share kèo không thống kê được tỉ lệ thành công của kèo đó là bao nhiêu (bao nhiêu người theo, bao nhiều người ăn, bao nhiêu người tạch…). Từ đó dẫn đến nhiều tình huống anh em gặp những thanh niên phá đám, thấy 1 kèo lâu đạt target là auto chửi…
  • Anh em theo kèo thì phân vân, không biết nên theo ai, theo bao nhiêu coin
  • Nhiều anh em bán kèo theo kiểu trọn gói 1 tháng, người mua gói, có người thì trade ít, có người nhiều. Người ra kèo dù phân tích nhiều, ít gì cũng chỉ nhận được số tiền cố định => không fair cho cả người ra kèo và người mua kèo.

2. Giải pháp

Đỉnh quế

Điểm dừng dọc đường

  • Đồi chè Đông Giang
  • Prao
  • Làng cổ Cơ tu (xã A Tiêng)

Đi đâu

import { User } from '../../models'
import { userLocale } from '../../locales'
import service from './service'
import responseBuilder from '../../utils/response-builder'
import errorUtil from '../../utils/error'
import to from '../../utils/to'
async function show(req, res) {
const [error, user] = await to(User.commonUserData(req.user))
if (error) {
import { User } from '../../models'
import tokenGenerator from '../../utils/token-generator'
import config from '../../configs'
async function signupUser(body) {
let user = await User.create(body)
const tokenData = user.genTokenData()
user = await User.commonUserData(user.toJSON())
user.token = tokenGenerator.generate(tokenData)
user.refreshToken = tokenGenerator.generate(tokenData, { expiresIn: config.refreshTokenLife })
import moment from 'moment'
import lodash from 'lodash'
import map from 'apr-map'
import timeFormater from 'moment-duration-format'
import asyncUtil from './util/async'
import util from './util/index'
import ncp from 'copy-paste'
require('colors')
@tntdev21
tntdev21 / ethereum-private-key-recoverer.js
Created May 22, 2019 14:03
The snip code to recover ethereum private key when we know the address and some-chars-missed-private-key
const util require('util')
const eUtil = require('ethereumjs-util')
function translate(str = '', list = []) {
for (const i of list) {
str = util.format(str, i)
}
return str
}
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/yyy.sock mode 660 level yyy
stats timeout 30s
user haproxy
group haproxy
daemon
maxconn 2048
@tntdev21
tntdev21 / MessageVerifier.sol
Last active April 22, 2022 06:49
Sign the eip-712 message using privateKey with nodejs
// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import "@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol";
contract MessageVerifier is EIP712 {
constructor(string memory _name, string memory _version) EIP712(_name, _version) {
import Web3 from 'web3'
import { whiteList } from './whiteList'
const web3Provider = new Web3.providers.HttpProvider('https://bsc-dataseed1.binance.org:443')
const web3 = new Web3(web3Provider)
const merkleTree = {
leaves: null,
root: null
}
@tntdev21
tntdev21 / TheAirdropDistributor.sol
Last active October 25, 2022 03:38
Airdrop contract distributor by merkle tree vs ECDSA signature
// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
import "@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/cryptography/draft-EIP712Upgradeable.sol";
import "../libs/fota/MerkelProof.sol";
contract TheAirdropDistributor is EIP712Upgradeable {