public override async Task <OperationResult <VoidResponse> > ClaimRewards(ClaimRewardsModel model, CancellationToken ct) { var isConnected = await TryReconnectChain(ct); if (!isConnected) { return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.EnableConnectToBlockchain))); } var keys = ToKeyArr(model.PostingKey); if (keys == null) { return(new OperationResult <VoidResponse>(new ValidationException(LocalizationKeys.WrongPrivatePostingKey))); } var assetSteem = new Asset(); assetSteem.FromOldFormat($"{model.RewardSteem} {Config.Steem}"); var assetSp = new Asset(); assetSp.FromOldFormat($"{(model.RewardSp / _vestsExchangeRatio.Value).ToString(CultureInfo.InvariantCulture) } {Config.Vests}"); var assetSbd = new Asset(); assetSbd.FromOldFormat($"{model.RewardSbd} {Config.Sbd}"); var op = new ClaimRewardBalanceOperation(model.Login, assetSteem, assetSbd, assetSp); return(await Broadcast(keys, new BaseOperation[] { op }, ct)); }
public async Task <OperationResult <VoidResponse> > ClaimRewards(ClaimRewardsModel model, CancellationToken ct) { var results = Validate(model); if (results != null) { return(new OperationResult <VoidResponse>(results)); } return(await _ditchClient.ClaimRewards(model, ct)); }
public async Task <Exception> TryClaimRewards(BalanceModel balance) { var claimRewardsModel = new ClaimRewardsModel(balance.UserInfo, balance.RewardSteem, balance.RewardSp, balance.RewardSbd); var response = await TryRunTask <ClaimRewardsModel, VoidResponse>(ClaimRewards, CancellationToken.None, claimRewardsModel); if (response.IsSuccess) { Balances.ForEach(x => { if (x.UserInfo.Chain == balance.UserInfo.Chain && x.UserInfo.Login.Equals(balance.UserInfo.Login, StringComparison.OrdinalIgnoreCase)) { x.RewardSteem = x.RewardSbd = x.RewardSp = 0; } }); await TryUpdateAccountInfo(balance.UserInfo); } return(response.Exception); }
public override Task <OperationResult <VoidResponse> > ClaimRewards(ClaimRewardsModel model, CancellationToken ct) { throw new NotImplementedException(); }
public abstract Task <OperationResult <VoidResponse> > ClaimRewards(ClaimRewardsModel model, CancellationToken ct);
private Task <OperationResult <VoidResponse> > ClaimRewards(ClaimRewardsModel claimRewardsModel, CancellationToken ct) { return(Api.ClaimRewards(claimRewardsModel, ct)); }