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