예제 #1
0
        public override Empty InitializeDividendContract(InitialDividendContractInput input)
        {
            var consensusContractAddress = input.ConsensusContractSystemName;
            var tokenContractSystemName  = input.TokenContractSystemName;

            Assert(!State.Initialized.Value, "Already initialized.");
            State.BasicContractZero.Value           = Context.GetZeroSmartContractAddress();
            State.TokenContractSystemName.Value     = tokenContractSystemName;
            State.ConsensusContractSystemName.Value = consensusContractAddress;
            State.Initialized.Value = true;
            return(new Empty());
        }
예제 #2
0
        public async Task Initialize_Test()
        {
            var input = new InitialDividendContractInput
            {
                ConsensusContractSystemName = ConsensusSmartContractAddressNameProvider.Name,
                TokenContractSystemName     = TokenSmartContractAddressNameProvider.Name
            };
            var transactionResult = await Tester.ExecuteContractWithMiningAsync(DividendContractAddress,
                                                                                nameof(DividendContract.InitializeDividendContract), input);

            transactionResult.Status.ShouldBe(TransactionResultStatus.Mined);

            transactionResult = await Tester.ExecuteContractWithMiningAsync(DividendContractAddress,
                                                                            nameof(DividendContract.InitializeDividendContract), input);

            transactionResult.Status.ShouldBe(TransactionResultStatus.Failed);
            transactionResult.Error.Contains("Already initialized.").ShouldBeTrue();
        }