Esempio n. 1
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");
            State.Initialized.Value = true;

            var proposerWhiteList = new ProposerWhiteList();

            if (input.PrivilegedProposer != null)
            {
                proposerWhiteList.Proposers.Add(input.PrivilegedProposer);
            }

            State.ProposerWhiteList.Value = proposerWhiteList;
            var organizationInput = new CreateOrganizationInput
            {
                ProposalReleaseThreshold = new ProposalReleaseThreshold
                {
                    MinimalApprovalThreshold   = DefaultOrganizationMinimalApprovalThreshold,
                    MinimalVoteThreshold       = DefaultOrganizationMinimalVoteThresholdThreshold,
                    MaximalAbstentionThreshold = DefaultOrganizationMaximalAbstentionThreshold,
                    MaximalRejectionThreshold  = DefaultOrganizationMaximalRejectionThreshold
                },
                ProposerAuthorityRequired        = input.ProposerAuthorityRequired,
                ParliamentMemberProposingAllowed = true
            };
            var defaultOrganizationAddress = CreateNewOrganization(organizationInput);

            State.DefaultOrganizationAddress.Value = defaultOrganizationAddress;
            return(new Empty());
        }
Esempio n. 2
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(State.TokenSymbol.Value == null, "Already initialized");
            State.TokenSymbol.Value = input.TokenSymbol;

            State.Admin.Value = Context.Sender;

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

            State.Price.Value         = input.Price == 0 ? DefaultPrice : input.Price;
            State.DrawingLag.Value    = input.DrawingLag == 0 ? DefaultDrawingLag : input.DrawingLag;
            State.MaximumAmount.Value = input.MaximumAmount == 0 ? MaximumBuyAmount : input.MaximumAmount;
            State.SelfIncreasingIdForLottery.Value = 1;

            State.CurrentPeriod.Value = 1;
            State.Periods[1]          = new PeriodBody
            {
                StartId     = State.SelfIncreasingIdForLottery.Value,
                BlockNumber = Context.CurrentHeight.Add(State.DrawingLag.Value),
                RandomHash  = Hash.Empty
            };

            return(new Empty());
        }
Esempio n. 3
0
        /// <summary>
        /// Initialize the contract information.
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public override Empty Initialize(InitializeInput input)
        {
            Assert(IsValidSymbol(input.BaseTokenSymbol), $"Base token symbol is invalid. {input.BaseTokenSymbol}");
            Assert(State.TokenContract.Value == null, "Already initialized.");
            State.TokenContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenContractSystemName);
            State.FeeReceiverAddress.Value =
                Context.GetContractAddressByName(SmartContractConstants.TreasuryContractSystemName);
            State.BaseTokenSymbol.Value = input.BaseTokenSymbol != string.Empty
                ? input.BaseTokenSymbol
                : Context.Variables.NativeSymbol;
            var feeRate = AssertedDecimal(input.FeeRate);

            Assert(IsBetweenZeroAndOne(feeRate), "Fee rate has to be a decimal between 0 and 1.");
            State.FeeRate.Value = feeRate.ToString(CultureInfo.InvariantCulture);
            foreach (var connector in input.Connectors)
            {
                if (connector.IsDepositAccount)
                {
                    AssertValidConnectorWeight(connector);
                }
                else
                {
                    AssertValidConnectorAndNormalizeWeight(connector);
                }
                State.Connectors[connector.Symbol] = connector;
            }

            return(new Empty());
        }
