Author

Topic: ETH токены (Read 1572 times)

full member
Activity: 139
Merit: 100
September 10, 2017, 05:56:14 AM
#20
owner-ов может быть несколько:

modifier onlyOwner() {
      if (msg.sender != owner1 && msg.sender != owner2) {
        throw;
      }
      _;
    }
   
    // constructor
    function Token (address _owner1, address _owner2)
    {
        owner1 = _owner1;
        owner2 = _owner2;
    }
full member
Activity: 313
Merit: 103
September 10, 2017, 03:55:03 AM
#19
contract Owned {
    address public     owner;                                                   // администратор
    function Owned() {                                                          // конструктор
        owner = msg.sender;
    }
    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
    function transferOwnership(address newOwner) onlyOwner {
        owner = newOwner;
    }
}
contract Token is Owned{                                                     

}

простой контракт для получения адреса владельца токена (владелец же будет заливать его в сеть, => msg.sender будет адресом владельца.) transferOwnership позволяет сменить владельца, но сделать это может только текущий владелец. Далее наследуем этот класс в классе токена и пользуемся модификатором onlyOwner для тех функций, которые будут разрешены только для администрации. Это запретит к ним доступ остальных.
full member
Activity: 256
Merit: 102
September 09, 2017, 05:20:36 PM
#18
да owner - это конкретный адрес. При создании контракта выставляется на владельца. Есть функция transferOwnership
full member
Activity: 139
Merit: 100
September 09, 2017, 04:57:32 PM
#17
А можно ли, чтобы токен эмитировался бесконечно при выполнении определённых условий?
Допустим, на контракт кинули 1ETH - он выпустил и кинул отправителю  1 токен, кинули 100eth - контракт создал ещё 100 токенов и выслал, и так бессрочно..
можно. только думаю биржа не захочет размещать такой токен у себя

Adshares с бесконечной эмиссией.
full member
Activity: 256
Merit: 102
September 09, 2017, 04:35:03 PM
#16
нормальная биржа вроде того же битрекса, полоникса.

ferumflex,  подскажите, как можно реализовать "права администратора" в смарт контракте?
Вот он запущен, висит себе пассивно, ждёт команд. Кто-то кинул в него эфиром, приказал сработать, контракт сделал.
А что если этот контракт должен для кого-то определённого делать больше, чем для всех?
Например, есть такой токен в единичном экземпляре, и владелец этого токена имеет эксклюзивные права на некоторые команды.,

Наследовать свой контракт от этого например.
https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/ownership/Ownable.sol
Потом можно выставлять модификатор к функции onlyOwner и только владелец контракта сможет вызвать эту функцию
full member
Activity: 256
Merit: 102
September 09, 2017, 03:43:30 PM
#15
А можно ли, чтобы токен эмитировался бесконечно при выполнении определённых условий?
Допустим, на контракт кинули 1ETH - он выпустил и кинул отправителю  1 токен, кинули 100eth - контракт создал ещё 100 токенов и выслал, и так бессрочно..
можно. только думаю биржа не захочет размещать такой токен у себя
full member
Activity: 139
Merit: 100
August 24, 2017, 10:39:16 PM
#14
mapping(address => uint) balances;

Эта строчка делает из простого контракта денежный контракт. Таблица балансов - это сущность денег, она существует во всех денежных системах - в вещных, наличных, кредитных, электронных и т.д.
full member
Activity: 313
Merit: 103
August 24, 2017, 10:31:40 AM
#13
Обычно идут токены с фиксированной комиссией или выпуском на этапе ico(после ico кол-во фиксируется и нельзя его уже изменить никак). Общий баланс я бы сделал с помощью мультисиг кошелька. Покупка за эфир - просто нужно реализовать отдельный контракт.


Самый простой (как по мне): с фиксированной комиссией и с возможностью покупать через эфир (второй контракт).

Не понял про фиксированную комиссию. Может имелось ввиду с фиксированной эмиссией?
А для чего второй контракт для покупки токена за эфир. Вроде как видел примеры, как в контракте токена делают отдельные методы для установки/чтения курса, и ещё пару для покупики/продажи токена за эфир. В чём целесообразность выносить в отдельный контракт?
full member
Activity: 256
Merit: 102
August 24, 2017, 09:45:17 AM
#12
Обычно идут токены с фиксированной комиссией или выпуском на этапе ico(после ico кол-во фиксируется и нельзя его уже изменить никак). Общий баланс я бы сделал с помощью мультисиг кошелька. Покупка за эфир - просто нужно реализовать отдельный контракт.


