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()); }
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(); }