Exemplo n.º 1
0
        public void Setup()
        {
            TestUtils.DeleteTestChainData();

            var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager(
                                                                          Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"),
                                                                          new RunOptions()
                                                                          ));

            containerBuilder.RegisterModule <BlockchainModule>();
            containerBuilder.RegisterModule <ConfigModule>();
            containerBuilder.RegisterModule <StorageModule>();

            _container = containerBuilder.Build();

            _stateManager       = _container.Resolve <IStateManager>();
            _contractRegisterer = _container.Resolve <IContractRegisterer>();

            _minterKeyPair = new EcdsaKeyPair("0xD95D6DB65F3E2223703C5D8E205D98E3E6B470F067B0F94F6C6BF73D4301CE48"
                                              .HexToBytes().ToPrivateKey());
            _minterPubKey = CryptoUtils.EncodeCompressed(_minterKeyPair.PublicKey);
            _minterAdd    = _minterKeyPair.PublicKey.GetAddress();

            _mintCntrlKeyPair = new EcdsaKeyPair("0xE83385AF76B2B1997326B567461FB73DD9C27EAB9E1E86D26779F4650C5F2B75".HexToBytes()
                                                 .ToPrivateKey());
            _mintCntrlPubKey = CryptoUtils.EncodeCompressed(_mintCntrlKeyPair.PublicKey);
            _mintCntrlAdd    = _mintCntrlKeyPair.PublicKey.GetAddress();
        }
Exemplo n.º 2
0
 public SystemContractReader(IStateManager stateManager, IPrivateWallet privateWallet, IContractRegisterer contractRegisterer)
 {
     _stateManager       = stateManager;
     _contractRegisterer = contractRegisterer;
     _nodeAddress        = privateWallet.EcdsaKeyPair.PublicKey.GetAddress();
     _nodePublicKey      = privateWallet.EcdsaKeyPair.PublicKey.Buffer.ToByteArray();
 }
Exemplo n.º 3
0
 public AccountServiceWeb3(IStateManager stateManager,
                           ISnapshotIndexRepository snapshotIndexer,
                           IContractRegisterer contractRegisterer,
                           ISystemContractReader systemContractReader, ITransactionPool transactionPool)
 {
     _stateManager         = stateManager;
     _snapshotIndexer      = snapshotIndexer;
     _contractRegisterer   = contractRegisterer;
     _systemContractReader = systemContractReader;
     _transactionPool      = transactionPool;
 }
Exemplo n.º 4
0
 public TransactionManager(
     ITransactionVerifier transactionVerifier,
     IContractRegisterer contractRegisterer,
     IStateManager stateManager
     )
 {
     _stateManager        = stateManager ?? throw new ArgumentNullException(nameof(stateManager));
     _transactionVerifier = transactionVerifier ?? throw new ArgumentNullException(nameof(transactionVerifier));
     _transactionExecuter = new TransactionExecuter(contractRegisterer);
     _transactionExecuter.OnSystemContractInvoked +=
         (sender, context) => OnSystemContractInvoked?.Invoke(sender, context);
     // once a transaction is verified asynchronously, it invokes OnTransacionVerified
     // and this adds the transaction to _verifiedTransactions
     transactionVerifier.OnTransactionVerified += (sender, transaction) =>
                                                  _verifiedTransactions.TryAdd(transaction.Hash, transaction.Hash);
 }
Exemplo n.º 5
0
        public void Setup()
        {
            _container?.Dispose();
            TestUtils.DeleteTestChainData();

            var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager(
                                                                          Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config2.json"),
                                                                          new RunOptions()
                                                                          ));

            containerBuilder.RegisterModule <BlockchainModule>();
            containerBuilder.RegisterModule <ConfigModule>();
            containerBuilder.RegisterModule <StorageModule>();
            _container = containerBuilder.Build();


            _configManager        = _container.Resolve <IConfigManager>();
            _stateManager         = _container.Resolve <IStateManager>();
            _contractRegisterer   = _container.Resolve <IContractRegisterer>();
            _privateWallet        = _container.Resolve <IPrivateWallet>();
            _snapshotIndexer      = _container.Resolve <ISnapshotIndexRepository>();
            _systemContractReader = _container.Resolve <ISystemContractReader>();

            _transactionManager = _container.Resolve <ITransactionManager>();
            _transactionBuilder = _container.Resolve <ITransactionBuilder>();
            _transactionSigner  = _container.Resolve <ITransactionSigner>();
            _transactionPool    = _container.Resolve <ITransactionPool>();
            _blockManager       = _container.Resolve <IBlockManager>();

            // set chainId from config
            if (TransactionUtils.ChainId(false) == 0)
            {
                var chainId    = _configManager.GetConfig <NetworkConfig>("network")?.ChainId;
                var newChainId = _configManager.GetConfig <NetworkConfig>("network")?.ChainId;
                TransactionUtils.SetChainId((int)chainId !, (int)newChainId !);
                HardforkHeights.SetHardforkHeights(_configManager.GetConfig <HardforkConfig>("hardfork") ?? throw new InvalidOperationException());
            }
            ServiceBinder.BindService <GenericParameterAttributes>();

            _apiService = new AccountServiceWeb3(_stateManager, _snapshotIndexer, _contractRegisterer, _systemContractReader, _transactionPool);

            _transactionApiService = new TransactionServiceWeb3(_stateManager, _transactionManager, _transactionBuilder, _transactionSigner,
                                                                _transactionPool, _contractRegisterer, _privateWallet);

            _blockManager.TryBuildGenesisBlock();
        }
