Proto commits in decred/dcrwallet

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:7693a9e
Author:jholdstock
Committer:Josh Rickmar

rpcserver: Remove revokeTicket(s) gRPC.

The documentation is generated from this commit.

Commit:894e578
Author:jholdstock
Committer:Josh Rickmar

Remove CSPP server options. The CSPP server options have become redundant since the introduction of peer-to-peer mixing, but in some places the value of csppserver was still used to toggle mixing on/off. This behaviour is more properly implemented using a boolean. Breaking changes: - Removed deprecated configs `--csppserver` and `--csppserver.ca`. - `cspp_server` parameter replaced by `enable_mixing` in `purchasetickets` and `runticketbuyer` gRPCs. - `cspp_server` parameter removed from `runaccountmixer` gRPC.

Commit:1239e32
Author:jholdstock
Committer:Josh Rickmar

Dont allow ticket voting address override. Setting a specific voting address was an important part of purchasing a legacy stakepool ticket, however it is no longer necessary and providing these options only serves as a potential footgun which can lead to accidental address reuse. Now a new voting address is derived for every ticket, either from the voting account if one is specified, or from the purchase account if not. Breaking changes: 1. Config `--votingaddress` removed. 1. Param `ticket_address` removed from `PurchaseTickets` gRPC. 1. Param `voting_address` removed from `RunTicketBuyer` gRPC. 1. Param `ticketaddress` removed from `purchaseticket` json-RPC.

Commit:dfab814
Author:jholdstock
Committer:Josh Rickmar

multi: Remove references to v2 ticket buyer. There is currently only a single implementation of ticket buyer, and all references to old implementations have been removed. There is therefore no longer any need to reference v2 (or even v3) ticket buyers.

Commit:3f2760c
Author:jholdstock
Committer:Josh Rickmar

rpcserver: Remove TicketBuyerService from .proto The implementation of TicketBuyerService was removed by 3a690790e25fbb25fde15316a4d7c37821ee58ac, thus there is no reason to keep the API definition in the proto file.

Commit:b5b1b4d
Author:jholdstock
Committer:Josh Rickmar

multi: Remove stakepool ticket purchasing. It was possible to set legacy stakepool options either through config or through various RPC parameters, however the options either did nothing or enabled behaviour which is no longer valid. Breaking changes: 1. Removed PoolAddress and PoolFee parameters from gRPCs `purchasetickets` and `runticketbuyer` 1. Removed PoolAddress and PoolFee parameters from json-RPC `purchaseticket` 1. Removed config flags `--pooladdress` and `--poolfees`

Commit:5195fbb
Author:Josh Rickmar

Bump module to major version 5

Commit:5e8f132
Author:JoeGruffins
Committer:GitHub

wallet: Add birthday. Add a birthday state to the database than can be used when creating a new wallet to restore from a certain date or time.

Commit:4c69764
Author:JoeGruff
Committer:JoeGruff

rpc: Add parameters to PurchaseTickets. Add the VotingAccount and UseVotingAccount parameters and the VotingKeys return.

Commit:12b9c55
Author:JoeGruff
Committer:JoeGruff

rpc: Add DumpPrivateKey method type.

Commit:a333c1f
Author:JoeGruff
Committer:JoeGruff

rpc: Add address method type. Add grpc method that returns the address for an account at branch and index.

Commit:7352c1c
Author:bgptr
Committer:GitHub

rpc: Add TSpendPolicies and SetTSpendPolicy requests Remove the updateVSPVoteChoices function call from TreasuryPolicies and SetTSpendPolicy and in SetVspdVoteChoices function update all treasuryPolicies and tspendPolicies and not just the ones that related to a particalar ticket

Commit:7b3324d
Author:Josh Rickmar

Enable TreasuryPolicies and SetTreasuryPolicy RPCs These methods were backported in 833c46d002 but were incorrectly not added to the service definition, which resulted in calls to these RPCs erroring for being unimplemented.

Commit:833c46d
Author:Josh Rickmar

Add treasury spending requests This is a backport of 609d3c130a and 4d9ae6b7ba.

