Exemplo n.º 1
0
        public async Task Send()
        {
            // open wallet
            var wallet = await ShadowWallet.OpenAsync(_netName, _walletName);

            var bb = JsonConvert.DeserializeObject <BillBoard>(File.ReadAllText(_fnBillBoard));

            var amount = 2000000;

            foreach (var pa in bb.PrimaryAuthorizers)
            {
                await wallet.Sync(null);

                var result = await wallet.Send(amount, pa);

                if (result.ResultCode == Lyra.Core.Blocks.APIResultCodes.Success)
                {
                    Console.WriteLine($"Success sent {amount} to {pa}");
                }
            }

            amount = 1500000;
            foreach (var ba in bb.BackupAuthorizers)
            {
                await wallet.Sync(null);

                var result = await wallet.Send(amount, ba);

                if (result.ResultCode == Lyra.Core.Blocks.APIResultCodes.Success)
                {
                    Console.WriteLine($"Success sent {amount} to {ba}");
                }
            }
        }
Exemplo n.º 2
0
        private void Genesis()
        {
            Task.Run(async() =>
            {
                // genesis
                _log.LogInformation("all seed nodes are ready. do genesis.");

                var svcGen = GetServiceGenesisBlock();
                await SendBlockToConsensusAsync(svcGen);

                await Task.Delay(1000);

                var tokenGen = GetLyraTokenGenesisBlock(svcGen);
                await SendBlockToConsensusAsync(tokenGen);

                await Task.Delay(1000);

                var consGen = GetConsolidationGenesisBlock(svcGen, tokenGen);
                await SendBlockToConsensusAsync(consGen);

                await Task.Delay(1000);

                _log.LogInformation("svc genesis is done.");

                await Task.Delay(3000);

                // distribute staking coin to pre-defined authorizers
                var gensWallet = await ShadowWallet.OpenWithKeyAsync(NetworkID, NodeService.Instance.PosWallet.PrivateKey);
                foreach (var accId in ProtocolSettings.Default.StartupValidators)
                {
                    await gensWallet.Sync(null);
                    var sendResult = await gensWallet.Send(LyraGlobal.MinimalAuthorizerBalance, accId);
                    if (sendResult.ResultCode == APIResultCodes.Success)
                    {
                        _log.LogInformation($"Genesis send {LyraGlobal.MinimalAuthorizerBalance} successfull to accountId: {accId}");
                    }
                    else
                    {
                        _log.LogError($"Genesis send {LyraGlobal.MinimalAuthorizerBalance} failed to accountId: {accId}");
                    }
                }

                await Task.Delay(3000);

                LyraSystem.Singleton.Consensus.Tell(new ConsensusService.Consolidate());

                await Task.Delay(3000);
            });
        }