SHALARIBA (OP)
Jr. Member
Offline
Activity: 101
Merit: 1
|
|
April 28, 2018, 08:35:11 PM Last edit: May 14, 2018, 01:03:27 PM by SHALARIBA |
|
Ребята салют! Мы успешно завершили PRE-SALE собрав 12,5 ETH и готовы к ICO! Старт ICO прописан на 30.04.18 продлится 1 месяц до 30.05.18 ( будет проходить в два этапа ) Step 1. 30.04.18 - 15.05.18 ( 1 ETH = 90 909 HOMA ) Step 2. 15.05.18 - 30.05.18 ( 1 ETH = 66 667 HOMA ) CRYPTOHOMA - проект который объединит все сервисы полезные крипто-сообществу в мессенджере Telegram. 1. Бот по обмену криптовалют 2. Бот (магазин) с оплатой криптовалютами 3. Школа трейдинга для новичков 4. Разработка проектов на заказ 5. Добавление новостных изданий (каналы / чаты) и другие... Так же держатели монеты HOMA будут получать девиденды от всех совершенных операций пользователей в сервисе! pragma solidity ^0.4.13;
contract Ownable { address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; }
/** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; }
/** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; }
}
library SafeMath {
/** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; }
/** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; }
/** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; }
/** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); }
contract BasicToken is ERC20Basic { using SafeMath for uint256;
mapping(address => uint256) balances;
uint256 totalSupply_;
/** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; }
/** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; }
/** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; }
}
contract BurnableToken is BasicToken {
event Burn(address indexed burner, uint256 value);
/** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { require(_value <= balances[msg.sender]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure
address burner = msg.sender; balances[burner] = balances[burner].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(burner, _value); emit Transfer(burner, address(0), _value); } }
contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); }
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; }
/** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; }
/** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; }
/** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; }
/** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; }
}
contract MintableToken is StandardToken, Ownable { event Mint(address indexed to, uint256 amount); event MintFinished();
bool public mintingFinished = false;
modifier canMint() { require(!mintingFinished); _; }
/** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); emit Mint(_to, _amount); emit Transfer(address(0), _to, _amount); return true; }
/** * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ function finishMinting() onlyOwner canMint public returns (bool) { mintingFinished = true; emit MintFinished(); return true; } }
contract CryptohomaToken is StandardToken, MintableToken, BurnableToken { string public name = "CryptohomaToken"; string public symbol = "HOMA"; uint public decimals = 18;
using SafeMath for uint256;
// Amount of wei raised uint256 public weiRaised;
uint start = 1525132801;
uint period = 31;
uint256 public totalSupply = 50000000 * 1 ether;
uint256 public totalMinted;
uint256 public presale_tokens = 1562500 * 1 ether; uint public bounty_percent = 5; uint public airdrop_percent = 2; uint public organizers_percent = 15;
address public multisig = 0xcBF6E568F588Fc198312F9587e660CbdF64DB262; address public presale = 0x42d8388E55A527Fa84f29A4D8768B923Dd8628E3; address public bounty = 0x27986d9CB66Dc4b60911D1E10f2DB6Ca3459A075; address public airdrop = 0xE0D7bd9a4ce64049A187b0097f86F6ae49bD19b5; address public organizer1 = 0x4FE7F4AA0d221827112090Ad7B90c7D8B9c08cc5; address public organizer2 = 0x6A7fd6308791B198739679F571bD981F7aA3a239; address public organizer3 = 0xCb04445D08830db4BFEB8F94fb71422C2FBAB17F; address public organizer4 = 0x4A44960b49816b8cB77de28FCB512AD903d62FEb; address public organizer5 = 0xEB27178C637336c3A6243aA312C3f197B54155f1; address public organizer6 = 0x84ae1B4E8c008dCbEfF91A923EA216a5fA718e25; address public organizer7 = 0x6de044c56D91b880C73C8e667C37A2B2A977FC3a; address public organizer8 = 0x5b3a08DaAcC4167e9432dCF56D3fcd147006192c;
uint256 public rate = 0.000011 * 1 ether; uint256 public rate2 = 0.000015 * 1 ether;
function CryptohomaToken() public {
totalMinted = totalMinted.add(presale_tokens); super.mint(presale, presale_tokens);
uint256 tokens = totalSupply.mul(bounty_percent).div(100); totalMinted = totalMinted.add(tokens); super.mint(bounty, tokens);
tokens = totalSupply.mul(airdrop_percent).div(100); totalMinted = totalMinted.add(tokens); super.mint(airdrop, tokens);
tokens = totalSupply.mul(organizers_percent).div(100); totalMinted = totalMinted.add(tokens); tokens = tokens.div(8); super.mint(organizer1, tokens); super.mint(organizer2, tokens); super.mint(organizer3, tokens); super.mint(organizer4, tokens); super.mint(organizer5, tokens); super.mint(organizer6, tokens); super.mint(organizer7, tokens); super.mint(organizer8, tokens);
}
/** * Event for token purchase logging * @param purchaser who paid for the tokens * @param beneficiary who got the tokens * @param value weis paid for purchase * @param amount amount of tokens purchased */ event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);
/** * @dev fallback function ***DO NOT OVERRIDE*** */ function () external payable { buyTokens(msg.sender); }
/** * @dev low level token purchase ***DO NOT OVERRIDE*** * @param _beneficiary Address performing the token purchase */ function buyTokens(address _beneficiary) public payable {
uint256 weiAmount = msg.value; _preValidatePurchase(_beneficiary, weiAmount);
// calculate token amount to be created uint256 tokens = _getTokenAmount(weiAmount);
// update state weiRaised = weiRaised.add(weiAmount);
_processPurchase(_beneficiary, tokens); emit TokenPurchase(msg.sender, _beneficiary, weiAmount, tokens);
_forwardFunds(); }
/** * @dev Override to extend the way in which ether is converted to tokens. * @param _weiAmount Value in wei to be converted into tokens * @return Number of tokens that can be purchased with the specified _weiAmount */ function _getTokenAmount(uint256 _weiAmount) internal view returns (uint256) { return _weiAmount / rate * 1 ether; }
/** * @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. Use super to concatenate validations. ***ПЕРЕОПРЕДЕЛЕНО*** * @param _beneficiary Address performing the token purchase * @param _weiAmount Value in wei involved in the purchase */ function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal { require(_beneficiary != address(0)); require(_weiAmount != 0);
require(now > start && now < start + period * 1 days);
if (now > start.add(15 * 1 days)) { rate = rate2; }
uint256 tokens = _getTokenAmount(_weiAmount); totalMinted = totalMinted.add(tokens);
require(totalSupply >= totalMinted);
}
/** * @dev Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends its tokens. * @param _beneficiary Address performing the token purchase * @param _tokenAmount Number of tokens to be emitted */ function _deliverTokens(address _beneficiary, uint256 _tokenAmount) internal { super.transfer(_beneficiary, _tokenAmount); }
/** * @dev Executed when a purchase has been validated and is ready to be executed. Not necessarily emits/sends tokens. * @param _beneficiary Address receiving the tokens * @param _tokenAmount Number of tokens to be purchased */ function _processPurchase(address _beneficiary, uint256 _tokenAmount) internal { _deliverTokens(_beneficiary, _tokenAmount); }
/** * @dev Determines how ETH is stored/forwarded on purchases. */ function _forwardFunds() internal { multisig.transfer(msg.value); }
} Current exchanges
Спасибо за внимание, ждём ваши отзывы и предложения!
|
|
|
|
cryptonuim6
Jr. Member
Offline
Activity: 266
Merit: 2
|
|
April 28, 2018, 09:40:30 PM |
|
Интересный проект, в телеграме, да еще и с девидендами) буду за вами наблюдать.
|
|
|
|
SHALARIBA (OP)
Jr. Member
Offline
Activity: 101
Merit: 1
|
|
April 29, 2018, 08:17:38 AM |
|
Интересный проект, в телеграме, да еще и с девидендами) буду за вами наблюдать.
Привет, спасибо за поддержку!
|
|
|
|
Tearz
Sr. Member
Offline
Activity: 627
Merit: 250
The Pope Of Dope
|
|
April 29, 2018, 09:30:47 AM |
|
Telegram в России блокируют, а они на его базе приложения делают для пользователей россии молодцы!
|
|
|
|
foppertc
Member
Offline
Activity: 266
Merit: 10
|
|
April 29, 2018, 09:50:31 AM |
|
Проект довольно интересный и идея новая, но я не совсем могу понять, как всё это будет работать?
|
|
|
|
SHALARIBA (OP)
Jr. Member
Offline
Activity: 101
Merit: 1
|
|
April 29, 2018, 09:56:35 AM |
|
Проект довольно интересный и идея новая, но я не совсем могу понять, как всё это будет работать?
Интеграция программных обеспечений через API
|
|
|
|
Tearz
Sr. Member
Offline
Activity: 627
Merit: 250
The Pope Of Dope
|
|
April 29, 2018, 10:21:42 AM |
|
Когда планируете листинг на биржи и на какие ?
|
|
|
|
MelnikBitok
Member
Offline
Activity: 252
Merit: 10
|
|
April 29, 2018, 10:26:24 AM |
|
Когда планируете листинг на биржи и на какие ?
Обычно листинг на биржи происходит уже после завершения всех раундов продаж(ОСИ), список бирж с которыми ведутся переговоры есть на сайте проекта - это Cryptopia, CoinExchange и наша любимая YoBit
|
|
|
|
BatistaCru
Jr. Member
Offline
Activity: 210
Merit: 1
|
|
April 29, 2018, 11:02:56 AM |
|
Когда планируете листинг на биржи и на какие ?
Обычно листинг на биржи происходит уже после завершения всех раундов продаж(ОСИ), список бирж с которыми ведутся переговоры есть на сайте проекта - это Cryptopia, CoinExchange и наша любимая YoBit Мммм... довольно неплохой список бирж, для совсем молодого проекта. Я так предполагаю, что у CRYPTOHOMA есть серьезные партнёры или покровители?
|
|
|
|
cryptoroland
|
|
April 29, 2018, 11:21:53 AM |
|
Telegram в России блокируют, а они на его базе приложения делают для пользователей россии молодцы! Кишка тонка у единороссов заблокировать Телеграм, их интеллектуальный уровень - это пилить бюджет и сажать за репосты. С Телеграмом они ожидаемо сели в лужу, и теперь весь вопрос для них, как правильно преподнести народу свое полное поражение. Но это уже забота Киселя объяснять)))
|
|
|
|
DjonMnemonik
Jr. Member
Offline
Activity: 182
Merit: 2
|
|
April 29, 2018, 11:45:01 AM |
|
Telegram в России блокируют, а они на его базе приложения делают для пользователей россии молодцы! Кишка тонка у единороссов заблокировать Телеграм, их интеллектуальный уровень - это пилить бюджет и сажать за репосты. С Телеграмом они ожидаемо сели в лужу, и теперь весь вопрос для них, как правильно преподнести народу свое полное поражение. Но это уже забота Киселя объяснять))) Я думаю, что администрация проекта CRYPTOHOMA не дураки, не просто так решили работать с телеграммом, о какой блокировки идёт речь вообще? Те кто хочет пользоваться телегой тот и будет, ведь даже при самых страшных раскладах, всегда можно обойти блокировку, ведь существует уйма способов это сделать.
|
|
|
|
Biglion
Newbie
Offline
Activity: 182
Merit: 0
|
|
April 29, 2018, 12:02:31 PM |
|
Зачем и для чего это все вы затеяли. Если у Телеграм будет свой проект на блокчейне и свои токены с колоссальным функционалом. Не вижу смысла инвестирования. Или это типа: кто не смог залезть в TON - добро пожаловать к вам?))) В любом случае все, что ассоциируется с Телеграм, это проекты от Дурова и иже с ним. Хотите аккуратно пол лямчика собрать и на острова?))) Ну, такое... Хотя на пресейле вы собрали 12,5 эфира) шансы есть)
|
|
|
|
cryptonuim6
Jr. Member
Offline
Activity: 266
Merit: 2
|
|
April 29, 2018, 12:07:37 PM |
|
На протяжении 2 дней изучал проект и решил инвестировать в него,небольшую сумму, но всё же. Мне понравилась дорожная карта проекта, всё по делу, ничего лишнего. Жаль, что не успел присоединится к пред-продажам, но всё равно, в первом туре ИСО скидка тоже хорошая.
|
|
|
|
Perfect Day
Newbie
Offline
Activity: 98
Merit: 0
|
|
April 29, 2018, 12:21:26 PM |
|
Не понимаю, в чём тут выгода для инвестора? с 1 мая начнётся первый тур ИСО и стоимость токенов будет по 0.00001100 ETH, а какова будет примерная стоимость токена после выхода на криптовалютные биржи?
|
|
|
|
Tearz
Sr. Member
Offline
Activity: 627
Merit: 250
The Pope Of Dope
|
|
April 29, 2018, 12:33:54 PM |
|
Зачем и для чего это все вы затеяли. Если у Телеграм будет свой проект на блокчейне и свои токены с колоссальным функционалом. Не вижу смысла инвестирования. Или это типа: кто не смог залезть в TON - добро пожаловать к вам?))) В любом случае все, что ассоциируется с Телеграм, это проекты от Дурова и иже с ним. Хотите аккуратно пол лямчика собрать и на острова?))) Ну, такое... Хотя на пресейле вы собрали 12,5 эфира) шансы есть)
О TON толком еще ничего не известно, официальной информации нет, что это за проект и какие функции будет выполнять!
|
|
|
|
Kapa6ac7
Member
Offline
Activity: 352
Merit: 12
|
|
April 29, 2018, 01:24:03 PM |
|
Telegram в России блокируют, а они на его базе приложения делают для пользователей россии молодцы! Кишка тонка у единороссов заблокировать Телеграм, их интеллектуальный уровень - это пилить бюджет и сажать за репосты. С Телеграмом они ожидаемо сели в лужу, и теперь весь вопрос для них, как правильно преподнести народу свое полное поражение. Но это уже забота Киселя объяснять))) Я думаю, что администрация проекта CRYPTOHOMA не дураки, не просто так решили работать с телеграммом, о какой блокировки идёт речь вообще? Те кто хочет пользоваться телегой тот и будет, ведь даже при самых страшных раскладах, всегда можно обойти блокировку, ведь существует уйма способов это сделать. Я блокировку вообще не заметил, как работал тереграмм так и работает без всяких проксей. А по статистики, после всей этой шумихи с блокировкой, популярность его выросла в полтора раза.
|
|
|
|
SHALARIBA (OP)
Jr. Member
Offline
Activity: 101
Merit: 1
|
|
April 29, 2018, 01:28:00 PM |
|
Telegram в России блокируют, а они на его базе приложения делают для пользователей россии молодцы! Кишка тонка у единороссов заблокировать Телеграм, их интеллектуальный уровень - это пилить бюджет и сажать за репосты. С Телеграмом они ожидаемо сели в лужу, и теперь весь вопрос для них, как правильно преподнести народу свое полное поражение. Но это уже забота Киселя объяснять))) Я думаю, что администрация проекта CRYPTOHOMA не дураки, не просто так решили работать с телеграммом, о какой блокировки идёт речь вообще? Те кто хочет пользоваться телегой тот и будет, ведь даже при самых страшных раскладах, всегда можно обойти блокировку, ведь существует уйма способов это сделать. Я блокировку вообще не заметил, как работал тереграмм так и работает без всяких проксей. А по статистики, после всей этой шумихи с блокировкой, популярность его выросла в полтора раза. Да так и есть, нам блокировка еще на руку сыграла
|
|
|
|
darktt
Member
Offline
Activity: 269
Merit: 11
|
|
April 29, 2018, 04:36:35 PM |
|
А мне идея нравится и аккаунт на YOBIT есть поучаствую в ICO на пол тефтельки) Что ж вы раньше ICO не запустили когда кефир по 350$ был!
|
|
|
|
CTO@MyBitMine
|
|
April 30, 2018, 11:50:38 AM |
|
Сейчас всё больше и больше людей переходят в мессенджеры, глядишь что-то толковое и получится! Токены на баунти еще остались могу дать рекламу проекту.
|
|
|
|
gabriella
Member
Offline
Activity: 336
Merit: 10
|
|
April 30, 2018, 11:58:13 AM |
|
Telegram в России блокируют, а они на его базе приложения делают для пользователей россии молодцы! Так успешно блокируют, что он до сих пор работает, зато пострадали все вокруг) Не заблокируют, не переживайте.
|
|
|
|
|