Commit:1998343
Author:Josh Rickmar

rpc: Add VSP host to the GetTicket response This will allow decrediton to now fetch saved VSP host of the vsp tickets by the GetTicket and GetTickets requests. This is a backport of 049a5d1bef.

Commit:049a5d1
Author:bgptr
Committer:GitHub

rpc: Add VSP host to the GetTicket response This will allow decrediton to now fetch saved VSP host of the vsp tickets by the GetTicket and GetTickets requests.

Commit:4d9ae6b
Author:bgptr
Committer:bgptr

address review comments - fix slice creation - use bytes for binary data

Commit:609d3c1
Author:bgptr
Committer:bgptr

add treasury spending requests

Commit:fd3aa65
Author:JoeGruffins
Committer:GitHub

multi: Add ability to import voting accounts. Voting accounts are exactly the same as derived accounts in all aspects except that they were not derived from same seed. As such they are treated almost the same way, with only a different type. Imported accounts are given an account number equal to one plus the last used imported account. The first imported account is "imported" so numbering starts after that one. Because we can derive private keys from imported xprivs even for a watching only wallet, exceptions to previous exceptions are made. Addresses derived from the importedVoting account type should never be sent any funds. The ImportVotingAccountFromSeed gRPC endpoint adds the ability to import an account with seed, password, name, and optional rescan and discover usage params.

Commit:ceec634
Author:jholdstock
Committer:Josh Rickmar

rpc: Add ImportExtendedPublicKey to gRPC. A method to import xpubs is already available on JSON-RPC, but nothing exists for gRPC.

Commit:502344a
Author:Jonathan Chappelow
Committer:Jonathan Chappelow

multi: migrate to the new stdscript package This migrates to the tagged txscript/v4 module, which uses script types and script parsing from the txscript/v4/stdscript package. This also updates to the following tagged dcrd modules; - addrmgr/v2.0.0 - blockchain/stake/v4.0.0 - blockchain/standalone/v2.0.0 - chaincfg/chainhash/v1.0.3 - chaincfg/v3.1.0 - connmgr/v3.1.0 - dcrutil/v4.0.0 - gcs/v3.0.0 - hdkeychain/v3.0.1 - rpc/jsonrpc/types/v3.0.0 - wire/v1.5.0 blockchain/v4.0.0 is not yet tagged, so it is updated to latest. The non-release versions of dcrec, blake256, and certgen contain only comment typo fixes and other changes that have no actual effect. As such, this goes back to the latest tagged versions of these modules. github.com/decred/slog is also updated from v1.1.0 to v1.2.0 Actual script versions are used when they are available. When they are not available, a scriptVersionAssumed const is used. gRPC: script class translation, docs update, and minor bump The script classes from stdscript are now translated by the ValidateAddress and DecodeTransation handlers to keep the responses stable since the new stdscript types are now more fine-grained. The tgen and tadd script types are added to both script type enums. The gRPC server version is bumped from 7.12.0 to 7.13.0. An example gRPC client app is added in rpc/grpc_example.

Commit:d3e3ef3
Author:Alex Yocom-Piatt
Committer:GitHub

vsp: Various fixes for proper ticket processing This adds the confirmed status for VSP tickets and fixes some issues that arose for confirming/processing managed tickets.

Commit:8815838
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add RevokeTicket grpc for SPV mode This will now allow users to Revoke missed tickets while wallets are in SPV mode. The user may have to abandon the revoke transaction if it wasn't actually able to be revoked (and is therefore invalid).

Commit:1d5df9e
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add DiscoverUsage request

Commit:f6921ef
Author:Matheus Degiovani

[release-v1.6] multi: Expose vspd tracked tickets This adds a new gRPC endpoint GetTrackedVSPTickets that exposes information about the current state of the internal VSP client. The gRPC API and server were bumped to version 7.9.0.

Commit:013eae7
Author:Matheus Degiovani
Committer:Josh Rickmar

multi: Expose vspd tracked tickets This adds a new gRPC endpoint GetTrackedVSPTickets that exposes information about the current state of the internal VSP client. The gRPC API and server were bumped to version 7.9.0.

