Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        /// <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());
        }
Exemplo n.º 4
0
        /// <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());
        }