Example #1
0
        public async Task AccountCreateOperationTest()
        {
            var name = $"ditch-test-user-{DateTime.Now.Ticks}";

            WriteLine($"name: {name}");
            var key  = Secp256K1Manager.GenerateRandomKey();
            var pwif = "P" + Base58.EncodePrivateWif(key);

            WriteLine($"pwif: {pwif}");

            var user   = User;
            var userId = user.Account.Id;

            var op = new AccountCreateOperation
            {
                Fee = new Asset
                {
                    Amount  = 500000,
                    AssetId = new AssetIdType(1, 3, 0)
                },
                Registrar       = userId,
                Referrer        = userId,
                ReferrerPercent = 10000,
                Name            = name,
                Options         = new AccountOptions
                {
                    VotingAccount = new AccountIdType(1, 2, 5)
                }
            };

            var subWif = Base58.GetSubWif(name, pwif, "owner");

            WriteLine($"owner: {subWif}");
            var pk           = Base58.DecodePrivateWif(subWif);
            var subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);

            op.Owner = new Authority(new PublicKeyType(subPublicKey, SbdSymbol));

            subWif = Base58.GetSubWif(name, pwif, "active");
            WriteLine($"active: {subWif}");
            pk           = Base58.DecodePrivateWif(subWif);
            subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);
            op.Active    = new Authority(new PublicKeyType(subPublicKey, SbdSymbol));

            subWif = Base58.GetSubWif(name, pwif, "memo");
            WriteLine($"memo: {subWif}");
            pk                 = Base58.DecodePrivateWif(subWif);
            subPublicKey       = Secp256K1Manager.GetPublicKey(pk, true);
            op.Options.MemoKey = new PublicKeyType(subPublicKey, SbdSymbol);


            await Post(user.ActiveKeys, false, op).ConfigureAwait(false);
        }
Example #2
0
        public async Task AccountCreateTest()
        {
            const string 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 = "12345678"; //"P" + Base58.EncodePrivateWif(privateKey);

            var subWif = Base58.GetSubWif(name, privateWif, "owner");

            Console.WriteLine(subWif);
            var pk           = Base58.DecodePrivateWif(subWif);
            var subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);

            Console.WriteLine(Base58.EncodePublicWif(subPublicKey, Config.KeyPrefix));
            op.Owner.KeyAuths.Add(new KeyValuePair <PublicKeyType, ushort>(new PublicKeyType(subPublicKey), 1));

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

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

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

            await Post(User.ActiveKeys, false, op).ConfigureAwait(false);
        }
Example #3
0
        public async Task AccountCreateOperationTestAsync()
        {
            var name = "userlogin";
            var key  = Secp256K1Manager.GenerateRandomKey();
            var pwif = "P" + Base58.EncodePrivateWif(key);

            var user = User.Account.Id;

            var op = new AccountCreateOperation
            {
                Fee = new Asset
                {
                    Amount  = 100000,
                    AssetId = new AssetIdType(1, 3, 0)
                },
                Registrar       = user,
                Referrer        = user,
                ReferrerPercent = 10000,
                Name            = name,
                Options         = new AccountOptions
                {
                    VotingAccount = new AccountIdType(1, 2, 5)
                }
            };

            var subWif       = Base58.GetSubWif(name, pwif, "owner");
            var pk           = Base58.DecodePrivateWif(subWif);
            var subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);

            op.Owner = new Authority(new PublicKeyType(subPublicKey, "TEST"));

            subWif       = Base58.GetSubWif(name, pwif, "active");
            pk           = Base58.DecodePrivateWif(subWif);
            subPublicKey = Secp256K1Manager.GetPublicKey(pk, true);
            op.Active    = new Authority(new PublicKeyType(subPublicKey, "TEST"));

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

            await Post(User.ActiveKeys, false, op);
        }
Example #4
0
        public async Task AccountCreateTest()
        {
            var name = "userlogin";

            var op = new AccountCreateOperation
            {
                Fee            = new Asset(3000, Config.SteemAssetNumSteem),
                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 = Post(User.ActiveKeys, false, op);

            Assert.IsFalse(response.IsError, response.GetErrorMessage());
        }
Example #5
0
        public async Task AccountCreateTest()
        {
            string name = User.Login + DateTime.Now.Ticks;

            var op = new AccountCreateOperation
            {
                Fee            = new Asset(3000, Config.SteemAssetNumSteem),
                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);

            await Post(User.ActiveKeys, false, op).ConfigureAwait(false);
        }
Example #6
0
        public void AccountCreate()
        {
            buttonAccountCreate.interactable = false;

            IList <byte[]> YouPrivateKeys = new List <byte[]>
            {
                Ditch.Core.Base58.DecodePrivateWif("5JMCfREHnK4x5tPjruhEHJKX6wQDVBJFzikc1wxEBQ4iFTcHgMY")
            };

            Debug.Log("PRIVATE KEY = " + Hex.ToString(privateKey));

            var privateWif = Ditch.Core.Base58.EncodePrivateWif(privateKey);

            var subWif       = Ditch.Core.Base58.GetSubWif(inputAccountName.text, privateWif, "active");
            var pk           = Ditch.Core.Base58.DecodePrivateWif(subWif);
            var activePubKey = Secp256K1Manager.GetPublicKey(pk, true);

            Debug.Log("ACTIVE PUB KEY = " + Hex.ToString(activePubKey));

            subWif = Ditch.Core.Base58.GetSubWif(inputAccountName.text, privateWif, "owner");
            pk     = Ditch.Core.Base58.DecodePrivateWif(subWif);
            var ownerPubKey = Secp256K1Manager.GetPublicKey(pk, true);

            Debug.Log("OWNER PUB KEY = " + Hex.ToString(ownerPubKey));

            var accountCreateOp = new AccountCreateOperation
            {
                Fee = new Asset()
                {
                    Amount  = 0,
                    AssetId = new AssetIdType(1, 3, 0)
                },
                Registrar       = new ObjectId(1, 2, 22765),
                Referrer        = new ObjectId(1, 2, 22765),
                ReferrerPercent = 7000,
                Name            = inputAccountName.text,
                Owner           = new Authority(new PublicKeyType(ownerPubKey)),
                Active          = new Authority(new PublicKeyType(activePubKey)),
                Options         = new AccountOptions()
                {
                    MemoKey       = new PublicKeyType(activePubKey),
                    VotingAccount = new AccountIdType(1, 2, 5),
                },
            };

            var responce = _operationManager.BroadcastOperations(YouPrivateKeys, CancellationToken.None, accountCreateOp);

            GeneratePassword();

            panelInfo.SetActive(true);
            if (responce.IsError)
            {
                textPanelInfo.text = responce.GetErrorMessage();
            }
            else
            {
                textPanelInfo.text = errors[8];
            }

            //Debug.Log("RESULT = " + responce.Result);
            //Debug.Log("ERROR = " + responce.GetErrorMessage());
        }
Example #7
0
 public AccountTable(long blockNum, short trxNum, short opNum, DateTime timestamp, AccountCreateOperation operation)
     : base(blockNum, trxNum, opNum, timestamp)
 {
     Login    = operation.NewAccountName;
     JsonData = operation.JsonMetadata;
 }