Esempio n. 4
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");
            State.Initialized.Value = true;
            var organizationInput = new CreateOrganizationInput
            {
                ReleaseThreshold = input.GenesisOwnerReleaseThreshold
            };

            var proposerWhiteList = new ProposerWhiteList();

            if (input.PrivilegedProposer != null)
            {
                proposerWhiteList.Proposers.Add(input.PrivilegedProposer);
            }

            State.ProposerWhiteList.Value = proposerWhiteList;

            var defaultOrganizationAddress = CreateOrganization(organizationInput);

            State.GenesisContract.Value            = Context.GetZeroSmartContractAddress();
            State.DefaultOrganizationAddress.Value = defaultOrganizationAddress;
            State.GenesisContract.ChangeGenesisOwner.Send(defaultOrganizationAddress);
            State.ProposerAuthorityRequired.Value = input.ProposerAuthorityRequired;

            return(new Empty());
        }
        /// <summary>
        /// Initialize the contract information.
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public override Empty Initialize(InitializeInput input)
        {
            Assert(input.TokenContractAddress != null, "Token contract address required.");
            Assert(input.FeeReceiverAddress != null, "Fee receiver address required.");
            Assert(IsValidSymbol(input.BaseTokenSymbol), "Base token symbol is invalid.");
            Assert(State.TokenContract.Value == null, "Already initialized.");
            State.TokenContract.Value      = input.TokenContractAddress;
            State.FeeReceiverAddress.Value = input.FeeReceiverAddress;
            State.BaseTokenSymbol.Value    = input.BaseTokenSymbol;
            State.ManagerAddress.Value     = input.ManagerAddress;
            var feeRate = AssertedDecimal(input.FeeRate);

            Assert(IsBetweenZeroAndOne(feeRate), "Fee rate has to be a decimal between 0 and 1.");
            State.FeeRate.Value = feeRate.ToString(CultureInfo.InvariantCulture);

            var index = State.ConnectorCount.Value;

            foreach (var connector in input.Connectors)
            {
                AssertValidConnectorAndNormalizeWeight(connector);
                State.ConnectorSymbols[index]      = connector.Symbol;
                State.Connectors[connector.Symbol] = connector;
                index = index.Add(1);
            }

            State.ConnectorCount.Value = index;
            return(new Empty());
        }
Esempio n. 6
0
 public override Empty Initialize(InitializeInput input)
 {
     Assert(!State.Initialized.Value, "Contract zero already initialized.");
     Assert(Context.Sender == Context.Self, "Unable to initialize.");
     State.ContractDeploymentAuthorityRequired.Value = input.ContractDeploymentAuthorityRequired;
     State.Initialized.Value = true;
     return(new Empty());
 }
Esempio n. 7
0
        //action
        public override Empty InitializeEvents(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");

            State.Initialized.Value = true;

            return(new Empty());
        }
Esempio n. 8
0
        /// <summary>
        /// Initializes this contract.
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public override Empty Initialize(InitializeInput input)
        {
            var initialized = State.Initialized.Value;

            Assert(!initialized, "Already initialized.");
            State.TokenContract.Value     = input.ElfTokenAddress;
            State.FoundationAddress.Value = input.FoundationAddress;
            State.Initialized.Value       = true;
            return(new Empty());
        }
Esempio n. 9
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(State.AdminAddress.Value == null, "Already initialized.");
            State.AdminAddress.Value         = input.AdminAddress;
            State.WriterTokenSymbol.Value    = input.WriterTokenSymbol;
            State.SubscribeTokenSymbol.Value = input.SubscribeTokenSymbol;

            State.TokenContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenContractSystemName);
            return(new Empty());
        }
 public override Empty Initialize(InitializeInput input)
 {
     Assert(!State.Initialized.Value, "MultiToken has been initialized");
     InitialParameters();
     foreach (var pair in input.ResourceAmount)
     {
         State.ResourceAmount[pair.Key] = pair.Value;
     }
     State.Initialized.Value = true;
     return(new Empty());
 }
Esempio n. 11
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");

            //State.AuthorizationContract.Value = authorizationContractAddress;
            State.Initialized.Value              = true;
            State.ParentChainId.Value            = input.ParentChainId;
            State.CurrentParentChainHeight.Value = input.CreationHeightOnParentChain - 1;

            return(new Empty());
        }
