コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }