Описанная в заявке задача на создание собственных токенов (UIA) воркером во многом уже выполнена, присоединяйтесь к тестированию.
Нода для лайвтестов wss://livetest.golos.today/ws
(https://livetest.golos.today
)
Через cli-wallet
sudo docker exec -it golos-default cli_wallet -s wss://livetest.golos.today/ws
set_password 12345
unlock 12345
import_key 5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw
В лайвтесте вышеупомянутый ключ у всех аккаунтов.
Так как за создание ассета/токена установлена плата, которая уходит в фонд воркеров, в командах используется аккаунт bittrex, где гбг хватит всем :)
По умолчанию делегатский параметр asset_creation_fee
комиссии за создание ассета: тикер 5 символов и больше 2000 GBG (~60$), 4 символа x10 от параметра (~600$), 3 символа x50 от параметра (~3000$).
create_asset bittrex "1000000.000 TOKEN" true false "{\"image_url\":\"https://market.rudex.org/asset-symbols/rudex.golos.png\",\"description\":\"https://golos.id/\"}" true
// creator, max_supply, allow_fee, allow_override_transfer, json_metadata, reallyBroadcast
- bittrex - аккаунт эмитента
- 100000.000 TOKEN - максимальное кол-во токенов, что в дробной части, имя ассета (до 14 символов)
- true/false параметр вкл/выкл рыночной комиссии при торгах с токеном
- true/false параметр вкл/выкл возможности возврата актива эмитентом
- json_metadata поля для картинки тикера и описания/ссылки на пост напр.
Если параметры возм. рыночной комиссии или возврата актива эмитентом были выкл. при создании ассета, после их не вкл.
ассет вида PARENT.child, может быть создан только эмитентом PARENT, напр.
create_asset bittrex "100.00000000 TOKEN.CENT" true true "{}" true
создать сможет только bittrex, эмитент TOKEN
Выпуск/довыпуск токенов эмитентом в рамках max_supply который был задан при создании ассета:
issue_asset bittrex "10000.000 TOKEN" "" true
Командой обновления ассета возможно установить "белый список" ассетов к которым открыты торги (в данном случае TOKEN будет можно торговать только к GOLOS) и % торговой комиссии (который будет поступать на баланс эмитента со сделок, в примере 1%). Указав [] открыта торговля к любому токену, как и 0 комиссии - её откл.
update_asset bittrex "TOKEN" ["GOLOS"] 100 "{}" true
Передача прав на ассет от эмитента bittrex пользователю lex (комиссии, дальнейшие операции с ассетом будут доступны только lex)
transfer_asset bittrex "TOKEN" lex true
Пример операции возврата своего актива эмитентом, если при создании ассета был включен параметр allow_override_transfer (отозвать 10.000 TOKEN у lex в адрес test решением эмитента bittrex).
override_transfer bittrex lex test "10.000 TOKEN" "" true
Перевод токенов
transfer bittrex lex "10.005 TOKEN" "" true
Пример ордеров на продажу/покупку
create_order bittrex 1270001 "10.000 GOLOS" "10.000 TOKEN" false 3600 true
create_order lex 1270002 "10.000 TOKEN" "10.000 GOLOS" true 3600 true
Перевод на TIP-баланс (работает если ассет без возможности возврата активов, т.е. при создании было выбрано false в параметре allow_override_transfer):
transfer_to_tip lex "" "1.000 TOKEN" "" true
Операция доната
donate lex bittrex "1.000 TOKEN" {"app":"test-uia","version":1} true
Перевод с TIP-баланса обратно на обычный баланс UIA
transfer_from_tip lex "" "1.000 TOKEN" "" true
Передача UIA токенов с помощью чеков
invite bittrex "1000.000 TOKEN" "GLS7Pbawjjr71ybgT6L2yni3B3LXYiJqEGnuFSq1MV9cjnV24dMG3" true
claim_invite bittrex lex "5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw" true
API-запросы
Какие есть UIA ассеты
curl --data '{"jsonrpc":"2.0","id":1,"method":"call","params":["database_api","get_assets",[]]}' https://livetest.golos.today
Запрос баланса UIA пользователей
curl --data '{"jsonrpc":"2.0","id":1,"method":"call","params":["database_api","get_accounts_balances",[["bittrex"]]]}' https://livetest.golos.today
curl --data '{"jsonrpc":"2.0","id":1,"method":"call","params":["database_api","get_accounts_balances",[["lex"]]]}' https://livetest.golos.today
Через JS
В JS-библиотеку были добавлены новые операции - https://github.com/golos-blockchain/golos-js/commits/0.7.56 (прямая ссылка на версию для тестов - https://unpkg.com/[email protected]/dist/golos.min.js)
Команды:
function example_create() {
golos.broadcast.assetCreate(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', '1000000.000 SUPER', true, true, "{\"image_url\":\"https://market.rudex.org/asset-symbols/rudex.golos.png\",\"description\":\"https://golos.id/\"}",
[], function(err, res) {
console.log(err);
console.log(res);
});
}
function example_update() {
golos.broadcast.assetUpdate(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', 'SUPER', ['GOLOS'], 1000, "{\"image_url\":\"https://market.rudex.org/asset-symbols/rudex.golos.png\",\"description\":\"https://golos.id/\"}",
[], function(err, res) {
console.log(err);
console.log(res);
})
}
function example_issue() {
golos.broadcast.assetIssue(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', '100000.000 SUPER', '',
[], function(err, res) {
console.log(err);
console.log(res);
})
}
function example_transfer() {
golos.broadcast.transfer(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', 'test', '1000.000 SUPER', 'Hello world!',
function(err, res) {
console.log(err);
console.log(res);
})
}
function example_override_transfer() {
golos.broadcast.overrideTransfer(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', 'test', 'test2', '1.000 SUPER', 'Hello world!',
[], function(err, res) {
console.log(err);
console.log(res);
})
}
function example_asset_transfer() {
golos.broadcast.assetTransfer(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', 'SUPER', 'test',
[], function(err, res) {
console.log(err);
console.log(res);
})
}
function example_transfer_to_tip() {
golos.broadcast.transferToTip(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', '', '1.000 SUPER', 'Hello world!',
[], function(err, res) {
console.log(err);
console.log(res);
})
}
function example_donate() {
golos.broadcast.donate(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', 'test', '1.000 SUPER', {app:'uia-test-js',version:1,target:{'author':'test'}},
[], function(err, res) {
console.log(err);
console.log(res);
})
}
function example_invite() {
golos.broadcast.invite(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', '100.000 SUPER', 'GLS7Pbawjjr71ybgT6L2yni3B3LXYiJqEGnuFSq1MV9cjnV24dMG3',
[], function(err, res) {
console.log(err);
console.log(res);
})
}
function example_invite_claim() {
golos.broadcast.inviteClaim(
'5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
'bittrex', 'test', '5JFZC7AtEe1wF2ce6vPAUxDeevzYkPgmtR14z9ZVgvCCtrFAaLw',
[], function(err, res) {
console.log(err);
console.log(res);
})
}
До конца месяца ожидается для тестирования и веб-интерфейс (создания токенов, возм. торговли ими на внутренней бирже).
@lex Круто! Как понимаю, TIP-баланс будет поддерживать и другие токены. Неожиданно, но радостно. Только как будет отображаться всё это.
Есть несколько вопросов:
Благодарю. Отличное событие.
@denis-skripnik
Дополнил в посте команду для cli-wallet, она тебе уже известна, там только тикер токена поменять, напр.
transfer_from_tip lex "" "1.000 TOKEN" "" true
Перевод с TIP-баланса на обычный баланс UIA (но есть исключение, если при создании ассета была включена опция возврата токенов эмитентом - тип-баланс по такому ассету заблок).
Ясно.
@denis-skripnik
Понял верно, эта опция скорее для шлюзов, когда есть необходимость возврата ошибочно отправленных токенов (напр. при мошенничестве), всё на доверии к шлюзу. И полагаю с заметной отметкой в веб-интерфейсе маркета что токен "возвратный, может быть отозван эмитентом".
Да, комиссия эмитенту только при сделках маркета (если у ассета была включена опция торговых комиссий).
TIP-баланс в UIA сейчас скорее в форме "скрестили ежа и ужа", поэтому этот момент пока в процессе, детали могут измениться (но возможность донатов UIA будет, так как пригодится для иных веб-клиентов, сервисов).
Ясно. Благодарю.
@lex ...мне жаль, что идея stihi.io зависла не по их, фактически, вине...ведутся ли переговоры с Alexna на возвращение в наш блокчейн, тем более, что создание своих токенов очень неплохо вписывается в их концепцию..
@smotritelmayaka
с @alexna я не общался, @anela об изменениях в курсе, выбор за ними...
А так, да, и вознаграждения через донаты без огр. окна выплаты, и возможность создать UIA токен которым в альтернативных клиентах пользователи могут награждать за какую-либо активность (торгуя их в паре к GOLOS/GBG и другим).