/// <summary> /// Transfer token form a chain to another chain /// burn the tokens at the current chain /// </summary> /// <param name="input"></param> /// <returns></returns> public override Empty CrossChainTransfer(CrossChainTransferInput input) { AssertValidToken(input.Symbol, input.Amount); AssertValidMemo(input.Memo); int issueChainId = GetIssueChainId(input.Symbol); Assert(issueChainId == input.IssueChainId, "Incorrect issue chain id."); var burnInput = new BurnInput { Amount = input.Amount, Symbol = input.Symbol }; Burn(burnInput); Context.Fire(new CrossChainTransferred { From = Context.Sender, To = input.To, Symbol = input.Symbol, Amount = input.Amount, IssueChainId = input.IssueChainId, Memo = input.Memo, ToChainId = input.ToChainId }); return(new Empty()); }
public override Empty CrossChainTransfer(CrossChainTransferInput input) { AssertValidToken(input.TokenInfo.Symbol, input.Amount); var burnInput = new BurnInput { Amount = input.Amount, Symbol = input.TokenInfo.Symbol }; Burn(burnInput); return(new Empty()); }
/// <summary> /// Transfer token form a chain to another chain /// burn the tokens at the current chain /// </summary> /// <param name="input"></param> /// <returns></returns> public override Empty CrossChainTransfer(CrossChainTransferInput input) { AssertValidToken(input.Symbol, input.Amount); int issueChainId = GetIssueChainId(input.Symbol); Assert(issueChainId == input.IssueChainId, "Incorrect issue chain id."); Assert(State.CrossChainTransferWhiteList[input.ToChainId] != null, "Invalid transfer target chain."); var burnInput = new BurnInput { Amount = input.Amount, Symbol = input.Symbol }; Burn(burnInput); return(new Empty()); }
/// <summary> /// Transfer token form a chain to another chain /// burn the tokens at the current chain /// </summary> /// <param name="input"></param> /// <returns></returns> public override Empty CrossChainTransfer(CrossChainTransferInput input) { AssertValidToken(input.Symbol, input.Amount); AssertValidMemo(input.Memo); int issueChainId = GetIssueChainId(input.Symbol); Assert(issueChainId == input.IssueChainId, "Incorrect issue chain id."); var burnInput = new BurnInput { Amount = input.Amount, Symbol = input.Symbol }; Burn(burnInput); return(new Empty()); }