public override async Task <OperationResult <VoidResponse> > Vote(VoteModel 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))); } short weigth = 0; if (model.Type == VoteType.Up) { weigth = (short)(AppSettings.User.VotePower * 100); } if (model.Type == VoteType.Flag) { weigth = -10000; } var op = new VoteOperation(model.Login, model.Author, model.Permlink, weigth); return(await Broadcast(keys, new BaseOperation[] { op }, ct)); }
public VoteTemp(long blockNum, short trxNum, short opNum, VoteOperation operation) { BlockNum = blockNum; TrxNum = trxNum; OpNum = opNum; Login = operation.Author; Permlink = operation.Permlink; Voter = operation.Voter; Weight = operation.Weight; }
public override async Task <OperationResult <VoteResponse> > Vote(VoteModel model, CancellationToken ct) { return(await Task.Run(() => { if (!TryReconnectChain(ct)) { return new OperationResult <VoteResponse>(new ApplicationError(Localization.Errors.EnableConnectToBlockchain)); } var keys = ToKeyArr(model.PostingKey); if (keys == null) { return new OperationResult <VoteResponse>(new ApplicationError(Localization.Errors.WrongPrivatePostingKey)); } short weigth = 0; if (model.Type == VoteType.Up) { weigth = 10000; } if (model.Type == VoteType.Flag) { weigth = -10000; } var op = new VoteOperation(model.Login, model.Author, model.Permlink, weigth); var resp = _operationManager.BroadcastOperations(keys, ct, op); var result = new OperationResult <VoteResponse>(); if (!resp.IsError) { var dt = DateTime.Now; var content = _operationManager.GetContent(model.Author, model.Permlink, ct); if (!content.IsError) { //Convert Asset type to double result.Result = new VoteResponse(true) { NewTotalPayoutReward = content.Result.TotalPayoutValue + content.Result.CuratorPayoutValue + content.Result.PendingPayoutValue, NetVotes = content.Result.NetVotes, VoteTime = dt }; } } else { OnError(resp, result); } return result; }, ct)); }
public override async Task <OperationResult <VoidResponse> > Vote(VoteModel 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))); } short weigth = 0; if (model.Type == VoteType.Up) { weigth = 10000; } if (model.Type == VoteType.Flag) { weigth = -10000; } var op = new VoteOperation(model.Login, model.Author, model.Permlink, weigth); var resp = await _operationManager.BroadcastOperationsSynchronous(keys, ct, op); var result = new OperationResult <VoidResponse>(); if (resp.IsError) { result.Exception = new RequestException(resp); } else { result.Result = new VoidResponse(); } return(result); }
public override async Task <OperationResult <VoidResponse> > Vote(VoteModel model, CancellationToken ct) { return(await Task.Run(() => { if (!TryReconnectChain(ct)) { return new OperationResult <VoidResponse>(new AppError(LocalizationKeys.EnableConnectToBlockchain)); } var keys = ToKeyArr(model.PostingKey); if (keys == null) { return new OperationResult <VoidResponse>(new AppError(LocalizationKeys.WrongPrivatePostingKey)); } short weigth = 0; if (model.Type == VoteType.Up) { weigth = (short)(AppSettings.User.VotePower * 100); } if (model.Type == VoteType.Flag) { weigth = -10000; } var op = new VoteOperation(model.Login, model.Author, model.Permlink, weigth); var resp = _operationManager.BroadcastOperationsSynchronous(keys, ct, op); var result = new OperationResult <VoidResponse>(); if (!resp.IsError) { result.Result = new VoidResponse(); } else { OnError(resp, result); } return result; }, ct)); }
public async Task ProposalCreateOperationTest() { var user = User; const string autor = "joseph.kalu"; const string permlink = "test-s-russkimi-bukvami-2017-11-16-17-12-05"; var vop = new VoteOperation(user.Login, autor, permlink, VoteOperation.MaxUpVote); var op = new ProposalCreateOperation(User.Login, "test title", "test memo", DateTime.Now.AddSeconds(30)) { ReviewPeriodTime = DateTime.Now.AddSeconds(55), ProposedOperations = new[] { new OperationWrapper { Op = vop } } }; await Post(User.ActiveKeys, false, op).ConfigureAwait(false); }