Самый простой (как по мне): с фиксированной комиссией и с возможностью покупать через эфир (второй контракт).
full member
Activity: 313
Merit: 103
August 24, 2017, 06:10:26 AM
#11
а ещё такой вопрос. токены есть смысл делать с возможностью увеличения / уменьшения общей эмиссии:

  • фиксированные (без такой возможности)
  • майнингом (по разным правилам)
  • с пополнением  и/или снятием с общего баланса через функции для владельца
  • с пополнением через покупку за эфир

от чего отталкиваться делая выбор в сторону того или иного подхода?
full member
Activity: 256
Merit: 102
August 23, 2017, 02:56:03 AM
#10
т.е. даже если токен не полностью erc20, он тоже должен иметь массив, событие и функцию под указанными именами, что бы быть распознаным.
Я думаю да. А зачем Вам не полностью erc20, вы можете взять стандартный токен и добавить в него свой функционал. Также стандарты не стоят на месте появляются новые например https://github.com/ethereum/EIPs/issues/223
full member
Activity: 313
Merit: 103
August 22, 2017, 03:19:01 PM
#9
т.е. даже если токен не полностью erc20, он тоже должен иметь массив, событие и функцию под указанными именами, что бы быть распознаным.
full member
Activity: 256
Merit: 102
August 22, 2017, 02:47:39 PM
#8
ERC20 это стандарт токенов. По этому стандарту контракт должен реализовать определенные функции(это называется реализовывает интерфейс). И да если переименовать transfer в transfer1, то уже не поймут что это токен. посмотрите здесь как реализованы токены
https://github.com/OpenZeppelin/zeppelin-solidity/tree/master/contracts/token
full member
Activity: 313
Merit: 103
August 22, 2017, 11:53:10 AM
#7
наверное сам нашёл.

ERC: 20
Title: Token standard
Status: Draft
Type: Informational
Created: 19-11.2015
Resolution: https://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs
Abstract
The following describes standard functions a token contract can implement.
Motivation
Those will allow dapps and wallets to handle tokens across multiple interfaces/dapps.
The most important here are, transfer, balanceOf and the Transfer event.
full member
Activity: 313
Merit: 103
August 22, 2017, 11:11:08 AM
#6
Пытаюсь понять, почему при установке контрактов mist некоторые из них сам определяет как контракты валюты и помещает внизу основного аккаунта. В клиентах эфира есть функционал, который работает только с контрактами-токенами (кошелёк с возможностью хранить и пересылать). Интересно, как он определяет что перед ним такой контракт перед тем как его туда поместить.
member
Activity: 73
Merit: 10
Creating Smart Contracts !!!
August 22, 2017, 10:56:06 AM
#5
если скажете зачем это может быть более конструктивный ответ.
jr. member
Activity: 98
Merit: 3
August 22, 2017, 10:21:14 AM
#4
Да это деление на токены и не токены - условное. Просто есть смарт-контракты, некоторые из которых могут выполнять функцию платежного средства, хранить балансы и реализовывать некоторый стандартный набор функций, присущий токенам. Эфиримной виртуальной машине глубоко безразлично, что перед ней - токен, или любой другой контракт. Она их никак не различает)
full member
Activity: 313
Merit: 103
August 22, 2017, 10:07:41 AM
#3
ссылкой не поделитесь? (мне не лень искать, просто не получилось).
т.е. есть зарезервированные имена функций и переменных, по которым токены выделяются из всех остальных контрактов? т.е. если я переименую функцию transfer в transfer1 то evm не поймёт что перед ней контракт валюты?
full member
Activity: 256
Merit: 102
August 22, 2017, 07:10:57 AM
#2
У контракт есть определенный интерфейс(читай функции которые можно вызвать, с определенными названиями). Контракты могут вызывать другие контракты
full member
Activity: 313
Merit: 103
August 21, 2017, 06:11:22 AM
#1
Поясните кто знает, пожалуйста, по каким критериям эфириум клиенты распознают среди всех контрактов те, которые являются токенами. Т.е. есть какой-то контракт с прикладной логикой и есть контракт в котором могут храниться и пересылаться балансы. Почему контракт второго типа можно "использовать рядом" с основным кошельком?
Jump to: