예제 #1
0
        protected void InitializeContracts()
        {
            //get basic stub
            BasicContractStub =
                GetContractZeroTester(DefaultSenderKeyPair);

            //deploy parliamentAuth contract
            ParliamentAuthContractAddress = AsyncHelper.RunSync(() =>
                                                                DeploySystemSmartContract(
                                                                    KernelConstants.CodeCoverageRunnerCategory,
                                                                    ParliamentAuthCode,
                                                                    ParliamentAuthSmartContractAddressNameProvider.Name,
                                                                    DefaultSenderKeyPair
                                                                    ));
            ParliamentAuthContractStub = GetParliamentAuthContractTester(DefaultSenderKeyPair);

            //deploy token contract
            TokenContractAddress = AsyncHelper.RunSync(() =>
                                                       DeploySystemSmartContract(
                                                           KernelConstants.CodeCoverageRunnerCategory,
                                                           TokenContractCoe,
                                                           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());
        }
        protected void InitializeContracts()
        {
            BasicContractZeroStub = GetContractZeroTester(DefaultSenderKeyPair);

            //deploy parliamentAuth contract
            ParliamentAuthContractAddress = AsyncHelper.RunSync(() =>
                                                                BasicContractZeroStub.DeploySystemSmartContract.SendAsync(
                                                                    new SystemContractDeploymentInput
            {
                Category = KernelConstants.CodeCoverageRunnerCategory,
                Code     = ByteString.CopyFrom(File.ReadAllBytes(typeof(ParliamentAuthContract).Assembly.Location)),
                Name     = Hash.FromString("AElf.ContractNames.ParliamentAuth"),
                TransactionMethodCallList = GenerateParliamentAuthInitializationCallList()
            })).Output;
            ParliamentAuthContractStub = GetParliamentAuthContractTester(DefaultSenderKeyPair);

            var otherParliamentAuthContractAddress = AsyncHelper.RunSync(() =>
                                                                         BasicContractZeroStub.DeploySmartContract.SendAsync(
                                                                             new ContractDeploymentInput
            {
                Category = KernelConstants.CodeCoverageRunnerCategory,
                Code     = ByteString.CopyFrom(File.ReadAllBytes(typeof(ParliamentAuthContract).Assembly.Location)),
            })).Output;

            OtherParliamentAuthContractStub = GetTester <ParliamentAuthContractContainer.ParliamentAuthContractStub>(otherParliamentAuthContractAddress, DefaultSenderKeyPair);

            //deploy token contract
            TokenContractAddress = AsyncHelper.RunSync(() =>
                                                       BasicContractZeroStub.DeploySystemSmartContract.SendAsync(
                                                           new SystemContractDeploymentInput
            {
                Category = KernelConstants.CodeCoverageRunnerCategory,
                Code     = ByteString.CopyFrom(File.ReadAllBytes(typeof(TokenContract).Assembly.Location)),
                Name     = TokenSmartContractAddressNameProvider.Name,
                TransactionMethodCallList = GenerateTokenInitializationCallList()
            })).Output;
            TokenContractStub = GetTokenContractTester(DefaultSenderKeyPair);

            ConsensusContractAddress = AsyncHelper.RunSync(() => GetContractZeroTester(DefaultSenderKeyPair)
                                                           .DeploySystemSmartContract.SendAsync(new SystemContractDeploymentInput
            {
                Category = KernelConstants.CodeCoverageRunnerCategory,
                Code     = ByteString.CopyFrom(File.ReadAllBytes(typeof(ConsensusContract).Assembly.Location)),
                Name     = ConsensusSmartContractAddressNameProvider.Name,
                TransactionMethodCallList = GenerateConsensusInitializationCallList()
            })).Output;
            ConsensusContractStub = GetConsensusContractTester(DefaultSenderKeyPair);
        }
예제 #3
0
        private async Task DeployContractsAsync()
        {
            var category = KernelConstants.CodeCoverageRunnerCategory;
            var code     = Codes.Single(kv => kv.Key.Split(",").First().EndsWith("Configuration")).Value;

            OptionalLogEventListeningService <IBlockAcceptedLogEventHandler> .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 parliamentAuthContractCode    = Codes.Single(kv => kv.Key.Split(",").First().EndsWith("ParliamentAuth")).Value;
            var parliamentAuthContractAddress = await DeploySystemSmartContract(category, parliamentAuthContractCode,
                                                                                ParliamentAuthSmartContractAddressNameProvider.Name, DefaultSenderKeyPair);

            _parliamentAuthStub = GetTester <ParliamentAuthContractContainer.ParliamentAuthContractStub>(parliamentAuthContractAddress,
                                                                                                         DefaultSenderKeyPair);

            await _parliamentAuthStub.Initialize.SendAsync(new InitializeInput
            {
                GenesisOwnerReleaseThreshold = 1,
                ProposerAuthorityRequired    = true,
                PrivilegedProposer           = Address.FromPublicKey(DefaultSenderKeyPair.PublicKey)
            });

            var chain = await _blockchainService.GetChainAsync();

            await _blockchainService.SetIrreversibleBlockAsync(chain, chain.BestChainHeight, chain.BestChainHash);
        }
예제 #4
0
        protected void InitializeContracts()
        {
            BasicContractZeroStub = GetContractZeroTester(DefaultSenderKeyPair);

            //deploy vote contract
            VoteContractAddress = AsyncHelper.RunSync(() =>
                                                      BasicContractZeroStub.DeploySystemSmartContract.SendAsync(
                                                          new SystemContractDeploymentInput
            {
                Category = KernelConstants.CodeCoverageRunnerCategory,
                Code     = ByteString.CopyFrom(File.ReadAllBytes(typeof(VoteContract).Assembly.Location)),
                Name     = VoteSmartContractAddressNameProvider.Name,
                TransactionMethodCallList = GenerateVoteInitializationCallList()
            })).Output;
            VoteContractStub = GetVoteContractTester(DefaultSenderKeyPair);

            //deploy token contract
            TokenContractAddress = AsyncHelper.RunSync(() =>
                                                       BasicContractZeroStub.DeploySystemSmartContract.SendAsync(
                                                           new SystemContractDeploymentInput
            {
                Category = KernelConstants.CodeCoverageRunnerCategory,
                Code     = ByteString.CopyFrom(File.ReadAllBytes(typeof(TokenContract).Assembly.Location)),
                Name     = TokenSmartContractAddressNameProvider.Name,
                TransactionMethodCallList = GenerateTokenInitializationCallList()
            })).Output;
            TokenContractStub = GetTokenContractTester(DefaultSenderKeyPair);

            //deploy parliament auth contract
            ParliamentAuthContractAddress = AsyncHelper.RunSync(() =>
                                                                BasicContractZeroStub.DeploySystemSmartContract.SendAsync(
                                                                    new SystemContractDeploymentInput
            {
                Category = KernelConstants.CodeCoverageRunnerCategory,
                Code     = ByteString.CopyFrom(File.ReadAllBytes(typeof(ParliamentAuthContract).Assembly.Location)),
                Name     = ParliamentAuthSmartContractAddressNameProvider.Name,
                TransactionMethodCallList = GenerateParliamentInitializationCallList()
            })).Output;
            ParliamentAuthContractStub = GetParliamentAuthContractTester(DefaultSenderKeyPair);
        }