Exemplo n.º 1
0
        public override Empty Unlock(UnlockInput input)
        {
            AssertLockAddress(input.Symbol, input.To);
            AssertValidToken(input.Symbol, input.Amount);
            var fromVirtualAddress = Hash.FromRawBytes(Context.Sender.Value.Concat(input.LockId.Value).ToArray());

            Context.SendVirtualInline(fromVirtualAddress, Context.Self, nameof(Transfer), new TransferInput
            {
                To     = input.From,
                Symbol = input.Symbol,
                Amount = input.Amount,
                Memo   = input.Usage,
            });
            return(new Empty());
        }
Exemplo n.º 2
0
        public override Empty Unlock(UnlockInput input)
        {
            AssertSystemContractOrLockWhiteListAddress(input.Symbol);
            Assert(Context.Origin == input.Address, "Unlock behaviour should be initialed by origin address.");
            AssertValidToken(input.Symbol, input.Amount);
            var fromVirtualAddress = HashHelper.ComputeFrom(Context.Sender.Value.Concat(input.Address.Value)
                                                            .Concat(input.LockId.Value).ToArray());

            Context.SendVirtualInline(fromVirtualAddress, Context.Self, nameof(Transfer), new TransferInput
            {
                To     = input.Address,
                Symbol = input.Symbol,
                Amount = input.Amount,
                Memo   = input.Usage,
            });
            return(new Empty());
        }
Exemplo n.º 3
0
 private void UnlockToken(UnlockInput unlockInput)
 {
     ValidateTokenContract();
     State.TokenContract.Unlock.Send(unlockInput);
 }