public LyraTokenGenesisBlock CreateLyraTokenGenesisBlock(ServiceBlock svcGen) { var openTokenGenesisBlock = new LyraTokenGenesisBlock { Height = 1, AccountType = AccountTypes.Standard, Ticker = LyraGlobal.OFFICIALTICKERCODE, DomainName = LyraGlobal.OFFICIALDOMAIN, ContractType = ContractTypes.Cryptocurrency, Description = LyraGlobal.PRODUCTNAME + " Gas Token", Precision = LyraGlobal.OFFICIALTICKERPRECISION, IsFinalSupply = true, AccountID = _sys.PosWallet.AccountId, Balances = new Dictionary <string, long>(), PreviousHash = svcGen.Hash, ServiceHash = svcGen.Hash, Fee = svcGen.TokenGenerationFee, FeeCode = LyraGlobal.OFFICIALTICKERCODE, FeeType = AuthorizationFeeTypes.Regular, RenewalDate = DateTime.UtcNow.AddYears(100) }; var transaction = new TransactionInfo() { TokenCode = openTokenGenesisBlock.Ticker, Amount = LyraGlobal.OFFICIALGENESISAMOUNT }; openTokenGenesisBlock.Balances.Add(transaction.TokenCode, transaction.Amount.ToBalanceLong()); // This is current supply in atomic units (1,000,000.00) openTokenGenesisBlock.InitializeBlock(null, _sys.PosWallet.PrivateKey, AccountId: _sys.PosWallet.AccountId); return(openTokenGenesisBlock); }
public LyraTokenGenesisBlock GetLyraTokenGenesisBlock(ServiceBlock svcGen) { // initiate test coins var openTokenGenesisBlock = new LyraTokenGenesisBlock { Height = 1, AccountType = AccountTypes.Standard, Ticker = LyraGlobal.LYRATICKERCODE, DomainName = "Lyra", ContractType = ContractTypes.Cryptocurrency, Description = "Lyra Permissioned Gas Token", Precision = LyraGlobal.LYRAPRECISION, IsFinalSupply = true, AccountID = NodeService.Instance.PosWallet.AccountId, Balances = new Dictionary <string, decimal>(), PreviousHash = svcGen.Hash, ServiceHash = svcGen.Hash, Fee = svcGen.TokenGenerationFee, FeeType = AuthorizationFeeTypes.Regular, Icon = "https://i.imgur.com/L3h0J1K.png", Image = "https://i.imgur.com/B8l4ZG5.png", RenewalDate = DateTime.Now.AddYears(1000) }; var transaction = new TransactionInfo() { TokenCode = openTokenGenesisBlock.Ticker, Amount = LyraGlobal.LYRAGENESISAMOUNT }; openTokenGenesisBlock.Balances.Add(transaction.TokenCode, transaction.Amount); // This is current supply in atomic units (1,000,000.00) openTokenGenesisBlock.InitializeBlock(null, NodeService.Instance.PosWallet.PrivateKey, AccountId: NodeService.Instance.PosWallet.AccountId); return(openTokenGenesisBlock); }
public async Task <AuthorizationAPIResult> OpenAccountWithGenesis(LyraTokenGenesisBlock block) { return(await Pre_PrepareAsync(block, async (b) => { var feeResult = await ProcessTokenGenerationFee(b as LyraTokenGenesisBlock).ConfigureAwait(false); return feeResult.block; }).ConfigureAwait(false)); }
public async Task <AuthorizationAPIResult> OpenAccountWithGenesisAsync(LyraTokenGenesisBlock block) { if (!CheckServiceStatus()) { return(null); } return(await _trans.OpenAccountWithGenesisAsync(block)); }
async Task <AuthorizationAPIResult> INodeAPI.OpenAccountWithGenesis(LyraTokenGenesisBlock block) { var genReq = new OpenAccountWithGenesisRequest() { OpenTokenGenesisBlockJson = Json(block) }; var result = await OpenAccountWithGenesisAsync(genReq); return(ToAAR(result)); }
public ConsolidationBlock GetConsolidationGenesisBlock(ServiceBlock svcGen, LyraTokenGenesisBlock lyraGen) { var consBlock = new ConsolidationBlock { blockHashes = new List <string>() { svcGen.Hash, lyraGen.Hash }, totalBlockCount = 2 // not including self }; var mt = new MerkleTree(); mt.AppendLeaf(MerkleHash.Create(svcGen.Hash)); mt.AppendLeaf(MerkleHash.Create(lyraGen.Hash)); consBlock.MerkelTreeHash = mt.BuildTree().ToString(); consBlock.ServiceHash = svcGen.Hash; consBlock.InitializeBlock(null, NodeService.Instance.PosWallet.PrivateKey, NodeService.Instance.PosWallet.AccountId); return(consBlock); }
public async Task <AuthorizationAPIResult> OpenAccountWithGenesis(LyraTokenGenesisBlock block) { CheckSyncState(); return(await _trans.OpenAccountWithGenesis(block)); }
public ConsolidationBlock CreateConsolidationGenesisBlock(ServiceBlock svcGen, LyraTokenGenesisBlock lyraGen, PoolFactoryBlock pf) { var consBlock = new ConsolidationBlock { createdBy = ProtocolSettings.Default.StandbyValidators[0], blockHashes = new List <string>() { svcGen.Hash, lyraGen.Hash, pf.Hash }, totalBlockCount = 3 // not including self }; consBlock.TimeStamp = DateTime.UtcNow.AddSeconds(-18); var mt = new MerkleTree(); mt.AppendLeaf(MerkleHash.Create(svcGen.Hash)); mt.AppendLeaf(MerkleHash.Create(lyraGen.Hash)); mt.AppendLeaf(MerkleHash.Create(pf.Hash)); consBlock.MerkelTreeHash = mt.BuildTree().ToString(); consBlock.ServiceHash = svcGen.Hash; consBlock.totalFees = lyraGen.Fee.ToBalanceLong(); consBlock.InitializeBlock(null, _sys.PosWallet.PrivateKey, _sys.PosWallet.AccountId); return(consBlock); }
public async Task <AuthorizationAPIResult> OpenAccountWithGenesis(LyraTokenGenesisBlock block) { return(await PostBlock("OpenAccountWithGenesis", block)); }
public async Task <AuthorizationAPIResult> OpenAccountWithGenesisAsync(LyraTokenGenesisBlock block) { return(await Pre_PrepareAsync(block).ConfigureAwait(false)); }