@@ -1747,11 +1747,6 @@ func (s *walletServer) PurchaseTickets(ctx context.Context,
17471747 PubKey : vspPubKey ,
17481748 Dialer : nil ,
17491749 Wallet : s .wallet ,
1750- Policy : vsp.Policy {
1751- MaxFee : 0.1e8 ,
1752- FeeAcct : req .Account ,
1753- ChangeAcct : req .ChangeAccount ,
1754- },
17551750 }
17561751 vspClient , err = loader .VSP (cfg )
17571752 if err != nil {
@@ -1844,7 +1839,14 @@ func (s *walletServer) PurchaseTickets(ctx context.Context,
18441839 }
18451840
18461841 if vspClient != nil {
1847- request .VSPFeePaymentProcess = vspClient .Process
1842+ policy := vsp.Policy {
1843+ MaxFee : 0.1e8 ,
1844+ FeeAcct : req .Account ,
1845+ ChangeAcct : req .ChangeAccount ,
1846+ }
1847+ request .VSPFeePaymentProcess = func (ctx context.Context , ticketHash * chainhash.Hash , feeTx * wire.MsgTx ) error {
1848+ return vspClient .Process (ctx , ticketHash , feeTx , policy )
1849+ }
18481850 request .VSPFeeProcess = vspClient .FeePercentage
18491851 }
18501852
@@ -2650,6 +2652,7 @@ func (t *ticketbuyerV2Server) RunTicketBuyer(req *pb.RunTicketBuyerRequest, svr
26502652 var vspHost string
26512653 var vspPubKey string
26522654 var vspClient * vsp.Client
2655+ var vspFeePolicy vsp.Policy
26532656 if req .VspHost != "" || req .VspPubkey != "" {
26542657 vspHost = req .VspHost
26552658 vspPubKey = req .VspPubkey
@@ -2664,16 +2667,16 @@ func (t *ticketbuyerV2Server) RunTicketBuyer(req *pb.RunTicketBuyerRequest, svr
26642667 PubKey : vspPubKey ,
26652668 Dialer : nil ,
26662669 Wallet : wallet ,
2667- Policy : vsp.Policy {
2668- MaxFee : 0.1e8 ,
2669- FeeAcct : req .Account ,
2670- ChangeAcct : req .Account ,
2671- },
26722670 }
26732671 vspClient , err = loader .VSP (cfg )
26742672 if err != nil {
26752673 return status .Errorf (codes .Unknown , "TicketBuyerV3 instance failed to start. Error: %v" , err )
26762674 }
2675+ vspFeePolicy = vsp.Policy {
2676+ MaxFee : 0.1e8 ,
2677+ FeeAcct : req .Account ,
2678+ ChangeAcct : req .Account ,
2679+ }
26772680 }
26782681 if req .BalanceToMaintain < 0 {
26792682 return status .Errorf (codes .InvalidArgument , "Negative balance to maintain given" )
@@ -2728,6 +2731,7 @@ func (t *ticketbuyerV2Server) RunTicketBuyer(req *pb.RunTicketBuyerRequest, svr
27282731 c .PoolFeeAddr = poolAddress
27292732 c .PoolFees = req .PoolFees
27302733 c .VSP = vspClient
2734+ c .VSPFeePolicy = vspFeePolicy
27312735 c .MixedAccount = mixedAccount
27322736 c .MixChange = mixedChange
27332737 c .CSPPServer = csppServer
@@ -3922,27 +3926,26 @@ func (s *walletServer) SyncVSPFailedTickets(ctx context.Context, req *pb.SyncVSP
39223926 if vspHost == "" {
39233927 return nil , status .Errorf (codes .InvalidArgument , "vsp host can not be null" )
39243928 }
3925- policy := vsp.Policy {
3926- MaxFee : 0.1e8 ,
3927- FeeAcct : req .Account ,
3928- ChangeAcct : req .ChangeAccount ,
3929- }
39303929 cfg := vsp.Config {
39313930 URL : vspHost ,
39323931 PubKey : vspPubKey ,
39333932 Dialer : nil ,
39343933 Wallet : s .wallet ,
3935- Policy : policy ,
39363934 }
39373935 vspClient , err := loader .VSP (cfg )
39383936 if err != nil {
39393937 return nil , status .Errorf (codes .Unknown , "TicketBuyerV3 instance failed to start. Error: %v" , err )
39403938 }
39413939
39423940 // process tickets fee if needed.
3941+ policy := vsp.Policy {
3942+ MaxFee : 0.1e8 ,
3943+ FeeAcct : req .Account ,
3944+ ChangeAcct : req .ChangeAccount ,
3945+ }
39433946 for _ , ticketHash := range failedTicketsFee {
39443947 feeTx := new (wire.MsgTx )
3945- err := vspClient .ProcessWithPolicy (ctx , & ticketHash , feeTx , policy )
3948+ err := vspClient .Process (ctx , & ticketHash , feeTx , policy )
39463949 if err != nil {
39473950 // if it fails to process again, we log it and continue with
39483951 // the wallet start.
@@ -3963,23 +3966,22 @@ func (s *walletServer) ProcessManagedTickets(ctx context.Context, req *pb.Proces
39633966 if vspHost == "" {
39643967 return nil , status .Errorf (codes .InvalidArgument , "vsp host can not be null" )
39653968 }
3966- policy := vsp.Policy {
3967- MaxFee : 0.1e8 ,
3968- FeeAcct : req .FeeAccount ,
3969- ChangeAcct : req .ChangeAccount ,
3970- }
39713969 cfg := vsp.Config {
39723970 URL : vspHost ,
39733971 PubKey : vspPubKey ,
39743972 Dialer : nil ,
39753973 Wallet : s .wallet ,
3976- Policy : policy ,
39773974 }
39783975 vspClient , err := loader .VSP (cfg )
39793976 if err != nil {
39803977 return nil , status .Errorf (codes .Unknown , "VSPClient instance failed to start. Error: %v" , err )
39813978 }
39823979
3980+ policy := vsp.Policy {
3981+ MaxFee : 0.1e8 ,
3982+ FeeAcct : req .FeeAccount ,
3983+ ChangeAcct : req .ChangeAccount ,
3984+ }
39833985 err = vspClient .ProcessManagedTickets (ctx , policy )
39843986 if err != nil {
39853987 return nil , status .Errorf (codes .Unknown , "ProcessManagedTickets failed. Error: %v" , err )
@@ -3999,17 +4001,11 @@ func (s *walletServer) ProcessUnmanagedTickets(ctx context.Context, req *pb.Proc
39994001 if vspHost == "" {
40004002 return nil , status .Errorf (codes .InvalidArgument , "vsp host can not be null" )
40014003 }
4002- policy := vsp.Policy {
4003- MaxFee : 0.1e8 ,
4004- FeeAcct : req .FeeAccount ,
4005- ChangeAcct : req .ChangeAccount ,
4006- }
40074004 cfg := vsp.Config {
40084005 URL : vspHost ,
40094006 PubKey : vspPubKey ,
40104007 Dialer : nil ,
40114008 Wallet : s .wallet ,
4012- Policy : policy ,
40134009 }
40144010 vspClient , err := loader .VSP (cfg )
40154011 if err != nil {
@@ -4025,14 +4021,19 @@ func (s *walletServer) ProcessUnmanagedTickets(ctx context.Context, req *pb.Proc
40254021 return nil
40264022 })
40274023 if errors .Is (err , errUnmanagedTickets ) {
4024+ policy := vsp.Policy {
4025+ MaxFee : 0.1e8 ,
4026+ FeeAcct : req .FeeAccount ,
4027+ ChangeAcct : req .ChangeAccount ,
4028+ }
40284029 vspClient .ProcessUnprocessedTickets (ctx , policy )
40294030 }
40304031
40314032 return & pb.ProcessUnmanagedTicketsResponse {}, nil
40324033}
40334034
40344035func (s * walletServer ) SetVspdVoteChoices (ctx context.Context , req * pb.SetVspdVoteChoicesRequest ) (
4035- * pb.SetVspdVoteChoicesResponse , error ) {
4036+ * pb.SetVspdVoteChoicesResponse , error ) { // TODO: Remove req.FeeAccount and req.ChangeAccount.
40364037
40374038 vspHost := req .VspHost
40384039 vspPubKey := req .VspPubkey
@@ -4042,17 +4043,11 @@ func (s *walletServer) SetVspdVoteChoices(ctx context.Context, req *pb.SetVspdVo
40424043 if vspHost == "" {
40434044 return nil , status .Errorf (codes .InvalidArgument , "vsp host can not be null" )
40444045 }
4045- policy := vsp.Policy {
4046- MaxFee : 0.1e8 ,
4047- FeeAcct : req .FeeAccount ,
4048- ChangeAcct : req .ChangeAccount ,
4049- }
40504046 cfg := vsp.Config {
40514047 URL : vspHost ,
40524048 PubKey : vspPubKey ,
40534049 Dialer : nil ,
40544050 Wallet : s .wallet ,
4055- Policy : policy ,
40564051 }
40574052 vspClient , err := loader .VSP (cfg )
40584053 if err != nil {
0 commit comments