Commit:460fb13
Author:Alex Yocom-Piatt

[release-v1.6] rpc: Add ChangeAccount to SyncVSPFailedTickets

Commit:7cc7109
Author:Alex Yocom-Piatt
Committer:Josh Rickmar

rpc: Add ChangeAccount to SyncVSPFailedTickets

Commit:8d48f9c
Author:Josh Rickmar

Fixup whitespace in api.proto This removes a stray tab at the end of a line, and adds a newline at the end of the file.

Commit:4f15464
Author:Alex Yocom-Piatt

[release-v1.6] rpc: Add AccountUnlocked request

Commit:95211bb
Author:Josh Rickmar

[release-v1.6] rpc: Add SetVspdVoteChoice request This command connects with the provided VSP host/pubkey and updates any ticket voting choice that VSP may control for the wallet.

Commit:1f2b4f5
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add SetVspdVoteChoice request This command connects with the provided VSP host/pubkey and updates any ticket voting choice that VSP may control for the wallet.

Commit:8d548cb
Author:Alex Yocom-Piatt
Committer:Josh Rickmar

rpc: Add AccountUnlocked request

Commit:661e6f5
Author:Alex Yocom-Piatt

[release-v1.6] rpc: Add ProcessManaged and ProcessUnmanagedTicket requests These allow for processing of tickets that have either errored or missed being processed by a VSP. Typically used for restoring from seed.

Commit:a9c43eb
Author:Alex Yocom-Piatt
Committer:Alex Yocom-Piatt

rpc: Add ProcessManaged and ProcessUnmanagedTicket requests These allow for processing of tickets that have either errored or missed being processed by a VSP. Typically used for restoring from seed.

Commit:083d73e
Author:Alex Yocom-Piatt
Committer:Josh Rickmar

rpc: Add cspp fields to RunTicketBuyerRequest

Commit:fdc4bf4
Author:VcTT
Committer:GitHub

Add VSP fee processing status; allow later processing

Commit:c060887
Author:VcTT
Committer:GitHub

Add GetPeerInfo into grpc

Commit:7baaf29
Author:Josh Rickmar

Add gRPC WalletService methods to lock/unlock wallet These methods will allow the wallet to be persistently unlocked for a period of time, during which other gRPC methods which use wallet private keys may be performed without necessarily providing the passphrase in each request. While here, add the missing documentation for the UnlockAccount/LockAccount methods, and bump the API minor version.

Commit:9f86f53
Author:vctt94
Committer:Josh Rickmar

Add limit to start ticket auto buyer grpc call

Commit:88b3d61
Author:vctt94

Add grpc commands to lock per account

Commit:47fbd2e
Author:vctt94
Committer:Josh Rickmar

Add vsphost and pubkey into grpc server

Commit:b4816a9
Author:VcTT
Committer:GitHub

Export vsp grpc params to start ticket auto buyer

Commit:d1e7e1c
Author:VcTT
Committer:GitHub

Add RPCs to detect possible coinjoins across all accounts

Commit:50d4f24
Author:vctt94
Committer:Josh Rickmar

Add coinjoin params to PurchaseTicketsRequest grpc

Commit:3173f61
Author:Matheus Degiovani
Committer:Matheus Degiovani

rpc: Add GetRawBlocks and GetCFilters gRPC methods This adds the GetCFilters method to the WalletService gRPC service. This allows clients to fetch the wallet-stored and header-validated version 2 committed filters so that non-wallet-related transactions can be searched for. It also adds a new service (NetworkService) with a GetRawBlock call. The service is intended to be used for calls which fetch or push data that might not be backed by the wallet into the P2P network. This particular method is useful for external callers to fetch a full block after they have determined it (probably) contains transactions they are interested in by checking the respective cfilter.

Commit:f1aa4c3
Author:Wisdom Arerosuoghene
Committer:GitHub

