protected void InitializeContracts() { //get basic stub BasicContractStub = GetContractZeroTester(DefaultSenderKeyPair); //deploy Parliament contract ParliamentContractAddress = AsyncHelper.RunSync(() => DeploySystemSmartContract( KernelConstants.CodeCoverageRunnerCategory, ParliamentCode, ParliamentSmartContractAddressNameProvider.Name, DefaultSenderKeyPair )); ParliamentContractStub = GetParliamentContractTester(DefaultSenderKeyPair); //deploy token contract TokenContractAddress = AsyncHelper.RunSync(() => DeploySystemSmartContract( KernelConstants.CodeCoverageRunnerCategory, TokenContractCode, TokenSmartContractAddressNameProvider.Name, DefaultSenderKeyPair)); TokenContractStub = GetTokenContractTester(DefaultSenderKeyPair); AsyncHelper.RunSync(async () => await InitializeTokenAsync()); ConsensusContractAddress = AsyncHelper.RunSync(() => DeploySystemSmartContract( KernelConstants.CodeCoverageRunnerCategory, DPoSConsensusCode, ConsensusSmartContractAddressNameProvider.Name, DefaultSenderKeyPair)); ConsensusContractStub = GetConsensusContractTester(DefaultSenderKeyPair); AsyncHelper.RunSync(async () => await InitializeConsensusAsync()); }
private async Task DeployContractsAsync() { var category = KernelConstants.CodeCoverageRunnerCategory; var code = Codes.Single(kv => kv.Key.Split(",").First().EndsWith("Configuration")).Value; OptionalLogEventListeningService <IBlockAcceptedLogEventProcessor> .Enabled = true; ConfigurationContractAddress = await DeploySystemSmartContract(category, code, ConfigurationSmartContractAddressNameProvider.Name, DefaultSenderKeyPair); _configurationStub = GetTester <ConfigurationContainer.ConfigurationStub>(ConfigurationContractAddress, DefaultSenderKeyPair); var consensusContractCode = Codes.Single(kv => kv.Key.Split(",").First().EndsWith("Consensus.AEDPoS")).Value; var consensusContractAddress = await DeploySystemSmartContract(category, consensusContractCode, ConsensusSmartContractAddressNameProvider.Name, DefaultSenderKeyPair); var consensusStub = GetTester <AEDPoSContractImplContainer.AEDPoSContractImplStub>(consensusContractAddress, DefaultSenderKeyPair); await consensusStub.FirstRound.SendAsync( new MinerList { Pubkeys = { ByteString.CopyFrom(DefaultSenderKeyPair.PublicKey) } }.GenerateFirstRoundOfNewTerm(4000, TimestampHelper.GetUtcNow()) ); var parliamentContractCode = Codes.Single(kv => kv.Key.Split(",").First().EndsWith("Parliament")).Value; var parliamentContractAddress = await DeploySystemSmartContract(category, parliamentContractCode, ParliamentSmartContractAddressNameProvider.Name, DefaultSenderKeyPair); _parliamentContractStub = GetTester <ParliamentContractContainer.ParliamentContractStub>(parliamentContractAddress, DefaultSenderKeyPair); await _parliamentContractStub.Initialize.SendAsync(new InitializeInput { ProposerAuthorityRequired = true, PrivilegedProposer = Address.FromPublicKey(DefaultSenderKeyPair.PublicKey) }); var chain = await _blockchainService.GetChainAsync(); await _blockchainService.SetIrreversibleBlockAsync(chain, chain.BestChainHeight, chain.BestChainHash); }