using NBitcoin; using Stratis.Bitcoin; using Stratis.Bitcoin.Builder; using Stratis.Bitcoin.Configuration; using Stratis.Bitcoin.Features.BlockStore; using Stratis.Bitcoin.Features.MemoryPool; using Stratis.Bitcoin.Features.Miner; using Stratis.Bitcoin.Features.RPC; using Stratis.Bitcoin.Features.SmartContracts; using Stratis.Bitcoin.Features.SmartContracts.PoS; using Stratis.Bitcoin.Features.SmartContracts.Wallet; using Stratis.Bitcoin.IntegrationTests.Common; using Stratis.Bitcoin.IntegrationTests.Common.Runners; namespace Stratis.SmartContracts.Tests.Common { public sealed class StratisSmartContractPosNode : NodeRunner { public StratisSmartContractPosNode(string dataDir, Network network) : base(dataDir, null) { this.Network = network; } public override void BuildNode() { var settings = new NodeSettings(this.Network, args: new string[] { "-conf=stratis.conf", "-datadir=" + this.DataFolder }); this.FullNode = (FullNode)new FullNodeBuilder() .UseNodeSettings(settings) .UseBlockStore() .UseMempool() .AddRPC() .AddSmartContracts() .UseSmartContractPosConsensus() .UseSmartContractWallet() .UseSmartContractPosPowMining() .UseReflectionExecutor() .MockIBD() .UseTestChainedHeaderTree() .OverrideDateTimeProviderFor<MiningFeature>() .Build(); } } }