Пример #1
0
    public async Task ShowAsync(Gateway?selected)
    {
        _gateways = await GatewayListService.GetNetworkGateways();

        var network = FindNetwork(selected);
        var list    = FindGatewayList(network);

        _input = new SelectGatewayInput()
        {
            SelectedGateway = selected,
            SelectedNetwork = network,
            Networks        = _gateways.Keys.OrderBy(n => n).ToArray(),
            Gateways        = list
        };
        StateHasChanged();
    }
Пример #2
0
    public async Task ExecuteAsync(Gateway gateway, Address?payer, Func <Client, Task> executeFunction)
    {
        int txSequenceNo = OnStartTransaction();

        try
        {
            if (executeFunction is null)
            {
                throw new ArgumentNullException(nameof(executeFunction));
            }
            _isMainNetwork         = GatewayListService.IsMainNetwork(gateway);
            await using var client = RootClientService.RootClient.Clone(ctx =>
            {
                ctx.Gateway             = gateway;
                ctx.Payer               = payer;
                ctx.FeeLimit            = DefaultsService.FeeLimit;
                ctx.TransactionDuration = DefaultsService.TransactionDuration;
                ctx.RetryDelay          = Util.ComputeRetryDelay(DefaultsService.ReceiptWaitDuration, DefaultsService.ReceiptRetryCount);
                ctx.RetryCount          = DefaultsService.ReceiptRetryCount;
                ctx.OnSendingRequest    = SetupOnSendingRequest(txSequenceNo);
                ctx.OnResponseReceived  = SetupOnResponseReceived(txSequenceNo);
                ctx.Signatory           = SetupOnSignRequest(txSequenceNo);
            });
            await executeFunction(client);

            if (gateway != null)
            {
                DefaultsService.Gateway = gateway;
            }
            if (payer != null)
            {
                DefaultsService.Payer = payer;
            }
        }
        catch (Exception ex)
        {
            OnTransactionError(txSequenceNo, ex);
        }
        finally
        {
            OnTransactionFinished(txSequenceNo);
        }
    }