Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
korzunav
6 лет назад

Новые операции в Ditch

Ico.jpg

Привет Голосяне!

Обьемное обновление библиотек Ditch и Cryptography.ECDSA наконец готово к употреблению!

GitHub:

https://github.com/Chainers/Ditch/releases/tag/3.1.3
https://github.com/Chainers/Cryptography.ECDSA

Что нового:

  • Генератор ключей (пары публичный/приватный ключ в соответствии с конвенцией)
  • AccountCreateOperation (операция создания нового аккаунта)
  • AccountUpdateOperation (операция обновления аккаунта)
  • WithdrawVestingOperation (операция уменьшения силы голоса)
  • TransferToVestingOperation (операция для увеличения силы голоса)
  • TransferOperation ((операция отправка голосов/GBG)
  • WitnessUpdateOperation (операция обновления витнеса)

Установка пакетов с Nuget

PM> Install-Package Ditch.Steem -Version 3.1.3

PM> Install-Package Ditch.Golos -Version 3.1.3

Как использовать

Пример генерации ключей

AccountCreateOperation

        var name = "userlogin";

        var op = new AccountCreateOperation
        {
            Fee = new Asset(3000, 3, "GBG"),
            Creator = User.Login,
            NewAccountName = User.Login,
            JsonMetadata = "",
        };

        var privateKey = Secp256K1Manager.GenerateRandomKey();
        var privateWif = "P" + Base58.EncodePrivateWif(privateKey);

        var subWif = Base58.GetSubWif(name, privateWif, "owner");
        var pk = Base58.DecodePrivateWif(subWif);
        var subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);
        op.Owner.KeyAuths.Add(new KeyValuePair<PublicKeyType, ushort>(new PublicKeyType(subPublicKey), 1));

        subWif = Base58.GetSubWif(name, privateWif, "active");
        pk = Base58.DecodePrivateWif(subWif);
        subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);
        op.Active.KeyAuths.Add(new KeyValuePair<PublicKeyType, ushort>(new PublicKeyType(subPublicKey), 1));

        subWif = Base58.GetSubWif(name, privateWif, "posting");
        pk = Base58.DecodePrivateWif(subWif);
        subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);
        op.Posting.KeyAuths.Add(new KeyValuePair<PublicKeyType, ushort>(new PublicKeyType(subPublicKey), 1));

        subWif = Base58.GetSubWif(name, privateWif, "memo");
        pk = Base58.DecodePrivateWif(subWif);
        subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);
        op.MemoKey = new PublicKeyType(subPublicKey);

        var response = Api.BroadcastOperationsUser.ActiveKeysCancellationToken.None, op);

AccountUpdateOperation

        var resp = Api.LookupAccountNames(new[] { User.Login }, CancellationToken.None);
        var acc = resp.Result[0];

        var op = new AccountUpdateOperation(User.Login, acc.MemoKey, "новые данные");
        var response = Api.BroadcastOperations(User.ActiveKeys, CancellationToken.None, op);

WithdrawVestingOperation

        var op = new WithdrawVestingOperation(User.Login, new Asset("0.001 GESTS"));
        var response = Api.BroadcastOperations(User.ActiveKeys, CancellationToken.None, op);

WitnessUpdateOperation

        var op = new WitnessUpdateOperation(User.Login, "url на пост делегата", new PublicKeyType("GLS1111111111111111111111111111111114T1Anm"), new ChainProperties(1000, new Asset("1.000 GOLOS"), 131072), new Asset("0.000 GOLOS"));
        var response = Api.BroadcastOperations(User.ActiveKeys, CancellationToken.None, op);

TransferToVestingOperation

        var op = new TransferToVestingOperation(User.Login, User.Login, new Asset("0.001 GOLOS"));
        var response = Api.BroadcastOperations(User.ActiveKeys, CancellationToken.None, op);

TransferOperation

        var op = new TransferOperation(User.Login, User.Login, new Asset("0.001 GBG"), "тут можно добавить текст");
        var response = Api.BroadcastOperations(User.ActiveKeys, CancellationToken.None, op);

Всем Блокчейн! :)

0
2.902 GOLOS
На Golos с April 2017
Комментарии (1)
Сортировать по:
Сначала старые