コード例 #1
0
        public override Empty InitialEconomicSystem(InitialEconomicSystemInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");

            State.TokenContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenContractSystemName);

            Context.LogDebug(() => "Will create tokens.");
            CreateNativeToken(input);
            CreateResourceTokens();
            CreateElectionTokens();

            Context.LogDebug(() => "Finished creating tokens.");

            InitialMiningReward(input.MiningRewardTotalAmount);

            RegisterElectionVotingEvent();
            SetTreasurySchemeIdsToElectionContract();

            InitializeTokenConverterContract();
            State.TokenContract.InitialCoefficients.Send(new Empty());
            State.TokenContract.InitializeAuthorizedController.Send(new Empty());
            State.Initialized.Value = true;
            return(new Empty());
        }
コード例 #2
0
        private void CreateNativeToken(InitialEconomicSystemInput input)
        {
            State.TokenContract.Create.Send(new CreateInput
            {
                Symbol        = input.NativeTokenSymbol,
                TokenName     = "Native Token",
                TotalSupply   = input.NativeTokenTotalSupply,
                Decimals      = input.NativeTokenDecimals,
                IsBurnable    = input.IsNativeTokenBurnable,
                Issuer        = Context.Self,
                IsProfitable  = true,
                LockWhiteList =
                {
                    Context.GetContractAddressByName(SmartContractConstants.VoteContractSystemName),
                    Context.GetContractAddressByName(SmartContractConstants.ProfitContractSystemName),
                    Context.GetContractAddressByName(SmartContractConstants.ElectionContractSystemName),
                    Context.GetContractAddressByName(SmartContractConstants.TreasuryContractSystemName),
                    Context.GetContractAddressByName(SmartContractConstants.TokenConverterContractSystemName),
                    Context.GetContractAddressByName(SmartContractConstants.TokenHolderContractSystemName)
                }
            });

            State.TokenContract.SetPrimaryTokenSymbol.Send(new SetPrimaryTokenSymbolInput
            {
                Symbol = input.NativeTokenSymbol
            });
        }
コード例 #3
0
ファイル: EconomicContract.cs プロジェクト: zhxymh/AElf
 private void CreateNativeToken(InitialEconomicSystemInput input)
 {
     State.TokenContract.Create.Send(new CreateInput
     {
         Symbol        = input.NativeTokenSymbol,
         TokenName     = "Native Token",
         TotalSupply   = input.NativeTokenTotalSupply,
         Decimals      = input.NativeTokenDecimals,
         IsBurnable    = input.IsNativeTokenBurnable,
         Issuer        = Context.Self,
         LockWhiteList =
         {
             Context.GetContractAddressByName(SmartContractConstants.VoteContractSystemName),
             Context.GetContractAddressByName(SmartContractConstants.ProfitContractSystemName),
             Context.GetContractAddressByName(SmartContractConstants.ElectionContractSystemName),
             Context.GetContractAddressByName(SmartContractConstants.TreasuryContractSystemName),
             Context.GetContractAddressByName(SmartContractConstants.TokenConverterContractSystemName),
             Context.GetContractAddressByName(SmartContractConstants.ReferendumAuthContractSystemName)
         }
     });
     foreach (var symbol in Context.Variables.ResourceTokenSymbolNameList)
     {
         State.TokenContract.Create.Send(new CreateInput
         {
             Symbol        = EconomicContractConstants.NativeTokenPrefix + symbol,
             TokenName     = symbol + " Native Token",
             TotalSupply   = long.MaxValue,
             Decimals      = input.NativeTokenDecimals,
             IsBurnable    = input.IsNativeTokenBurnable,
             Issuer        = Context.Self,
             LockWhiteList =
             {
                 Context.GetContractAddressByName(SmartContractConstants.VoteContractSystemName),
                 Context.GetContractAddressByName(SmartContractConstants.ProfitContractSystemName),
                 Context.GetContractAddressByName(SmartContractConstants.ElectionContractSystemName),
                 Context.GetContractAddressByName(SmartContractConstants.TreasuryContractSystemName),
                 Context.GetContractAddressByName(SmartContractConstants.TokenConverterContractSystemName),
                 Context.GetContractAddressByName(SmartContractConstants.ReferendumAuthContractSystemName)
             }
         });
     }
 }