Example #1
0
        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));
        }
Example #2
0
        public async Task ClaimRewardBalanceOperationTest()
        {
            var steem = new Asset(1, Config.SteemAssetNumSteem);
            var sbd   = new Asset(1, Config.SteemAssetNumSbd);
            var vest  = new Asset(1, Config.SteemAssetNumVests);
            var op    = new ClaimRewardBalanceOperation(User.Login, steem, sbd, vest);

            await Post(User.PostingKeys, false, op).ConfigureAwait(false);
        }