Exemplo n.º 6
0
 public TransactionServiceWeb3(
     IStateManager stateManager,
     ITransactionManager transactionManager,
     ITransactionBuilder transactionBuilder,
     ITransactionSigner transactionSigner,
     ITransactionPool transactionPool,
     IContractRegisterer contractRegisterer,
     IPrivateWallet privateWallet)
 {
     _stateManager       = stateManager;
     _transactionManager = transactionManager;
     _transactionBuilder = transactionBuilder;
     _transactionSigner  = transactionSigner;
     _transactionPool    = transactionPool;
     _contractRegisterer = contractRegisterer;
     _privateWallet      = privateWallet;
 }
Exemplo n.º 7
0
        public void Setup()
        {
            TestUtils.DeleteTestChainData();

            var containerBuilder = new SimpleInjectorContainerBuilder(new ConfigManager(
                                                                          Path.Join(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "config.json"),
                                                                          new RunOptions()
                                                                          ));

            containerBuilder.RegisterModule <BlockchainModule>();
            containerBuilder.RegisterModule <ConfigModule>();
            containerBuilder.RegisterModule <StorageModule>();

            _container = containerBuilder.Build();

            _stateManager       = _container.Resolve <IStateManager>();
            _contractRegisterer = _container.Resolve <IContractRegisterer>();
        }
Exemplo n.º 8
0
 public RpcManager(
     ITransactionManager transactionManager,
     IBlockManager blockManager,
     IConfigManager configManager,
     IStateManager stateManager,
     ISnapshotIndexRepository snapshotIndexer,
     ITransactionPool transactionPool,
     IVirtualMachine virtualMachine,
     IContractRegisterer contractRegisterer,
     IValidatorStatusManager validatorStatusManager,
     ISystemContractReader systemContractReader,
     IBlockSynchronizer blockSynchronizer,
     ILocalTransactionRepository localTransactionRepository,
     ITransactionSigner transactionSigner,
     IPrivateWallet privateWallet,
     ITransactionBuilder transactionBuilder,
     IBlockchainEventFilter blockchainEventFilter,
     INetworkManager networkManager,
     INodeRetrieval nodeRetrieval,
     IConsensusManager consensusManager
     )
 {
     _transactionManager         = transactionManager;
     _blockManager               = blockManager;
     _configManager              = configManager;
     _stateManager               = stateManager;
     _snapshotIndexer            = snapshotIndexer;
     _transactionPool            = transactionPool;
     _contractRegisterer         = contractRegisterer;
     _validatorStatusManager     = validatorStatusManager;
     _systemContractReader       = systemContractReader;
     _blockSynchronizer          = blockSynchronizer;
     _localTransactionRepository = localTransactionRepository;
     _transactionSigner          = transactionSigner;
     _transactionBuilder         = transactionBuilder;
     _privateWallet              = privateWallet;
     _blockchainEventFilter      = blockchainEventFilter;
     _networkManager             = networkManager;
     _nodeRetrieval              = nodeRetrieval;
     _consensusManager           = consensusManager;
 }
Exemplo n.º 9
0
 public ContractInvoker(IContractRegisterer contractRegisterer)
 {
     _contractRegisterer = contractRegisterer;
 }
Exemplo n.º 10
0
 public TransactionExecuter(IContractRegisterer contractRegisterer)
 {
     _contractRegisterer = contractRegisterer;
 }