Add capability to save per-ticket vote preferences Add optional `tickethash` parameter to the `getvotechoices`, `setvotechoice` json-rpc methods and `VoteChoices`, `SetVoteChoices` gRPC `VotingService` methods. If either `setvotechoice` methods is called with the `tickethash` parameter set, the specified voting preferences will be recorded for that ticket alone, otherwise the specified voting prefs would be saved to the default preference store. Per-ticket voting preferences override voting preferences in the default store when voting. Similarly, if either `getvotechoices` method is called with a `tickethash` parameter, the individual choices for that ticket are returned. If no ticket-specific choices were previously saved for the ticket, the default preferences are returned.

Commit:26439da
Author:Josh Rickmar

Implement WalletService.AbandonTransaction gRPC method

Commit:3710c8d
Author:Peter Banik
Committer:Peter Banik

Added go_package option

Commit:77289db
Author:Matheus Degiovani
Committer:Matheus Degiovani

Switch DetachedBlocks ntfn to report header This switches the notification server to report the full block header of detached blocks instead of just the hash. This is more flexible for callers which need more information from a detached block and would not be able to obtain it from the wallet given that after the notification is triggered the detached blocks are rolled back from the wallet db. This also modifies the appropriate gRPC endpoint to return this information. Additionally, it adds the previous block hash to the BlockDetails gRPC message.

Commit:9278d48
Author:Josh Rickmar
Committer:David Hill

Allow queries of txs spending wallet outputs. The wallet database records which transactions and inputs spend wallet outputs, but this information was not querably through the wallet's internal APIs or the RPC servers. A new gRPC method WalletService.Spender is added which queries the transaction and input index of any transaction (unmined or in the main chain) which spends an output relevant to the wallet. Spenders of outputs which are not relevant to the wallet can not be queried through this API.

Commit:02ccb98
Author:Mike Belopuhov
Committer:David Hill

Don't append SigHashType to generated signatures

Commit:8823ed3
Author:Mike Belopuhov
Committer:David Hill

Add SignHashes RPC

