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}"); } } }
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); }); }