示例#1
0
        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);
        }
示例#2
0
        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));
 }
示例#4
0
 public async Task <AuthorizationAPIResult> OpenAccountWithGenesisAsync(LyraTokenGenesisBlock block)
 {
     if (!CheckServiceStatus())
     {
         return(null);
     }
     return(await _trans.OpenAccountWithGenesisAsync(block));
 }
示例#5
0
        async Task <AuthorizationAPIResult> INodeAPI.OpenAccountWithGenesis(LyraTokenGenesisBlock block)
        {
            var genReq = new OpenAccountWithGenesisRequest()
            {
                OpenTokenGenesisBlockJson = Json(block)
            };
            var result = await OpenAccountWithGenesisAsync(genReq);

            return(ToAAR(result));
        }
示例#6
0
        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);
        }
示例#7
0
 public async Task <AuthorizationAPIResult> OpenAccountWithGenesis(LyraTokenGenesisBlock block)
 {
     CheckSyncState();
     return(await _trans.OpenAccountWithGenesis(block));
 }
示例#8
0
        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));
 }
示例#10
0
 public async Task <AuthorizationAPIResult> OpenAccountWithGenesisAsync(LyraTokenGenesisBlock block)
 {
     return(await Pre_PrepareAsync(block).ConfigureAwait(false));
 }