Commit:e5c3846
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add AccountMixerService (#1635)

Commit:9050490
Author:vctt94

Add DontSignTx parameter to purchaseticket rpc and grpc methods. With this new parameter it is possible for hot wallets to create unsigned transactions which a cold wallet can later sign. Now watching wallets and hardware wallets can better deal with tickets purchase.

Commit:1f70ad5
Author:Matheus Degiovani
Committer:Matheus Degiovani

rpc: Add account xpriv export function This adds the GetAccountExtendedPrivKey gRPC call to the WalletService. This call can be used to export the extended private key of an account after unlocking the wallet. The rpc version has been bumped to version 7.2.0.

Commit:955f880
Author:ReevesAk
Committer:Josh Rickmar

gRPC: add CoinType() method (#1499)

Commit:0988aa6
Author:Josh Rickmar
Committer:Josh Rickmar

Remove gRPC methods that are obsoleted by RpcSync. The removed methods of the WalletService are: * StartConsensusRpc * DiscoverAddresses * SubscribeToBlockNotifications * FetchHeaders * FetchMissingCFilters The API major version is bumped to 7 for this breaking change.

Commit:f65b79c
Author:David Hill
Committer:Josh Rickmar

multi: fix misspellings

Commit:b39782a
Author:Donald Adu-Poku

multi: add SweepAccount gRPC.

Commit:193c476
Author:Donald Adu-Poku

multi: Add GetTicket grpc.

Commit:792a447
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add RunTicketBuyer rpc for v2 (#1307) This commit adds the ability to start the ticketbuyer v2 that was recently added. This makes the process of starting and stopping the ticketbuyer v2 much simpler than it's v1 counterpart. This also will allow users to start multiple ticketbuyers per account if they would like.

Commit:ca582da
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add unspent field to StakeInfo response (#1322)

Commit:0374678
Author:Matheus Degiovani
Committer:Josh Rickmar

grpc: return index and branch of key on ValidateAddress (#1189)

Commit:1eee706
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add RpcSync rpc command (#1284) This command allows for syncing the wallet to a connected consensus server via rpc. It requires that the user supplies proper rpc connection credentials and a valid certificate. Once connected the wallet will provide notifications in the same for as SpvSync. Fetching headers and missing cfilters progress, discovering addresses and rescanning notifications will be sent to the stream. After all the steps are complete, a final Synced notifications will be sent.

Commit:13e866b
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add notifications for SpvSync stream response (#1244) This adds more notifications for the basic SpvSync response stream. Now instead of simply getting a "synced" message, the stream consumer will receive information about fetching headers and missing cfilters, discovering addresses, rescanning for transactions, peer information, and finally whether the wallet is synced to its peers.

Commit:30d1c02
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: Add SpvSync request (#1221) This request allows a wallet set to --nointialload to use the recently added spv functionality. A long-lived response stream will be used to return various notifications about the state of the wallet syncing. For this initial version, we simply provide when the wallet is synced or unsynced. Users also may choose to set the spv_connect option to use persitent peers instead of relying on DNS seeders to finds peers. Also, there is a discover_accounts boolean (which requires private_passphrase to be set), that will search for any used accounts, which is typically done during restoring from seed.

Commit:3607792
Author:Alex Yocom-Piatt
Committer:GitHub

various: Updates for proper syncing via grpc for version 5.0.0 This allows dcrwallet to be synced via requests over grpc in normal mode. Added FetchMissingCFilters request, because committed filters are required for both spv and normal mode. RescanPoint is a new request that provides the last place the wallet had been rescanned. This allows for more efficient rescanning and discovering addresses requests. DiscoverAddressRequest now allows for a starting_block_hash to be set, which works well in conjunction with the newly added RescanPoint request. The existing GetTickets wallet function has been renamed to GetTicketPrecise. The current GetTickets function does not have a chain client argument which means it is no longer able to determine whether unspent tickets have been missed.

Commit:fa057ea
Author:VcTT
Committer:Josh Rickmar

grpc: Add GetAccountExtendedKey command (#1200)

Commit:69f2e3b
Author:Matheus Degiovani
Committer:Josh Rickmar

[grpc] return ChangeIndex on ConstructTransaction (#1188)

Commit:695a885
Author:Donald Adu-Poku
Committer:Josh Rickmar

rpc: Remove input indexes field from SignTransactionRequest. (#1113) Reserving this field because signing as many inputs as possible and reporting what can not be signed is the best approach for this api.

Commit:3b29ecc
Author:Donald Adu-Poku
Committer:Josh Rickmar

Add SignTransactions gRPC. (#1112)

Commit:1d9edc6
Author:Donald Adu-Poku
Committer:Josh Rickmar

multi: add CreateWatchingOnlyWallet gRPC. (#1102)

Commit:53457be
Author:Donald Adu-Poku
Committer:Josh Rickmar

rpc: Add WalletService.BestBlock gRPC method. (#1090)

Commit:b7c4ae2
Author:Josh Rickmar
Committer:Josh Rickmar

Add minimal block details to GetTransaction result. This is a minor API update to the gRPC WalletService service which adds the number of block confirmations and a block hash to the GetTransaction response. Futher details about the block can be queried using the block hash if needed and non-null.

Commit:a7385ce
Author:Josh Rickmar
Committer:Josh Rickmar

Add approves_parent fields to gRPC block messages. This allows checking whether the regular transactions in the parent block are stake approved or not, and has been added to the BlockDetails and BlockInfoResponse messages.

Commit:6fda4a1
Author:Marco Peereboom
Committer:Marco Peereboom

Add addresses to the CommittedTicketsResponse

Commit:8341f10
Author:Marco Peereboom
Committer:Marco Peereboom

Add CommittedTickets and SignMessages commands. CommittedTickets returns the matching ticket purchase hashes for which the largest commitment is controlled by this wallet. SignMessages signs multiple messages in a single shot with a single wallet unlock.

Commit:a47b29d
Author:Matheus Degiovani
Committer:Josh Rickmar

grpc: switch to paginated GetTickets (#1026) This changes the GetTickets grpc call to send tickets as soon as they are available, instead of building an in-memory list of tickets. It adds the block the ticket was mined to the responses. It also adds a new target_ticket_count request parameter to allow clients to paginate the ticket set.

Commit:1aa5fc1
Author:Donald Adu-Poku
Committer:Josh Rickmar

multi: add UnspentOutputs grpc. (#1048)

Commit:d30a472
Author:Donald Adu-Poku
Committer:Josh Rickmar

rpc: add publishunminedtransactions rpc. (#1033) this rpc rebroadcasts all unmined transactions to the consensus daemon.

Commit:739c0b2
Author:Matheus Degiovani
Committer:Josh Rickmar

grpc: add pagination support to GetTransactions (#988) This changes the behaviour of the WalletService.GetTransactions grpc call, from creating an in-memory array to streaming the transactions as they are fetched from the db. It also adds a new parameter to the call, target_transaction_count to limit the amount of transactions returned and allow clients to better paginate transaction listing.

Commit:27b5ac8
Author:Donald Adu-Poku
Committer:Josh Rickmar

rpc: add ValidateAddress grpc request (#970)

Commit:c1a4978
Author:Matheus Degiovani
Committer:Josh Rickmar

Add DecodeMessage grpc service (#981)

Commit:c51ca68
Author:Alex Yocom-Piatt
Committer:GitHub

rpc: add GetTickets command (#957)

Commit:cf61b0c
Author:Donald Adu-Poku
Committer:Alex Yocom-Piatt

rpc: add unconfirmed to BalanceResponse message. (#921)

Commit:882440f
Author:Josh Rickmar
Committer:Josh Rickmar

Add gRPC to create raw tx input signatures. This is useful for RPC clients that require creating non-standard input scripts.

Commit:2f90565
Author:Josh Rickmar
Committer:Josh Rickmar

Add offline signing support to the gRPC server. Offline signing requires previous outputs to be provided in the RPC request since the offline wallet is not otherwise aware of the outputs spent by the transaction.

Commit:23de60c
Author:Josh Rickmar
Committer:Josh Rickmar

Add VerifyMessage support to the gRPC server. While here, improve the error handling for SignMessage so that it returns an InvalidArgument error code for any addresses that are not secp256k1 P2PK or P2PKH.

Commit:47310ff
Author:Josh Rickmar
Committer:Josh Rickmar

Add message signing support to the gRPC WalletService. This method is analogous to the signmessage JSON-RPC. Since it requires wallet signatures, it is part of the WalletService.

Commit:d5a6fe8
Author:Josh Rickmar
Committer:Josh Rickmar

Add WalletService.GetTransaction RPC. This RPC allows wallet transactions to be queried by their transaction hash.

Commit:5d056c9
Author:Alex Yocom-Piatt
Committer:GitHub

Change to use immature_stake_generation instead (#802)

Commit:3ef20be
Author:Alex Yocom-Piatt
Committer:GitHub

Add other balance fields to BalanceResponse to match json/rpc (#801)

Commit:3076efd
Author:Josh Rickmar
Committer:Josh Rickmar

Allow specification of gap limit policy as RPC parameter. This change is only applied to the WalletService.NextAddress RPC for now, but will be added to the getnewaddress JSON-RPC in an upcoming commit as well.

Commit:ae00abf
Author:Josh Rickmar
Committer:Josh Rickmar

Add BlockInfo RPC to query block info by height or hash.

Commit:246efed
Author:Josh Rickmar
Committer:Josh Rickmar

Add block identifiers to confirmation notifications.

Commit:30e3e7f
Author:Josh Rickmar
Committer:Josh Rickmar

Add RPC to watch for transaction notifications.

Commit:cdb70e8
Author:Josh Rickmar
Committer:Josh Rickmar

Provide means to confirm imported scripts are redeemable. The WalletService.ImportScript RPC request message has gained a new field to indicate that the RPC should error out early and not import the script if the wallet does not have enough of the required secrets to redeem a multisig script. The response message has gained fields for the P2SH address created from the imported script and a bool for whether an imported script (where the script was not required to be redeemable in the request) is known to be redeemable anyways.

Commit:efea1f9
Author:Josh Rickmar

Add coinbase type to TransactionDetails message.

Commit:3db83f1
Author:Josh Rickmar
Committer:Josh Rickmar

Add RPC to revoke missed and/or expired tickets.