{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":263679144,"defaultBranch":"master","name":"vspd","ownerLogin":"decred","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-05-13T16:06:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/16297194?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1720531287.0","currentOid":""},"activityList":{"items":[{"before":"85e992e5206f872ccbb2e935b33d3ea379e50f17","after":"690b06412acef0024621974e9f0facea44315617","ref":"refs/heads/master","pushedAt":"2024-09-05T09:31:37.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"ci: Update tested go versions to 1.22 and 1.23.","shortMessageHtmlLink":"ci: Update tested go versions to 1.22 and 1.23."}},{"before":"a80e40d6502b31a02f232be16b4c6e1d18de1c19","after":"85e992e5206f872ccbb2e935b33d3ea379e50f17","ref":"refs/heads/master","pushedAt":"2024-07-24T15:46:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"main: Use tagged client/v4.","shortMessageHtmlLink":"main: Use tagged client/v4."}},{"before":"63b2a6117dcae4a910530b4f0049e926e3a1526b","after":"a80e40d6502b31a02f232be16b4c6e1d18de1c19","ref":"refs/heads/master","pushedAt":"2024-07-17T09:20:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"v3tool: Continue if a ticket already has paid fee.\n\nv3tool will now attempt to register all tickets with the VSP rather\nthan immediately exiting if one of the tickets already has a paid fee.","shortMessageHtmlLink":"v3tool: Continue if a ticket already has paid fee."}},{"before":"aa8d2a34ea6e3370631ca60104f25b792313f92d","after":"63b2a6117dcae4a910530b4f0049e926e3a1526b","ref":"refs/heads/master","pushedAt":"2024-07-08T13:52:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dajohi","name":"David Hill","path":"/dajohi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3308193?s=80&v=4"},"commit":{"message":"Use latest golangci-lint release and update linter list. (#484)\n\n* ci: Update linter to 1.59.1.\r\n\r\nAlso remove deprecated linter \"vetshadow\", its functionality is now\r\nincluded in the \"govet\" linter.\r\n\r\n* ci: Add new linters.\r\n\r\n- fatcontext - Detects nested contexts in loops.\r\n- mirror - Reports wrong mirror patterns of bytes/strings usage.\r\n- nilnil - Checks that there is no simultaneous return of nil error and\r\n an invalid value.\r\n- usestdlibvars - detect the possibility to use variables/constants from\r\n the Go standard library.","shortMessageHtmlLink":"Use latest golangci-lint release and update linter list. (#484)"}},{"before":"906ffc9e88340cadb6ab5497e16530c636b0f4dd","after":"aa8d2a34ea6e3370631ca60104f25b792313f92d","ref":"refs/heads/master","pushedAt":"2024-07-08T13:52:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dajohi","name":"David Hill","path":"/dajohi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3308193?s=80&v=4"},"commit":{"message":"Use tagged types/v3 and update some other dependencies. (#483)\n\n* client: Use tagged types/v3.\r\n\r\n* main: Use tagged types/v3.\r\n\r\n* client: Update to txscript 4.1.1.\r\n\r\n* multi: Update transitive deps.","shortMessageHtmlLink":"Use tagged types/v3 and update some other dependencies. (#483)"}},{"before":"fef56a24a02841ed00a4bb4d8d4ff8f3d67c4337","after":"906ffc9e88340cadb6ab5497e16530c636b0f4dd","ref":"refs/heads/master","pushedAt":"2024-06-30T08:22:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"multi: Consider DCP0012 in VSP fee calculations.\n\nUpgrade the dcrwallet dependency to pick up the new version of\ntxrules.StakePoolTicketFee which considers the status of DCP0012 in its\nfee calculation.","shortMessageHtmlLink":"multi: Consider DCP0012 in VSP fee calculations."}},{"before":"cab405871090fce65ffb63098adb532a9e289a1a","after":"fef56a24a02841ed00a4bb4d8d4ff8f3d67c4337","ref":"refs/heads/master","pushedAt":"2024-06-30T08:16:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"vote-validator: Use stdlib built-in \"POST\" const.","shortMessageHtmlLink":"vote-validator: Use stdlib built-in \"POST\" const."}},{"before":"1fa81d3697251611d002c553bab038dc71f9d3a8","after":"cab405871090fce65ffb63098adb532a9e289a1a","ref":"refs/heads/master","pushedAt":"2024-06-27T08:20:32.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"vspadmin: Add retirexpub command.\n\nThe new command opens an existing vspd database and replaces the\ncurrently used xpub with a new one.","shortMessageHtmlLink":"vspadmin: Add retirexpub command."}},{"before":"4e5fec8f3ba622dc814eaed6ed523cd08f155ec6","after":"1fa81d3697251611d002c553bab038dc71f9d3a8","ref":"refs/heads/master","pushedAt":"2024-06-19T08:56:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"vspadmin: Reject private keys in fee xpub config.\n\nThe provided key should always be a public key, enforcing this in\nsoftware provides an extra safety net for users.","shortMessageHtmlLink":"vspadmin: Reject private keys in fee xpub config."}},{"before":"0633260a3c498778f2e41803450f60a461748dc2","after":"4e5fec8f3ba622dc814eaed6ed523cd08f155ec6","ref":"refs/heads/master","pushedAt":"2024-06-19T08:35:41.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"vspadmin: Write default config file.\n\nA new command in vspadmin writes the default config file for a new vspd\ndeployment. The behaviour is removed from vspd and documentation has\nbeen updated to reflect the change.","shortMessageHtmlLink":"vspadmin: Write default config file."}},{"before":"be31d54dacf25357d2f177a3e8b1d921e7da5c4b","after":"0633260a3c498778f2e41803450f60a461748dc2","ref":"refs/heads/master","pushedAt":"2024-06-11T10:26:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"database: Combine xpub and index concepts.\n\nFee xpub key and last used address index are now wrapped into a struct,\r\nwith both fields being set and retrieved together rather than\r\nindividually.\r\n\r\nThe underlying format for storing these values in the database does not\r\nchange. The only change is the interface between the database code and\r\nthe caller.","shortMessageHtmlLink":"database: Combine xpub and index concepts."}},{"before":"1a2b02466ca60369e5a191102ca173246606ad96","after":"be31d54dacf25357d2f177a3e8b1d921e7da5c4b","ref":"refs/heads/master","pushedAt":"2024-06-07T12:10:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"database: Don't run unnecessary upgrades.\n\nNew databases are now created at the latest version by default, rather\nthan being version 1 and immediately requiring all upgrades to be\nexecuted.","shortMessageHtmlLink":"database: Don't run unnecessary upgrades."}},{"before":"ba5b1b2990ea1bca9a0688c74c67211a634dac29","after":"1a2b02466ca60369e5a191102ca173246606ad96","ref":"refs/heads/master","pushedAt":"2024-05-30T07:41:10.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"vspd: Wrap RPC connection details in a struct.\n\nReturning a single struct which contains multiple named fields reduces\nthe chance of a mistake in the calling code, as compared to returning\nmultiple unnamed values which are all of the same type.","shortMessageHtmlLink":"vspd: Wrap RPC connection details in a struct."}},{"before":"1720fd206282086c996c6bbca0aebd688c866bc2","after":"ba5b1b2990ea1bca9a0688c74c67211a634dac29","ref":"refs/heads/master","pushedAt":"2024-05-29T10:02:50.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"types: Remove Revoked from VSP info response.\n\nThis was marked as deprecated in the previous release and is now being\nremoved.","shortMessageHtmlLink":"types: Remove Revoked from VSP info response."}},{"before":"6e558fb2833fe853ce48ac6a2ffa3af75f6981d2","after":"1720fd206282086c996c6bbca0aebd688c866bc2","ref":"refs/heads/master","pushedAt":"2024-05-29T10:02:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"ci: Simplify run_test.sh script.\n\nRun tests and linters against a hard-coded set of local submodules\ninstead of attempting to find submodules dynamically.\n\nWhile this has the obvious drawback of needing to manually update the\nlist of submodules, it greatly simplifies the script by removing a bunch\nof regexes and string manipulation. This trade-off seems worthwhile\nbecause the list of submodules in this repo will not be something which\nchanges often.\n\nThis change makes the script less brittle because it is hard-coded to\nalways run against the local code, regardless of any changes to module\nversionining or project dependencies.","shortMessageHtmlLink":"ci: Simplify run_test.sh script."}},{"before":"17f993ae8389f70312ef8008f97384efb71ec988","after":"6e558fb2833fe853ce48ac6a2ffa3af75f6981d2","ref":"refs/heads/master","pushedAt":"2024-05-23T07:39:24.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"vspd: Decouple config loading & log initialization\n\nLoading config and preparing loggers are two separate concepts which\nshould be handled individually. Nesting one inside the other makes\nlittle sense and complicates reusing the code.","shortMessageHtmlLink":"vspd: Decouple config loading & log initialization"}},{"before":"8b6b2e4fef3ee7c9f3c8f5212c2cde7c94cb928a","after":"17f993ae8389f70312ef8008f97384efb71ec988","ref":"refs/heads/master","pushedAt":"2024-05-23T07:28:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"config: Initialize default config struct directly.\n\nThere is no need to declare a dozen different \"default...\" vars only to\nimmediately insert them into a default config struct when the struct\nitself could just be initialized with the default values instead.","shortMessageHtmlLink":"config: Initialize default config struct directly."}},{"before":"2bd340ba08196ca8c2aeb65fbe2e36d5558e2508","after":"8b6b2e4fef3ee7c9f3c8f5212c2cde7c94cb928a","ref":"refs/heads/master","pushedAt":"2024-05-21T07:44:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"config: Deprecate --configfile.\n\nThis removes the --configfile option from vspd. It introduced quite a\nfew weird edge cases (and a fair bit of code to deal with them) but\nafaik nobody actually used it. Note that the --homedir option stays, so\nit is still possible to run vspd with config in a non-default location\nif required.","shortMessageHtmlLink":"config: Deprecate --configfile."}},{"before":"ea6f5e8d7ee0001aaf30faf91a021434c59ad83d","after":"2bd340ba08196ca8c2aeb65fbe2e36d5558e2508","ref":"refs/heads/master","pushedAt":"2024-05-18T07:42:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"multi: Explicitly handle help requests.\n\nChecking for --help as an explicit step before parsing any other configs\nmakes the code more intuitive by removing a convoluted bit of error\nhandling, which happened to be unnecessarily duplicated in three places.\n\nMoving it to a function in the internal package makes it reusable by\nmultiple binaries.\n\nThis also enables the IgnoreUnknown option to be used whilst parsing for\nhelp, which ensures the presence of --help will always result in the\nhelp message being printed. This fixes a minor inconsistency where the\nhelp message would be printed if the flag was placed before an invalid\nconfig, but placing it after would cause an invalid config error to be\nwritten instead. For example, `vspd --help --fakeflag` vs `vspd\n--fakeflag --help`.","shortMessageHtmlLink":"multi: Explicitly handle help requests."}},{"before":"92a0eb7d4a2ec51a26b30158b79b2649331e2ff4","after":"ea6f5e8d7ee0001aaf30faf91a021434c59ad83d","ref":"refs/heads/master","pushedAt":"2024-05-16T07:23:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"config: Introduce NetworkFromName.\n\nThis moves the mapping logic to a more obvious home and enables it to be\nreused later.","shortMessageHtmlLink":"config: Introduce NetworkFromName."}},{"before":"15590a6dda7bc246ada9a608885379003a0d0a7a","after":"92a0eb7d4a2ec51a26b30158b79b2649331e2ff4","ref":"refs/heads/master","pushedAt":"2024-05-16T07:22:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"webapi: Remove unnecessary err check.\n\nerr has already been checked and is known to be nil at this point.","shortMessageHtmlLink":"webapi: Remove unnecessary err check."}},{"before":"ab5e564867b89f62063a329cba85084ebb6f9c26","after":"15590a6dda7bc246ada9a608885379003a0d0a7a","ref":"refs/heads/master","pushedAt":"2024-05-14T08:19:18.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"ci: Update GitHub actions.","shortMessageHtmlLink":"ci: Update GitHub actions."}},{"before":"17e97384e57f46c56849abfde75a38bf59e2e0c4","after":"ab5e564867b89f62063a329cba85084ebb6f9c26","ref":"refs/heads/master","pushedAt":"2024-05-14T06:28:09.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"build: Update to bbolt 1.3.9.\n\nJust bugfixes, no significant new features or API changes.","shortMessageHtmlLink":"build: Update to bbolt 1.3.9."}},{"before":"cdd02dbd2ec607f3041a36a3d3c83e721c8f586e","after":"17e97384e57f46c56849abfde75a38bf59e2e0c4","ref":"refs/heads/master","pushedAt":"2024-05-14T06:27:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"v3tool: Remove unnecessary err check.\n\nerr has already been checked and is known to be nil at this point.","shortMessageHtmlLink":"v3tool: Remove unnecessary err check."}},{"before":"1b9587c00049bf063fc98b33e6fa51d56728f1a6","after":"cdd02dbd2ec607f3041a36a3d3c83e721c8f586e","ref":"refs/heads/master","pushedAt":"2024-02-16T00:47:03.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"database: Use bytes.Clone instead of manual copy.\n\nbytes.Clone was introduced in go 1.20 and removes the need to manually\ncopy byte slices.","shortMessageHtmlLink":"database: Use bytes.Clone instead of manual copy."}},{"before":"4f892711fcfce143284edea59c61c517686c52ca","after":"1b9587c00049bf063fc98b33e6fa51d56728f1a6","ref":"refs/heads/master","pushedAt":"2024-01-12T08:51:54.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"build: Use latest GitHub Actions","shortMessageHtmlLink":"build: Use latest GitHub Actions"}},{"before":"40673270fb0b47f37444579a56790087e479e57b","after":"4f892711fcfce143284edea59c61c517686c52ca","ref":"refs/heads/master","pushedAt":"2023-12-06T08:47:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"Add docs for listing on decred.org","shortMessageHtmlLink":"Add docs for listing on decred.org"}},{"before":"b50d91ae5b46ecbf324c14b367629f44c81953a6","after":"40673270fb0b47f37444579a56790087e479e57b","ref":"refs/heads/master","pushedAt":"2023-11-22T12:04:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"build: bump bbolt dep","shortMessageHtmlLink":"build: bump bbolt dep"}},{"before":"22d04116bdfae0cdb08d0e566fa0c232ad91251e","after":"bec2d12a079b2596921b0f01498a1f572dc25087","ref":"refs/heads/release-v1.3","pushedAt":"2023-11-15T08:46:36.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"[release-v1.3] Release version 1.3.2","shortMessageHtmlLink":"[release-v1.3] Release version 1.3.2"}},{"before":"1e66b6ff59cf3887e252d65db04b391a40b6ee92","after":"b50d91ae5b46ecbf324c14b367629f44c81953a6","ref":"refs/heads/master","pushedAt":"2023-11-15T08:46:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jholdstock","name":"Jamie Holdstock","path":"/jholdstock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6762864?s=80&v=4"},"commit":{"message":"docs: Add 1.3.2 release note","shortMessageHtmlLink":"docs: Add 1.3.2 release note"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wNVQwOTozMTozNy4wMDAwMDBazwAAAAStpA9D","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wNVQwOTozMTozNy4wMDAwMDBazwAAAAStpA9D","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMS0xNVQwODo0NjozMS4wMDAwMDBazwAAAAOvhWtq"}},"title":"Activity ยท decred/vspd"}