Ejemplo n.º 1
0
        public override Task StartPartyPaymentControlAsync(
            Swap swap,
            CancellationToken cancellationToken = default)
        {
            // initiator waits "accepted" event, acceptor waits "initiated" event
            var initiatedHandler = swap.IsInitiator
                ? new Action <Swap, CancellationToken>(SwapAcceptedEventHandler)
                : new Action <Swap, CancellationToken>(SwapInitiatedEventHandler);

            var lockTimeSeconds = swap.IsInitiator
                ? DefaultAcceptorLockTimeInSeconds
                : DefaultInitiatorLockTimeInSeconds;

            var refundTimeUtcInSec = new DateTimeOffset(swap.TimeStamp.ToUniversalTime().AddSeconds(lockTimeSeconds)).ToUnixTimeSeconds();

            TezosSwapInitiatedHelper.StartSwapInitiatedControlAsync(
                swap: swap,
                currency: Xtz,
                refundTimeStamp: refundTimeUtcInSec,
                interval: ConfirmationCheckInterval,
                initiatedHandler: initiatedHandler,
                canceledHandler: SwapCanceledEventHandler,
                cancellationToken: cancellationToken)
            .FireAndForget();

            return(Task.CompletedTask);
        }
Ejemplo n.º 2
0
        public override Task StartPartyPaymentControlAsync(
            Swap swap,
            CancellationToken cancellationToken = default)
        {
            Log.Debug("Start party payment control for swap {@swap}.", swap.Id);

            // initiator waits "accepted" event, acceptor waits "initiated" event
            var initiatedHandler = swap.IsInitiator
                ? new Func <Swap, CancellationToken, Task>(SwapAcceptedHandler)
                : new Func <Swap, CancellationToken, Task>(SwapInitiatedHandler);

            var lockTimeSeconds = swap.IsInitiator
                ? DefaultAcceptorLockTimeInSeconds
                : DefaultInitiatorLockTimeInSeconds;

            var refundTimeUtcInSec = new DateTimeOffset(swap.TimeStamp.ToUniversalTime().AddSeconds(lockTimeSeconds)).ToUnixTimeSeconds();

            _ = TezosSwapInitiatedHelper.StartSwapInitiatedControlAsync(
                swap: swap,
                currency: XtzConfig,
                refundTimeStamp: refundTimeUtcInSec,
                interval: ConfirmationCheckInterval,
                initiatedHandler: initiatedHandler,
                canceledHandler: SwapCanceledHandler,
                cancellationToken: cancellationToken);

            return(Task.CompletedTask);
        }
        public async void CanFindTezosInitiateTestAsync()
        {
            var swap = new Swap
            {
                PaymentTx = new TezosTransaction {
                    From = "tz1aKTCbAUuea2RV9kxqRVRg3HT7f1RKnp6a"
                },
                IsInitiative         = true,
                TimeStamp            = new DateTime(637778613995020000),
                Side                 = Side.Sell,
                Qty                  = 33.707563m,
                Price                = 0.02964706m,
                PartyRewardForRedeem = 0.004364m,
                PartyAddress         = "tz1g7tbzDQ3F63UTD1t5J7Hp9jTRdfC24BnK",
                SecretHash           = Hex.FromString("ca94a4eb75540fffd89658e1766af008cde7ba98c1b810886823302c64872fbf"),
                MakerNetworkFee      = 0,
            };

            var result = await TezosSwapInitiatedHelper.TryToFindPaymentAsync(
                swap : swap,
                currency : Common.XtzMainNet);

            Assert.Null(result.Error);
            //Assert.NotNull(result.Value);
        }
Ejemplo n.º 4
0
        public override async Task <Result <IBlockchainTransaction> > TryToFindPaymentAsync(
            Swap swap,
            CancellationToken cancellationToken = default)
        {
            var currency = Currencies
                           .GetByName(swap.SoldCurrency);

            return(await TezosSwapInitiatedHelper
                   .TryToFindPaymentAsync(
                       swap : swap,
                       currency : currency,
                       cancellationToken : cancellationToken)
                   .ConfigureAwait(false));
        }