コード例 #1
0
        public override Empty IssueNativeToken(IssueNativeTokenInput input)
        {
            Assert(input.ToSystemContractName != null, "To address not filled.");
            Assert(input.Symbol == State.NativeTokenSymbol.Value, "Invalid native token symbol.");
            var issueInput = new IssueInput
            {
                Symbol = input.Symbol,
                Amount = input.Amount,
                Memo   = input.Memo,
                To     = State.BasicContractZero.GetContractAddressByName.Call(input.ToSystemContractName)
            };

            return(Issue(issueInput));
        }
コード例 #2
0
ファイル: EconomicContract.cs プロジェクト: mzy666888/AElf
        /// <summary>
        /// Only contract owner of Economic Contract can issue native token.
        /// Mainly for testing.
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public override Empty IssueNativeToken(IssueNativeTokenInput input)
        {
            if (State.ZeroContract.Value == null)
            {
                State.ZeroContract.Value = Context.GetZeroSmartContractAddress();
            }

            var contractOwner = State.ZeroContract.GetContractAuthor.Call(Context.Self);

            if (contractOwner != Context.Sender)
            {
                return(new Empty());
            }

            State.TokenContract.Issue.Send(new IssueInput
            {
                Symbol = Context.Variables.NativeSymbol,
                Amount = input.Amount,
                To     = input.To,
                Memo   = input.Memo
            });
            return(new Empty());
        }