And attempt to guess the reason why it was rejected.
Details
- Reviewers
bytesofman - Group Reviewers
Restricted Project - Commits
- rABC43f19a37b28f: [herald] Show invalidated blocks
npm run test
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
| apps/ecash-herald/src/events.js | ||
|---|---|---|
| 214 ↗ | (On Diff #49858) | If we are relying on chronik and ts here, we can assume blockTimestamp is defined every time in handleBlockInvalidated, since the function is only called on BLK_INVALIDATED msgs which include it If we still want to handle it, then should use const timestamp = typeof blockTimestamp !== 'undefined' ? blockTimestamp: 'unknown' |
| 216 ↗ | (On Diff #49858) | same comment as above in this case, we are already assuming that coinbaseData is the expected shape. So we might as well assume it is also defined. |
| apps/ecash-herald/src/parse.js | ||
| 1989–1992 ↗ | (On Diff #49858) | |
| 2001 ↗ | (On Diff #49858) | if we only ever call this on invalidated blocks, should never be undefined |
| apps/ecash-herald/src/events.js | ||
|---|---|---|
| 214 ↗ | (On Diff #49858) | good point, at this stage it's always defined indeed (while it's not in other handlers but we don't pass them down so it's a non issue) |
| apps/ecash-herald/src/parse.js | ||
| 2001 ↗ | (On Diff #49858) | This is true but I'd rather not rely on this, it is brittle as opposed to the invalidated callback which offers a strong guarantee |
| apps/ecash-herald/src/utils.js | ||
|---|---|---|
| 395 ↗ | (On Diff #49924) | no need for this method the getCoingeckoApiUrl function is a one-off thing ... exists because I over-engineered the coingecko methods in this app to support config-adjustable prices to display. |
| 405 ↗ | (On Diff #49924) | weird that this here is working it's ok to just define this URL as a constant, e.g. in config. |
| 409 ↗ | (On Diff #49924) | lot of work to deal with this potential cache issue, which could also be a race condition depending on how fast blocks are coming in. I can see how it could "work" and the info would be better than nothing. We could modify chronik and chronik-client to fwd the getstakingreward RPC? Might be a useful template to support some other RPC calls going fwd. Though practically speaking ... only makes sense if the chronik URL being used is an avalanche node, which is a whole nother thing. |
| apps/ecash-herald/test/chronikWsHandler.test.js | ||
| 166 ↗ | (On Diff #49924) | we could just put the constant URL here, the use of getCoingeckoApiUrl(config) above is a weird case |
| apps/ecash-herald/src/utils.js | ||
|---|---|---|
| 409 ↗ | (On Diff #49924) | Chronik is an indexer, its not it's role to provide a proxy for the node RPCs |
| apps/ecash-herald/src/events.js | ||
|---|---|---|
| 255 ↗ | (On Diff #49966) | |
| apps/ecash-herald/src/parse.js | ||
| 2054 ↗ | (On Diff #49966) | could just define it in this file, const IFP_OUTPUTSCRIPT = a914d37c4c809fe9840e7bfa77b86bd47163f6fb6c6087, so at least it is not a magic string. I don't think it is used anywhere else at the moment. |
| 2056 ↗ | (On Diff #49966) | in general...they're the same. But basically you should always use === unless there is a very specific case you are trying to get with == |
| 2068 ↗ | (On Diff #49966) | |
| 2083 ↗ | (On Diff #49966) | |
| apps/ecash-herald/src/utils.js | ||
| 416 ↗ | (On Diff #49966) | is address here meant to be nextStakingReward.data.address? I don't see address anywhere earlier in this function -- so we would always expect it to be undefined here |
| apps/ecash-herald/test/fixtures/invalidatedBlocks.js | ||
| 148 ↗ | (On Diff #49966) | it's confusing that memoryCache here is not the actual memoryCache that is passed as a param, but the result we expect to find cached at an expected block. imo expectedCacheData or similar would be less ambiguous |
| apps/ecash-herald/test/mocks/block.js | ||
| 6105 ↗ | (On Diff #49966) | block.js is a generated file, updated by node scripts/generateMock.js if this is just a constant that is used for a test -- should be defined in a different mocks file, or just a constant in the test file that uses it. |
| apps/ecash-herald/src/utils.js | ||
|---|---|---|
| 416 ↗ | (On Diff #49966) | Oups yes and the property should be cachedObject.address... leftover from a previous iteration, good catch |
| apps/ecash-herald/src/utils.js | ||
|---|---|---|
| 415 ↗ | (On Diff #49967) | FYI in JS, this is the same const cachedObject = { scriptHex } |
| apps/ecash-herald/src/utils.js | ||
|---|---|---|
| 415 ↗ | (On Diff #49967) | TIL |