public PersistedTransaction(Transaction txn, IAddressEncoder addressEncoder)
 {
     TransactionId = txn.TransactionId;
     foreach (var ins in txn.Instructions)
     {
         Instructions.Add(new PersistedInstruction(ins, addressEncoder));
     }
 }
Example #2
0
        public PersistedBlock(Block block, IAddressEncoder addressEncoder)
        {
            Header               = block.Header;
            MerkleRootNode       = block.MerkleRootNode;
            Statistics.TimeStamp = new DateTime(block.Header.Timestamp);

            foreach (var txn in block.Transactions)
            {
                Transactions.Add(new PersistedTransaction(txn, addressEncoder));
            }
        }
        public DefaultBlockRepository(ILoggerFactory loggerFactory, IDataConnection connection, IAddressEncoder addressEncoder)
        {
            _connection     = connection;
            _addressEncoder = addressEncoder;
            _logger         = loggerFactory.CreateLogger <DefaultBlockRepository>();

            MainChain.EnsureIndex(x => x.Entity.Header.BlockId, true);
            MainChain.EnsureIndex(x => x.Entity.Header.PreviousBlock, true);
            MainChain.EnsureIndex(x => x.Entity.Header.Height, true);

            ForkChain.EnsureIndex(x => x.Entity.Header.BlockId);
            ForkChain.EnsureIndex(x => x.Entity.Header.PreviousBlock);
            ForkChain.EnsureIndex(x => x.Entity.Header.Height);

            Instructions.EnsureIndex(x => x.BlockId);
            Instructions.EnsureIndex(x => x.TransactionId);
            Instructions.EnsureIndex(x => x.Entity.InstructionId);
            Instructions.EnsureIndex(x => x.Entity.PublicKey);
            Instructions.EnsureIndex(x => x.Statistics.PublicKeyHash);
        }
Example #4
0
        static void Main(string[] args)
        {
            var serviceProvider = ConfigureForMongoDB("DigitalCurrency", 10500);

            //var serviceProvider = ConfigureForLiteDb("node.db", 10500);

            _host           = serviceProvider.GetService <IBlockchainNode>();
            _miner          = serviceProvider.GetService <IBlockMiner>();
            _network        = serviceProvider.GetService <IPeerNetwork>();
            _sigService     = serviceProvider.GetService <ISignatureService>();
            _addressEncoder = serviceProvider.GetService <IAddressEncoder>();
            _txnRepo        = serviceProvider.GetService <ICustomInstructionRepository>();
            _blockRepo      = serviceProvider.GetService <IBlockRepository>();
            _txnBuilder     = serviceProvider.GetService <ITransactionBuilder>();

            Console.Write("Enter passphrase:");
            var phrase  = Console.ReadLine();
            var keys    = _sigService.GetKeyPairFromPhrase(phrase);
            var address = _addressEncoder.EncodeAddress(keys.PublicKey, 0);

            Console.WriteLine($"Your address is {address}");

            _network.Open();

            PrintHelp();
            while (true)
            {
                Console.Write(">");
                var command = Console.ReadLine();

                if (command == "exit")
                {
                    break;
                }

                RunCommand(command, keys);
            }
            _network.Close();
        }
 public DefaultSignatureService(IAddressEncoder addressEncoder, IAsymetricCryptographyService asymetricCryptography)
 {
     _addressEncoder        = addressEncoder;
     _asymetricCryptography = asymetricCryptography;
 }
Example #6
0
 protected BlockbaseTransactionBuilder(IAddressEncoder addressEncoder, ISignatureService signatureService, ITransactionBuilder transactionBuilder)
 {
     AddressEncoder     = addressEncoder;
     SignatureService   = signatureService;
     TransactionBuilder = transactionBuilder;
 }
 public CustomInstructionRepository(ILoggerFactory loggerFactory, IDataConnection dataConnection, IAddressEncoder addressEncoder)
     : base(loggerFactory, dataConnection)
 {
     _addressEncoder = addressEncoder;
 }
Example #8
0
 public BalanceRule(ICustomInstructionRepository txnRepo, IAddressEncoder addressEncoder)
 {
     _txnRepo        = txnRepo;
     _addressEncoder = addressEncoder;
 }
Example #9
0
 public BaseBuilder(IAddressEncoder addressEncoder, ISignatureService signatureService, ITransactionBuilder transactionBuilder)
     : base(addressEncoder, signatureService, transactionBuilder)
 {
 }
 public CustomMongoInstructionRepository(IMongoDatabase database, IAddressEncoder addressEncoder)
     : base(database)
 {
     _addressEncoder = addressEncoder;
 }
 public MongoBlockRepository(IMongoDatabase database, IAddressEncoder addressEncoder)
 {
     _database       = database;
     _addressEncoder = addressEncoder;
     EnsureIndexes();
 }
 public PersistedInstruction(Instruction entity, IAddressEncoder addressEncoder)
     : base(entity)
 {
     Id = entity.InstructionId;
     Statistics.PublicKeyHash = addressEncoder.HashPublicKey(entity.PublicKey);
 }