{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":741380368,"defaultBranch":"main","name":"soroban-rpc","ownerLogin":"stellar","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-01-10T09:23:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7386716?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716504057.0","currentOid":""},"activityList":{"items":[{"before":"3b92fe7c2b35cfeea1743a7d94452175b74ceb2d","after":null,"ref":"refs/heads/database-backend","pushedAt":"2024-05-23T22:40:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aditya1702","name":"Aditya Vyas","path":"/aditya1702","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15054664?s=80&v=4"}},{"before":"f15ad4a4a29e917a4abf84462cfaaa25ad0be0b3","after":"c818bb87eaaf705ca4b4c1f4b5ded8cd0cf859ff","ref":"refs/heads/main","pushedAt":"2024-05-23T22:40:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aditya1702","name":"Aditya Vyas","path":"/aditya1702","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15054664?s=80&v=4"},"commit":{"message":"Add new `getTransactions` endpoint and database backend for transactions (#174)\n\n* Increase `getTransaction` window via ingestion into a local database (#141)\r\n\r\n* Add common interface between in-memory and on-disk transaction storage\r\n\r\n* Revert \"Add common interface between in-memory and on-disk transaction storage\"\r\n\r\nThis reverts commit 3196ade050bfa3ac300dab37fadaa89b2bc08cc4.\r\n\r\n* Add initial implementation of DB-backed tx store\r\n\r\n* Drop all references to the in-memory transaction store\r\n\r\n* Actually filter for the tx hash you want :facepalm:\r\n\r\n* Drop remaining reference to transaction store\r\n\r\n* Update stellar/go to latest master\r\n\r\n* Add a bunch of logging/verbose errors, another column to DB\r\n\r\n* Propogate contexts, fix all bugs; e2e flow works!\r\n\r\n* Add metric for tx ingestion\r\n\r\n* Split TransactionHandler into separate readers and writers\r\n\r\n* Move tx reads into their own isolated, read-only db tx\r\n\r\n* Add in-memory cache for ledger ranges\r\n\r\n* Remove cache: read/write are separate so it doesn't work\r\n\r\n* Add trimming of transactions table based on retention window\r\n\r\n* Tests work (but dont pass)! Plus some fixes based on test cases :+1:\r\n\r\n* Tidy up the go.mod file\r\n\r\n* Fixup the way ledger ranges are handled\r\n\r\n* Add prometheus metrics back\r\n\r\n* Drop columns and logging that aren't useful\r\n\r\n* Incorporate errors into ledger range retrieval\r\n\r\n* Return instead of log errors in getTransaction\r\n\r\n* Fixup tests: an empty db isn't a fetch error\r\n\r\n* Make 24hr the new default transaction retention window, fixup errors\r\n\r\n* Expect the correct retention window in tests\r\n\r\n* Use raw byte hash over hex for 1/2 the column space\r\n\r\n* Rename interfaces to avoid overloading 'Transaction' term\r\n\r\n* PR feedback: variable rename\r\n\r\n* Separate tx parsing into its own function\r\n\r\n* Modify queries to not use transactions\r\n\r\n* Pass around the logger rather than using the global\r\n\r\n* Fixup all of the tests to pass a logger\r\n\r\n* Use subqueries to get around () sqlite limitations\r\n\r\n* Use .Select() to simplify querying\r\n\r\n* Add db unit test but it's failing :(\r\n\r\n* Prefer custom error over EOF or DB nonsense\r\n\r\n* Prepare randoms in advance, writer for the ledger as well\r\n\r\n* Pass daemon to db to hook in metrics\r\n\r\n* Check another error in e2e test\r\n\r\n* Feedback: use no-op interface, drop metric\r\n\r\n* Refactor method tests to use 'fake' tx/ledger backend\r\n\r\n* Simplify code a bit\r\n\r\n* Fixup mocking interface\r\n\r\n* Move test function back, fixup metrics and tests\r\n\r\n* Add `getTransactions` endpoint (#136)\r\n\r\n* Add cursor for getTransactions\r\n\r\n* Add validation of pagination and range\r\n\r\n* implement getTransactions handler - 1\r\n\r\n* Add getLedgers\r\n\r\n* Read a single ledger instead of getting all ledgers\r\n\r\n* Add ParseCursor method for tx cursor\r\n\r\n* Cursor changes - 1\r\n\r\n* Cursor changes - 2\r\n\r\n* Cursor changes - 3\r\n\r\n* revert go-mod changes\r\n\r\n* Use reader.Seek()\r\n\r\n* Use reader.Seek() - 2\r\n\r\n* Add config-options for tx pagination limits\r\n\r\n* Fix failing cursor test\r\n\r\n* Go mod changes\r\n\r\n* Go mod changes - 2\r\n\r\n* Add unittests - 1\r\n\r\n* Update go.mod and go.sum\r\n\r\n* Add integration tests\r\n\r\n* Update go.mod and go.sum\r\n\r\n* Add ledgerSeq to error string\r\n\r\n* Add docstrings\r\n\r\n* Change transactions limits\r\n\r\n* add defensive check for error other than EOF\r\n\r\n* add defensive check for error other than EOF - 2\r\n\r\n* Change ledger sequence to uint32\r\n\r\n* Add comments/docstrings\r\n\r\n* Include only cursor in response\r\n\r\n* Use toid instead of new cursor\r\n\r\n* Revert cursor changes\r\n\r\n* Return cursor as string in result\r\n\r\n* Refactor reader.Seek error handling\r\n\r\n* Small refactoring\r\n\r\n* Remove startLedger check\r\n\r\n* Remove endLedger\r\n\r\n* Import fix\r\n\r\n* Fix failing tests\r\n\r\n* Refactor to use new transaction db\r\n\r\n* Refactor mocks\r\n\r\n* Refactor unittests for using the new db changes\r\n\r\n* Refactor integration test\r\n\r\n* Add config vars for max requests and request duration\r\n\r\n* Fix failing test\r\n\r\n* Use transactionInfo struct instead of db.Transactions\r\n\r\n* Start indexing from 1 instead of 0 for toid\r\n\r\n* Operation index from 1\r\n\r\n* Add lines to make sure structs implement interfaces\r\n\r\n* Remove omitempty\r\n\r\n* rename test func\r\n\r\n* make txInfo struct public and convert string cursor to int\r\n\r\n* Use sendSuccessfulTransaction helper func\r\n\r\n* Convert cursor to string in request\r\n\r\n* Change jrpc response codes\r\n\r\n* Change ledger close meta code to invalid-params\r\n\r\n* Revert back to InvalidParams error for reader.Read()\r\n\r\n* Refactor if-else statement\r\n\r\n* Refactor if-else statement - 2\r\n\r\n* Add documentation on opting into the new db backend (#182)\r\n\r\n* Refactor getFeeStats changes to add db changes\r\n\r\n* Remove code making `GetLedgerRange` conform to interface (#186)\r\n\r\nIt's unnecessary because we aren't using that interface anymore.\r\n\r\n* Add changelog entry for `getTransactions` (#183)\r\n\r\n* Add more changelog details on new endpoint\r\n\r\n* Fixup spacing\r\n\r\n---------\r\n\r\nCo-authored-by: George \r\nCo-authored-by: George Kudrayvtsev ","shortMessageHtmlLink":"Add new getTransactions endpoint and database backend for transacti…"}},{"before":"87a6ea55745732501aac57a758b516cca98b1ac9","after":null,"ref":"refs/heads/getTransactions-changelog","pushedAt":"2024-05-17T21:14:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aditya1702","name":"Aditya Vyas","path":"/aditya1702","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15054664?s=80&v=4"}},{"before":"cdad6490b360476f6ef5316b3f26037665cc98c7","after":"3b92fe7c2b35cfeea1743a7d94452175b74ceb2d","ref":"refs/heads/database-backend","pushedAt":"2024-05-17T21:14:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"aditya1702","name":"Aditya Vyas","path":"/aditya1702","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15054664?s=80&v=4"},"commit":{"message":"Add changelog entry for `getTransactions` (#183)\n\n* Add more changelog details on new endpoint\r\n\r\n* Fixup spacing","shortMessageHtmlLink":"Add changelog entry for getTransactions (#183)"}},{"before":"f4206b8b8ada05c758579ce1acabba390575b7aa","after":null,"ref":"refs/heads/remove-context-event","pushedAt":"2024-05-17T19:48:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"}},{"before":"e8a73db26ed598c62fa056251de1f6e3e9cb2634","after":"cdad6490b360476f6ef5316b3f26037665cc98c7","ref":"refs/heads/database-backend","pushedAt":"2024-05-17T19:48:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Remove code making `GetLedgerRange` conform to interface (#186)\n\nIt's unnecessary because we aren't using that interface anymore.","shortMessageHtmlLink":"Remove code making GetLedgerRange conform to interface (#186)"}},{"before":null,"after":"f4206b8b8ada05c758579ce1acabba390575b7aa","ref":"refs/heads/remove-context-event","pushedAt":"2024-05-17T19:32:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"We aren't conforming to an interface anymore, anyway","shortMessageHtmlLink":"We aren't conforming to an interface anymore, anyway"}},{"before":"b114d1d439fa1e55a0a79ab50072f5dc2d52efa0","after":"e8a73db26ed598c62fa056251de1f6e3e9cb2634","ref":"refs/heads/database-backend","pushedAt":"2024-05-17T17:49:44.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"aditya1702","name":"Aditya Vyas","path":"/aditya1702","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15054664?s=80&v=4"},"commit":{"message":"Refactor getFeeStats changes to add db changes","shortMessageHtmlLink":"Refactor getFeeStats changes to add db changes"}},{"before":"7efd091d5dc01359d5b30745be715c98b9919c88","after":"f15ad4a4a29e917a4abf84462cfaaa25ad0be0b3","ref":"refs/heads/main","pushedAt":"2024-05-17T16:42:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"},"commit":{"message":"Add getFeeStats method (#172)","shortMessageHtmlLink":"Add getFeeStats method (#172)"}},{"before":"6b63080a063e97ef9649aa1ed0137d9489ec2204","after":"b114d1d439fa1e55a0a79ab50072f5dc2d52efa0","ref":"refs/heads/database-backend","pushedAt":"2024-05-17T14:53:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"aditya1702","name":"Aditya Vyas","path":"/aditya1702","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15054664?s=80&v=4"},"commit":{"message":"Merge branch 'main' into database-backend","shortMessageHtmlLink":"Merge branch 'main' into database-backend"}},{"before":"933c0acb911bd3ac6d75b8a854a298d74f905cc3","after":"ca5c2d8d65c85ee2367d18a2ea7eb81e611d34d6","ref":"refs/heads/update-test-wasm-p21","pushedAt":"2024-05-17T14:38:24.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"aditya1702","name":"Aditya Vyas","path":"/aditya1702","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15054664?s=80&v=4"},"commit":{"message":"Merge branch 'main' into update-test-wasm-p21","shortMessageHtmlLink":"Merge branch 'main' into update-test-wasm-p21"}},{"before":"d19b440c645e8ed7a5ffba63810a6def8916583a","after":null,"ref":"refs/heads/2opremio-patch-1","pushedAt":"2024-05-17T02:16:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"}},{"before":"277c554708f3c9c6a734e25b38b667ad762b42a6","after":"7efd091d5dc01359d5b30745be715c98b9919c88","ref":"refs/heads/main","pushedAt":"2024-05-17T02:16:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"},"commit":{"message":"Correct README (#185)","shortMessageHtmlLink":"Correct README (#185)"}},{"before":null,"after":"d19b440c645e8ed7a5ffba63810a6def8916583a","ref":"refs/heads/2opremio-patch-1","pushedAt":"2024-05-17T00:52:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"},"commit":{"message":"Correct README","shortMessageHtmlLink":"Correct README"}},{"before":null,"after":"933c0acb911bd3ac6d75b8a854a298d74f905cc3","ref":"refs/heads/update-test-wasm-p21","pushedAt":"2024-05-16T22:01:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Recompile contract","shortMessageHtmlLink":"Recompile contract"}},{"before":"2e2258327811a0754c64e22969a3b5c2b0b4076c","after":"6b63080a063e97ef9649aa1ed0137d9489ec2204","ref":"refs/heads/database-backend","pushedAt":"2024-05-16T21:48:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Merge branch 'main' into database-backend","shortMessageHtmlLink":"Merge branch 'main' into database-backend"}},{"before":"ca983f1346314d387675f1c8e4818fe2ecd7bdea","after":"87a6ea55745732501aac57a758b516cca98b1ac9","ref":"refs/heads/getTransactions-changelog","pushedAt":"2024-05-16T21:46:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Fixup spacing","shortMessageHtmlLink":"Fixup spacing"}},{"before":null,"after":"ca983f1346314d387675f1c8e4818fe2ecd7bdea","ref":"refs/heads/getTransactions-changelog","pushedAt":"2024-05-16T21:44:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Add more changelog details on new endpoint","shortMessageHtmlLink":"Add more changelog details on new endpoint"}},{"before":"72326b1df22787ead70832bc577019e9f3af41f8","after":null,"ref":"refs/heads/v21.2.0-changelog","pushedAt":"2024-05-16T21:35:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"}},{"before":"801373b3b05e2458aed4acdec4a5103b5df26527","after":"277c554708f3c9c6a734e25b38b667ad762b42a6","ref":"refs/heads/main","pushedAt":"2024-05-16T21:35:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Add details for latest minor version (#181)","shortMessageHtmlLink":"Add details for latest minor version (#181)"}},{"before":"1fcb2ae61d45ab5cb1350bbb7f6fcea785f0a470","after":null,"ref":"refs/heads/db-changelog","pushedAt":"2024-05-16T21:35:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"}},{"before":"6436d33ffeeb0af9af07b2f56f81fd7f0f183687","after":"2e2258327811a0754c64e22969a3b5c2b0b4076c","ref":"refs/heads/database-backend","pushedAt":"2024-05-16T21:35:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Add documentation on opting into the new db backend (#182)","shortMessageHtmlLink":"Add documentation on opting into the new db backend (#182)"}},{"before":null,"after":"1fcb2ae61d45ab5cb1350bbb7f6fcea785f0a470","ref":"refs/heads/db-changelog","pushedAt":"2024-05-16T21:29:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Add opt-in documentation for tx retention feature","shortMessageHtmlLink":"Add opt-in documentation for tx retention feature"}},{"before":"7eaaf61269f278b833917aee67e501a215bd145e","after":"6436d33ffeeb0af9af07b2f56f81fd7f0f183687","ref":"refs/heads/database-backend","pushedAt":"2024-05-16T21:27:10.000Z","pushType":"push","commitsCount":14,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Merge branch 'main' into database-backend","shortMessageHtmlLink":"Merge branch 'main' into database-backend"}},{"before":null,"after":"72326b1df22787ead70832bc577019e9f3af41f8","ref":"refs/heads/v21.2.0-changelog","pushedAt":"2024-05-16T21:26:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Shaptic","name":"George","path":"/Shaptic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/822243?s=80&v=4"},"commit":{"message":"Add details for latest minor version","shortMessageHtmlLink":"Add details for latest minor version"}},{"before":"4bb5f9bba5ee92637d1db3348c9c0def2084edcb","after":"801373b3b05e2458aed4acdec4a5103b5df26527","ref":"refs/heads/main","pushedAt":"2024-05-16T19:53:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"},"commit":{"message":"Create codeql.yml (#173)\n\nCo-authored-by: Alfonso Acosta ","shortMessageHtmlLink":"Create codeql.yml (#173)"}},{"before":"6e6c8ee78253df25a14d29c2bf88b51680745fb3","after":null,"ref":"refs/heads/release/v21.2.0","pushedAt":"2024-05-16T17:56:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"}},{"before":"176d7877ccc789154357eb60d320cbd85571db64","after":"4bb5f9bba5ee92637d1db3348c9c0def2084edcb","ref":"refs/heads/main","pushedAt":"2024-05-16T17:56:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"},"commit":{"message":"Bump version to 21.2.0 (#180)\n\n* Bump version to 21.2.0\r\n\r\n* Reenable macos dry-run\r\n\r\n---------\r\n\r\nCo-authored-by: github-actions[bot] \r\nCo-authored-by: Alfonso Acosta ","shortMessageHtmlLink":"Bump version to 21.2.0 (#180)"}},{"before":"0f3987fbf1d3636772ee7a08838e5b1c3784b4bb","after":"6e6c8ee78253df25a14d29c2bf88b51680745fb3","ref":"refs/heads/release/v21.2.0","pushedAt":"2024-05-16T16:55:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"},"commit":{"message":"Reenable macos dry-run","shortMessageHtmlLink":"Reenable macos dry-run"}},{"before":"62d033be6881f46dadb67f243a0f524c5def2f77","after":"0f3987fbf1d3636772ee7a08838e5b1c3784b4bb","ref":"refs/heads/release/v21.2.0","pushedAt":"2024-05-16T16:36:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"2opremio","name":"Alfonso Acosta","path":"/2opremio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2362916?s=80&v=4"},"commit":{"message":"Bump version to 21.2.0","shortMessageHtmlLink":"Bump version to 21.2.0"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUoCuZAA","startCursor":null,"endCursor":null}},"title":"Activity · stellar/soroban-rpc"}