Esempio n. 12
0
        protected sealed override void beforeEach()
        {
            theInput = new InitializeInput()
            {
                DeploymentFlag = "Application1"
            };

            TheDeploymentDirectory = theInput.Settings.DeploymentDirectory;

            theContextIs();

            theReturnBooleanFlag = ClassUnderTest.Initialize(theInput, MockFor <IFileSystem>(), MockFor <ISimpleLogger>());
        }
Esempio n. 13
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");

            State.BasicContractZero.Value                = Context.GetZeroSmartContractAddress();
            State.ConsensusContractSystemName.Value      = input.ConsensusContractSystemName;
            State.TokenContractSystemName.Value          = input.TokenContractSystemName;
            State.ParliamentAuthContractSystemName.Value = input.ParliamentContractSystemName;
            //State.AuthorizationContract.Value = authorizationContractAddress;
            State.Initialized.Value   = true;
            State.ParentChainId.Value = input.ParentChainId;
            return(new Empty());
        }
Esempio n. 14
0
        public override Empty Initialize(InitializeInput input)
        {
            State.TokenHolderContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenHolderContractSystemName);
            State.TokenContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenContractSystemName);
            State.Symbol.Value         = input.Symbol == string.Empty ? "APP" : input.Symbol;
            State.ProfitReceiver.Value = input.ProfitReceiver;

            CreateToken(input.ProfitReceiver);
            CreateTokenHolderProfitScheme();
            SetProfitReceivingInformation(input.ProfitReceiver);
            return(new Empty());
        }
        public override Empty Initialize(InitializeInput input)
        {
            State.TokenContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenContractSystemName);
            State.TokenHolderContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenHolderContractSystemName);

            State.TokenHolderContract.CreateScheme.Send(new CreateTokenHolderProfitSchemeInput
            {
                Symbol             = Context.Variables.NativeSymbol,
                MinimumLockMinutes = input.MinimumLockMinutes
            });

            return(new Empty());
        }
Esempio n. 16
0
        public void Flush(FlushOptions options)
        {
            var input = new InitializeInput(_settings);

            if (options == FlushOptions.Wipeout)
            {
                input.ForceFlag = true;
            }

            new InitializeCommand().Execute(input);

            writeEnvironmentSettings();

            _recipes.Each(writeRecipe);
        }
Esempio n. 17
0
        //just for unit cases
        public override Empty InitializeForUnitTest(InitializeInput input)
        {
            State.TokenHolderContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenHolderContractSystemName);
            State.TokenContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenContractSystemName);
            State.DividendPoolContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.ConsensusContractSystemName);
            State.Symbol.Value         = input.Symbol == string.Empty ? "APP" : input.Symbol;
            State.ProfitReceiver.Value = input.ProfitReceiver;

            CreateToken(input.ProfitReceiver, true);
            // To test TokenHolder Contract.
            CreateTokenHolderProfitScheme();
            // To test ACS9 workflow.
            SetProfitConfig();
            State.ProfitReceiver.Value = input.ProfitReceiver;
            return(new Empty());
        }
Esempio n. 18
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");

            //State.AuthorizationContract.Value = authorizationContractAddress;
            State.Initialized.Value              = true;
            State.ParentChainId.Value            = input.ParentChainId;
            State.CurrentParentChainHeight.Value = input.CreationHeightOnParentChain - 1;
            if (Context.CurrentHeight != Constants.GenesisBlockHeight)
            {
                return(new Empty());
            }

            State.GenesisContract.Value = Context.GetZeroSmartContractAddress();
            State.GenesisContract.SetContractProposerRequiredState.Send(
                new BoolValue {
                Value = input.IsPrivilegePreserved
            });
            return(new Empty());
        }
        public override Empty Initialize(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");
            State.ParentChainId.Value            = input.ParentChainId;
            State.CurrentParentChainHeight.Value = input.CreationHeightOnParentChain - 1;
            State.IndexingPendingProposal.Value  = new ProposedCrossChainIndexing();

            CreateInitialOrganizationForInitialControllerAddress();
            State.Initialized.Value = true;

            if (Context.CurrentHeight != AElfConstants.GenesisBlockHeight)
            {
                return(new Empty());
            }

            State.GenesisContract.Value = Context.GetZeroSmartContractAddress();
            State.GenesisContract.SetContractProposerRequiredState.Send(
                new BoolValue {
                Value = input.IsPrivilegePreserved
            });
            return(new Empty());
        }
