public ReflectionVirtualMachine(ISmartContractValidator validator, ILoggerFactory loggerFactory, ILoader assemblyLoader, IContractModuleDefinitionReader moduleDefinitionReader) { this.validator = validator; this.logger = loggerFactory.CreateLogger(this.GetType()); this.assemblyLoader = assemblyLoader; this.moduleDefinitionReader = moduleDefinitionReader; }
public ReflectionVirtualMachine(ISmartContractValidator validator, InternalTransactionExecutorFactory internalTransactionExecutorFactory, ILoggerFactory loggerFactory, Network network, IAddressGenerator addressGenerator, ILoader assemblyLoader, IContractModuleDefinitionReader moduleDefinitionReader, IContractPrimitiveSerializer contractPrimitiveSerializer) { this.validator = validator; this.internalTransactionExecutorFactory = internalTransactionExecutorFactory; this.logger = loggerFactory.CreateLogger(this.GetType()); this.network = network; this.addressGenerator = addressGenerator; this.assemblyLoader = assemblyLoader; this.moduleDefinitionReader = moduleDefinitionReader; this.contractPrimitiveSerializer = contractPrimitiveSerializer; }
public ObserverTests() { var context = new ContractExecutorTestContext(); this.network = context.Network; this.TestAddress = "0x0000000000000000000000000000000000000001".HexToAddress(); this.repository = context.State; this.moduleReader = new ContractModuleDefinitionReader(); this.assemblyLoader = new ContractAssemblyLoader(); this.gasMeter = new GasMeter((Gas)5000000); var block = new TestBlock { Coinbase = this.TestAddress, Number = 1 }; var message = new TestMessage { ContractAddress = this.TestAddress, GasLimit = (Gas)GasLimit, Sender = this.TestAddress, Value = Value }; var getBalance = new Func <ulong>(() => Balance); var persistentState = new TestPersistentState(); var network = new SmartContractsRegTest(); var serializer = new ContractPrimitiveSerializer(network); this.state = new SmartContractState( new Stratis.SmartContracts.Block(1, this.TestAddress), new Message(this.TestAddress, this.TestAddress, 0), new PersistentState(new MeteredPersistenceStrategy(this.repository, this.gasMeter, new BasicKeyEncodingStrategy()), context.Serializer, this.TestAddress.ToUint160()), context.Serializer, this.gasMeter, new ContractLogHolder(), Mock.Of <IInternalTransactionExecutor>(), new InternalHashHelper(), () => 1000); this.rewriter = new ObserverRewriter(new Observer(this.gasMeter, ReflectionVirtualMachine.MemoryUnitLimit)); }