Esempio n. 20
0
        /// <summary>
        /// Initialize the contract information.
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public override Empty Initialize(InitializeInput input)
        {
            var initialized = State.Initialized.Value;

            Assert(!initialized, "Already initialized.");
            State.TokenContract.Value             = input.ElfTokenAddress;
            State.FeeAddress.Value                = input.FeeAddress;
            State.ResourceControllerAddress.Value = input.ResourceControllerAddress;
            foreach (var resourceType in _resourceTypes)
            {
                var rt = GetConverterKey(resourceType);
                State.Converters[rt] = new Converter()
                {
                    ElfBalance = 1000000,
                    ElfWeight  = 500000, // Denominated by 1,000,000
                    ResBalance = 1000000,
                    ResWeight  = 500000, // Denominated by 1,000,000
                    Type       = ParseResourceType(resourceType)
                };
            }

            State.Initialized.Value = true;
            return(new Empty());
        }
Esempio n. 21
0
        public override Empty Initialize(InitializeInput input)
        {
            Assert(!State.Initialized.Value, "Already initialized.");
            State.AssociationContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.AssociationContractSystemName);
            State.ConsensusContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.ConsensusContractSystemName);
            State.ParliamentContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.ParliamentContractSystemName);
            State.TokenContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.TokenContractSystemName);
            State.ProfitContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.ProfitContractSystemName);
            State.ReferendumContract.Value =
                Context.GetContractAddressByName(SmartContractConstants.ReferendumContractSystemName);

            State.ParliamentDefaultAddress.Value =
                State.ParliamentContract.GetDefaultOrganizationAddress.Call(new Empty());

            // Create Decentralized Autonomous Organization via Association Contract.
            var minerList = input.InitialMemberList != null && input.InitialMemberList.Any()
                ? new MemberList {
                Value = { input.InitialMemberList }
            }
                : new MemberList
            {
                Value =
                {
                    State.ConsensusContract.GetMinerList.Call(new GetMinerListInput {
                        TermNumber = 1
                    }).Pubkeys
                    .Select(p =>
                            Address.FromPublicKey(ByteArrayHelper.HexStringToByteArray(p.ToHex())))
                }
            };

            minerList.Value.Add(Context.Self);
            var createOrganizationInput = new CreateOrganizationInput
            {
                OrganizationMemberList = new OrganizationMemberList
                {
                    OrganizationMembers =
                    {
                        minerList.Value
                    }
                },
                ProposalReleaseThreshold = new ProposalReleaseThreshold
                {
                    MinimalApprovalThreshold = 1, MinimalVoteThreshold = 1
                },
                ProposerWhiteList = new ProposerWhiteList
                {
                    Proposers = { Context.Self }
                }
            };

            State.AssociationContract.CreateOrganization.Send(createOrganizationInput);
            // Record DAO Address and initial member list.
            State.OrganizationAddress.Value =
                State.AssociationContract.CalculateOrganizationAddress.Call(createOrganizationInput);
            State.DAOMemberList.Value = minerList;

            State.DAOInitialMemberList.Value = minerList;

            CheckAndUpdateDepositInfo(input.DepositInfo);

            AdjustDAOProposalReleaseThreshold();

            State.Initialized.Value = true;

            return(new Empty());
        }
Esempio n. 22
0
 void Start()
 {
     inst = this;
     ResetBoard();
 }
Esempio n. 23
0
 public override Empty Initialize(InitializeInput input)
 {
     State.Admin.Value = input.Admin;
     return(new Empty());
 }