diff --git a/evaluations/centrifuge-gsrpc-v2_2_niklabh.md b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md new file mode 100644 index 000000000..9af5961fc --- /dev/null +++ b/evaluations/centrifuge-gsrpc-v2_2_niklabh.md @@ -0,0 +1,574 @@ +# Evaluation + +- **Status:** Pending +- **Application Document:** [centrifuge-gsrpc-v2](https://github.com/w3f/Grants-Program/blob/master/applications/centrifuge-gsrpc-v2.md) +- **Milestone:** 2 +- **Kusama Identity:** [CwYBnfoxb1B6fibdMN4js21DQeqgbqHgwLwacfKFdC7vsyZ](https://kusama.subscan.io/account/CwYBnfoxb1B6fibdMN4js21DQeqgbqHgwLwacfKFdC7vsyZ) +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evalulation Notes | +|--------|----------------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------| +| 1. | License | | [License](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/LICENSE) | Apache License v2 | +| 2. | Documentation | | [Documentation](https://github.com/centrifuge/go-substrate-rpc-client/blob/event-parsing-v2/registry/REGISTRY.md) | Documentation Needs to be improved | +| 3. | PR with changes | | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | PR looks good | +| 4a. | Registry Unit Tests | | [UnitTest](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/registry_test.go) | Unit Test coverage is good | +| 4b. | Registry (Events) Live Tests | | [Events Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/event_retriever_live_test.go) | Error in running docker tests, submitted a [PR](https://github.com/centrifuge/go-substrate-rpc-client/pull/353) to fix | +| 4c. | Registry (Extrinsics) Live Tests | | [Extrinsics Live Tests](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/registry/retriever/extrinsic_retriever_live_test.go) | Live test against public endpoints. Tests are running for too long. No need to check for 1000 events. 50 are fine | +| 4d. | Test execution | | [Test execution](https://github.com/centrifuge/go-substrate-rpc-client/blob/20047b8b15d046d0fa137cc716cb489395a0081a/Makefile#L49-L53) | Makefile has a [error](https://github.com/centrifuge/go-substrate-rpc-client/issues/352) | +| 5. | Dockerfile | | [Dockerfile](https://github.com/centrifuge/go-substrate-rpc-client/blob/b9da36ebf177cbb3ee41c2ef2b9a1fb08e5f8522/Dockerfile_milestone2) | Dockerfile is provided | +| 6. | In-Memory Registry | | [centrifuge/go-substrate-rpc-client#338](https://github.com/centrifuge/go-substrate-rpc-client/pull/338) | In-Memory Registry is implemented | + +## General Notes v1 - June 26, 2023 + +- Documentation needs to be improved. Basic tutorial on how to parse any substrate event and type using the new version of the library is missing. +- Unit test coverage is good. +- There is an error in running tests in Makefile. I have submitted a [PR](https://github.com/centrifuge/go-substrate-rpc-client/pull/353) to fix the same. +- Live tests are running for too long. No need to check for 1000 events. 50 are fine. +- Dockerfile to run milestone2 tests is provided. +- In-Memory Registry is implemented. + +### Run unit test + +```bash +make test-milestone2 +Sending build context to Docker daemon 11.94MB +Step 1/4 : FROM golang:1.18 + ---> c37a56a6d654 +Step 2/4 : COPY . /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> 330446577dfa +Step 3/4 : WORKDIR /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> a35718b940dc +Step 4/4 : CMD go test -v ./registry/... --cover + ---> Running in ca1e535bbbba +Removing intermediate container ca1e535bbbba + ---> 5aaa87d8f46c +Successfully built 5aaa87d8f46c +Successfully tagged gsrpc-m2:latest +go: downloading github.com/stretchr/testify v1.7.0 +go: downloading github.com/gorilla/websocket v1.5.0 +go: downloading github.com/ethereum/go-ethereum v1.10.17 +go: downloading github.com/deckarep/golang-set v1.8.0 +go: downloading github.com/rs/cors v1.8.2 +go: downloading golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 +go: downloading github.com/vedhavyas/go-subkey v1.0.3 +go: downloading github.com/pierrec/xxHash v0.1.5 +go: downloading github.com/stretchr/objx v0.1.1 +go: downloading github.com/pmezard/go-difflib v1.0.0 +go: downloading github.com/davecgh/go-spew v1.1.1 +go: downloading gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b +go: downloading github.com/gtank/merlin v0.1.1 +go: downloading github.com/ChainSafe/go-schnorrkel v1.0.0 +go: downloading github.com/decred/base58 v1.0.3 +go: downloading github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 +go: downloading github.com/cosmos/go-bip39 v1.0.0 +go: downloading github.com/gtank/ristretto255 v0.1.2 +go: downloading golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 +go: downloading github.com/decred/dcrd/crypto/blake256 v1.0.0 +go: downloading github.com/go-stack/stack v1.8.1 +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/centrifuge + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/polkadot + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/acala + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/statemint + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +=== RUN TestFactory_CreateErrorRegistryWithLiveMetadata/moonbeam + registry_test.go:47: Metadata was decoded successfully + registry_test.go:54: Error registry was created successfully +--- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata (0.16s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/centrifuge (0.03s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/polkadot (0.06s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/acala (0.02s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/statemint (0.02s) + --- PASS: TestFactory_CreateErrorRegistryWithLiveMetadata/moonbeam (0.03s) +=== RUN TestFactory_CreateErrorRegistry_NoPalletWithErrors +--- PASS: TestFactory_CreateErrorRegistry_NoPalletWithErrors (0.00s) +=== RUN TestFactory_CreateErrorRegistry_ErrorsTypeNotFound +--- PASS: TestFactory_CreateErrorRegistry_ErrorsTypeNotFound (0.00s) +=== RUN TestFactory_CreateErrorRegistry_ErrorsTypeNotAVariant +--- PASS: TestFactory_CreateErrorRegistry_ErrorsTypeNotAVariant (0.00s) +=== RUN TestFactory_CreateErrorRegistry_GetTypeFieldsError +--- PASS: TestFactory_CreateErrorRegistry_GetTypeFieldsError (0.00s) +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/centrifuge + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/polkadot + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/acala + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/statemint + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +=== RUN TestFactory_CreateCallRegistryWithLiveMetadata/moonbeam + registry_test.go:246: Metadata was decoded successfully + registry_test.go:253: Call registry was created successfully +--- PASS: TestFactory_CreateCallRegistryWithLiveMetadata (0.99s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/centrifuge (0.24s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/polkadot (0.20s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/acala (0.25s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/statemint (0.12s) + --- PASS: TestFactory_CreateCallRegistryWithLiveMetadata/moonbeam (0.18s) +=== RUN TestFactory_CreateCallRegistry_NoPalletWithCalls +--- PASS: TestFactory_CreateCallRegistry_NoPalletWithCalls (0.00s) +=== RUN TestFactory_CreateCallRegistry_CallsTypeNotFound +--- PASS: TestFactory_CreateCallRegistry_CallsTypeNotFound (0.00s) +=== RUN TestFactory_CreateCallRegistry_CallTypeNotAVariant +--- PASS: TestFactory_CreateCallRegistry_CallTypeNotAVariant (0.00s) +=== RUN TestFactory_CreateCallRegistry_GetTypeFieldsError +--- PASS: TestFactory_CreateCallRegistry_GetTypeFieldsError (0.00s) +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/centrifuge + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/polkadot + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/acala + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/statemint + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +=== RUN TestFactory_CreateEventRegistryWithLiveMetadata/moonbeam + registry_test.go:450: Metadata was decoded successfully + registry_test.go:457: Event registry was created successfully +--- PASS: TestFactory_CreateEventRegistryWithLiveMetadata (0.25s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/centrifuge (0.05s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/polkadot (0.06s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/acala (0.04s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/statemint (0.04s) + --- PASS: TestFactory_CreateEventRegistryWithLiveMetadata/moonbeam (0.06s) +=== RUN TestFactory_CreateEventRegistry_NoPalletWithEvents +--- PASS: TestFactory_CreateEventRegistry_NoPalletWithEvents (0.00s) +=== RUN TestFactory_CreateEventRegistry_EventsTypeNotFound +--- PASS: TestFactory_CreateEventRegistry_EventsTypeNotFound (0.00s) +=== RUN TestFactory_CreateEventRegistry_EventTypeNotAVariant +--- PASS: TestFactory_CreateEventRegistry_EventTypeNotAVariant (0.00s) +=== RUN TestFactory_CreateEventRegistry_GetTypeFieldError +--- PASS: TestFactory_CreateEventRegistry_GetTypeFieldError (0.00s) +=== RUN TestFactory_getTypeFields +--- PASS: TestFactory_getTypeFields (0.00s) +=== RUN TestFactory_getTypeFields_FieldDecoderRetrievalError +--- PASS: TestFactory_getTypeFields_FieldDecoderRetrievalError (0.00s) +=== RUN TestFactory_getTypeFields_FieldTypeNotFoundError +--- PASS: TestFactory_getTypeFields_FieldTypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_UnsupportedTypeError +--- PASS: TestFactory_getFieldDecoder_UnsupportedTypeError (0.00s) +=== RUN TestFactory_getFieldDecoder_Compact +--- PASS: TestFactory_getFieldDecoder_Compact (0.00s) +=== RUN TestFactory_getFieldDecoder_Compact_TypeNotFoundError +--- PASS: TestFactory_getFieldDecoder_Compact_TypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_Composite +--- PASS: TestFactory_getFieldDecoder_Composite (0.00s) +=== RUN TestFactory_getFieldDecoder_Composite_FieldError +--- PASS: TestFactory_getFieldDecoder_Composite_FieldError (0.00s) +=== RUN TestFactory_getFieldDecoder_Variant +--- PASS: TestFactory_getFieldDecoder_Variant (0.00s) +=== RUN TestFactory_getFieldDecoder_Primitive +--- PASS: TestFactory_getFieldDecoder_Primitive (0.00s) +=== RUN TestFactory_getFieldDecoder_Array +--- PASS: TestFactory_getFieldDecoder_Array (0.00s) +=== RUN TestFactory_getFieldDecoder_Array_TypeNotFoundError +--- PASS: TestFactory_getFieldDecoder_Array_TypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_Slice +--- PASS: TestFactory_getFieldDecoder_Slice (0.00s) +=== RUN TestFactory_getFieldDecoder_Slice_TypeNotFoundError +--- PASS: TestFactory_getFieldDecoder_Slice_TypeNotFoundError (0.00s) +=== RUN TestFactory_getFieldDecoder_Tuple +--- PASS: TestFactory_getFieldDecoder_Tuple (0.00s) +=== RUN TestFactory_getFieldDecoder_Tuple_NilTuple +--- PASS: TestFactory_getFieldDecoder_Tuple_NilTuple (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence +--- PASS: TestFactory_getFieldDecoder_BitSequence (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitStoreTypeNotFound +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitStoreTypeNotFound (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitStoreFieldTypeError +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitStoreFieldTypeError (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitOrderTypeNotFound +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitOrderTypeNotFound (0.00s) +=== RUN TestFactory_getFieldDecoder_BitSequence_BitOrderCreationError +--- PASS: TestFactory_getFieldDecoder_BitSequence_BitOrderCreationError (0.00s) +=== RUN TestFactory_getVariantFieldType_CompositeVariantTypeFieldError +--- PASS: TestFactory_getVariantFieldType_CompositeVariantTypeFieldError (0.00s) +=== RUN TestFactory_getCompactFieldType_CompactTuple +--- PASS: TestFactory_getCompactFieldType_CompactTuple (0.00s) +=== RUN TestFactory_getCompactFieldType_CompactComposite +--- PASS: TestFactory_getCompactFieldType_CompactComposite (0.00s) +=== RUN TestFactory_getArrayFieldType +--- PASS: TestFactory_getArrayFieldType (0.00s) +=== RUN TestFactory_getArrayFieldType_ItemFieldTypeError +--- PASS: TestFactory_getArrayFieldType_ItemFieldTypeError (0.00s) +=== RUN TestFactory_getSliceFieldType +--- PASS: TestFactory_getSliceFieldType (0.00s) +=== RUN TestFactory_getSliceFieldType_ItemFieldTypeError +--- PASS: TestFactory_getSliceFieldType_ItemFieldTypeError (0.00s) +=== RUN TestFactory_getTupleType +--- PASS: TestFactory_getTupleType (0.00s) +=== RUN TestFactory_getTupleType_TupleItemNotFound +--- PASS: TestFactory_getTupleType_TupleItemNotFound (0.00s) +=== RUN TestFactory_getTupleType_TupleItemFieldDecoderError +--- PASS: TestFactory_getTupleType_TupleItemFieldDecoderError (0.00s) +=== RUN Test_getPrimitiveType_UnsupportedTypeError +--- PASS: Test_getPrimitiveType_UnsupportedTypeError (0.00s) +PASS +coverage: 66.6% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry 1.406s coverage: 66.6% of statements +=== RUN TestRetryableExecutor_ExecWithFallback +--- PASS: TestRetryableExecutor_ExecWithFallback (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_RetrySuccess +--- PASS: TestRetryableExecutor_ExecWithFallback_RetrySuccess (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_NilFns +--- PASS: TestRetryableExecutor_ExecWithFallback_NilFns (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_ExecFnError +--- PASS: TestRetryableExecutor_ExecWithFallback_ExecFnError (0.50s) +=== RUN TestRetryableExecutor_ExecWithFallback_FallBackFnError +--- PASS: TestRetryableExecutor_ExecWithFallback_FallBackFnError (0.00s) +=== RUN TestRetryableExecutor_ExecWithFallback_FallBackFnError_NoRetry +--- PASS: TestRetryableExecutor_ExecWithFallback_FallBackFnError_NoRetry (0.00s) +PASS +coverage: 60.8% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/exec 0.504s coverage: 60.8% of statements +=== RUN TestEventParserFn_ParseEvents +--- PASS: TestEventParserFn_ParseEvents (0.00s) +=== RUN TestEventParserFn_ParseEvents_EventCountDecodeError +--- PASS: TestEventParserFn_ParseEvents_EventCountDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_PhaseDecodeError +--- PASS: TestEventParserFn_ParseEvents_PhaseDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_EventIDDecodeError +--- PASS: TestEventParserFn_ParseEvents_EventIDDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_EventFieldsDecodeError +--- PASS: TestEventParserFn_ParseEvents_EventFieldsDecodeError (0.00s) +=== RUN TestEventParserFn_ParseEvents_MissingEventDecoder +--- PASS: TestEventParserFn_ParseEvents_MissingEventDecoder (0.00s) +=== RUN TestEventParserFn_ParseEvents_TopicsDecodeError +--- PASS: TestEventParserFn_ParseEvents_TopicsDecodeError (0.00s) +=== RUN TestExtrinsicParserFn_ParseExtrinsics +--- PASS: TestExtrinsicParserFn_ParseExtrinsics (0.00s) +=== RUN TestExtrinsicParserFn_ParseExtrinsics_MissingCallDecoder +--- PASS: TestExtrinsicParserFn_ParseExtrinsics_MissingCallDecoder (0.00s) +=== RUN TestExtrinsicParserFn_ParseExtrinsics_DecodeError +--- PASS: TestExtrinsicParserFn_ParseExtrinsics_DecodeError (0.00s) +PASS +coverage: 55.4% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/parser 0.004s coverage: 55.4% of statements +=== RUN TestEventRetriever_New + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New (0.00s) +=== RUN TestEventRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestEventRetriever_NewDefault + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_NewDefault (0.00s) +=== RUN TestEventRetriever_GetEvents + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents (0.00s) +=== RUN TestEventRetriever_GetEvents_StorageRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) +--- PASS: TestEventRetriever_GetEvents_StorageRetrievalError (0.00s) +=== RUN TestEventRetriever_GetEvents_EventParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents_EventParsingError (0.00s) +=== RUN TestEventRetriever_updateInternalState + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState (0.00s) +=== RUN TestEventRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestEventRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_RegistryFactoryError (0.00s) +=== RUN TestExtrinsicRetriever_New + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New (0.00s) +=== RUN TestExtrinsicRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestExtrinsicRetriever_NewDefault + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_NewDefault (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_RegistryFactoryError (0.00s) +PASS +coverage: 65.2% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/retriever 0.006s coverage: 65.2% of statements +=== RUN TestProvider_GetStorageEvents + state.go:700: PASS: GetStorageRaw(types.StorageKey,types.Hash) + state.go:700: PASS: GetStorageRaw(types.StorageKey,types.Hash) +--- PASS: TestProvider_GetStorageEvents (0.07s) +PASS +coverage: 33.3% of statements +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/state 0.069s coverage: 33.3% of statements +? github.com/centrifuge/go-substrate-rpc-client/v4/registry/test [no test files] + +``` + +### Run live tests + +```bash +make test-milestone2-live +Sending build context to Docker daemon 11.94MB +Step 1/4 : FROM golang:1.18 + ---> c37a56a6d654 +Step 2/4 : COPY . /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> 330446577dfa +Step 3/4 : WORKDIR /go-substrate-rpc-client/events-parsing-v2/milestone-2 + ---> Using cache + ---> a35718b940dc +Step 4/4 : CMD go test -v -tags=live ./registry/retriever/... + ---> Using cache + ---> 8ef25a5f7bbb +Successfully built 8ef25a5f7bbb +Successfully tagged gsrpc-m2-live:latest +go: downloading github.com/stretchr/testify v1.7.0 +go: downloading github.com/deckarep/golang-set v1.8.0 +go: downloading github.com/ethereum/go-ethereum v1.10.17 +go: downloading github.com/gorilla/websocket v1.5.0 +go: downloading github.com/rs/cors v1.8.2 +go: downloading golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 +go: downloading github.com/vedhavyas/go-subkey v1.0.3 +go: downloading github.com/pierrec/xxHash v0.1.5 +go: downloading github.com/gtank/merlin v0.1.1 +go: downloading github.com/ChainSafe/go-schnorrkel v1.0.0 +go: downloading github.com/decred/base58 v1.0.3 +go: downloading github.com/stretchr/objx v0.1.1 +go: downloading github.com/davecgh/go-spew v1.1.1 +go: downloading github.com/pmezard/go-difflib v1.0.0 +go: downloading gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b +go: downloading github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 +go: downloading github.com/decred/dcrd/crypto/blake256 v1.0.0 +go: downloading github.com/cosmos/go-bip39 v1.0.0 +go: downloading github.com/gtank/ristretto255 v0.1.2 +go: downloading golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 +go: downloading github.com/go-stack/stack v1.8.1 +=== RUN TestLive_EventRetriever_GetEvents +=== PAUSE TestLive_EventRetriever_GetEvents +=== RUN TestEventRetriever_New + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New (0.00s) +=== RUN TestEventRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestEventRetriever_NewDefault + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_NewDefault (0.00s) +=== RUN TestEventRetriever_GetEvents + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents (0.00s) +=== RUN TestEventRetriever_GetEvents_StorageRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) +--- PASS: TestEventRetriever_GetEvents_StorageRetrievalError (0.00s) +=== RUN TestEventRetriever_GetEvents_EventParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + event_provider_mock.go:48: PASS: GetStorageEvents(*types.Metadata,types.Hash) + event_parser_mock.go:49: PASS: ParseEvents(registry.EventRegistry,*types.StorageDataRaw) +--- PASS: TestEventRetriever_GetEvents_EventParsingError (0.00s) +=== RUN TestEventRetriever_updateInternalState + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState (0.00s) +=== RUN TestEventRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestEventRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateEventRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestEventRetriever_updateInternalState_RegistryFactoryError (0.00s) +=== RUN TestLive_ExtrinsicRetriever_GetExtrinsics +=== PAUSE TestLive_ExtrinsicRetriever_GetExtrinsics +=== RUN TestExtrinsicRetriever_New + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New (0.00s) +=== RUN TestExtrinsicRetriever_New_InternalStateUpdateError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_New_InternalStateUpdateError (0.00s) +=== RUN TestExtrinsicRetriever_NewDefault + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_NewDefault (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + chain_mock.go:67: PASS: GetBlock(types.Hash) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError + exec_mock.go:43: PASS: ExecWithFallback(string,string) + exec_mock.go:43: PASS: ExecWithFallback(string,string) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + chain_mock.go:67: PASS: GetBlock(types.Hash) + extrinsic_parser_mock.go:50: PASS: ParseExtrinsics(registry.CallRegistry,*generic.SignedBlock[github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiAddress,github.com/centrifuge/go-substrate-rpc-client/v4/types.MultiSignature,github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic.DefaultPaymentFields]) +--- PASS: TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError (0.00s) +=== RUN TestExtrinsicRetriever_updateInternalState_RegistryFactoryError + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + factory_mock.go:94: PASS: CreateCallRegistry(*types.Metadata) + state.go:700: PASS: GetMetadata(types.Hash) + state.go:700: PASS: GetMetadataLatest() +--- PASS: TestExtrinsicRetriever_updateInternalState_RegistryFactoryError (0.00s) +=== CONT TestLive_EventRetriever_GetEvents +=== CONT TestLive_ExtrinsicRetriever_GetExtrinsics +2023/06/26 10:32:20 Connecting to wss://wss.api.moonbeam.network... +2023/06/26 10:32:20 Connecting to wss://wss.api.moonbeam.network... +2023/06/26 10:32:20 Connecting to wss://fullnode.parachain.centrifuge.io... +2023/06/26 10:32:20 Connecting to wss://rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://statemint-rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://acala-rpc-0.aca-api.network... +2023/06/26 10:32:20 Connecting to wss://statemint-rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://rpc.polkadot.io... +2023/06/26 10:32:20 Connecting to wss://acala-rpc-0.aca-api.network... +2023/06/26 10:32:20 Connecting to wss://fullnode.parachain.centrifuge.io... +2023/06/26 10:32:20 Found 2 events for 'wss://acala-rpc-0.aca-api.network', at block number 3880189. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880189. +2023/06/26 10:32:20 Found 14 events for 'wss://acala-rpc-0.aca-api.network', at block number 3880188. +2023/06/26 10:32:20 Retrieved a total of 16 events for 'wss://acala-rpc-0.aca-api.network', last block number 3880188. Stopping now. +2023/06/26 10:32:20 Found 4 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880188. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027274. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880187. +2023/06/26 10:32:20 Found 32 events for 'wss://wss.api.moonbeam.network', at block number 3863157. +2023/06/26 10:32:20 Retrieved a total of 32 events for 'wss://wss.api.moonbeam.network', last block number 3863157. Stopping now. +2023/06/26 10:32:20 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256578. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256578. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://acala-rpc-0.aca-api.network', at block number 3880186. +2023/06/26 10:32:21 Retrieved a total of 10 extrinsics for 'wss://acala-rpc-0.aca-api.network', last block number 3880186. Stopping now. +2023/06/26 10:32:21 Found 3 extrinsics for 'wss://rpc.polkadot.io', at block number 16135396. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027273. +2023/06/26 10:32:21 Found 7 extrinsics for 'wss://wss.api.moonbeam.network', at block number 3863157. +2023/06/26 10:32:21 Found 47 events for 'wss://rpc.polkadot.io', at block number 16135396. +2023/06/26 10:32:21 Retrieved a total of 47 events for 'wss://rpc.polkadot.io', last block number 16135396. Stopping now. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256577. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256577. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027272. +2023/06/26 10:32:21 Found 4 extrinsics for 'wss://rpc.polkadot.io', at block number 16135395. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027274. +2023/06/26 10:32:21 Found 7 extrinsics for 'wss://wss.api.moonbeam.network', at block number 3863156. +2023/06/26 10:32:21 Retrieved a total of 14 extrinsics for 'wss://wss.api.moonbeam.network', last block number 3863156. Stopping now. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256576. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256576. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027273. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256575. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://rpc.polkadot.io', at block number 16135394. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256575. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027271. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027272. +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256574. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://fullnode.parachain.centrifuge.io', at block number 3256574. +2023/06/26 10:32:21 Retrieved a total of 10 extrinsics for 'wss://fullnode.parachain.centrifuge.io', last block number 3256574. Stopping now. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://rpc.polkadot.io', at block number 16135393. +2023/06/26 10:32:21 Retrieved a total of 11 extrinsics for 'wss://rpc.polkadot.io', last block number 16135393. Stopping now. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027271. +2023/06/26 10:32:21 Found 2 extrinsics for 'wss://statemint-rpc.polkadot.io', at block number 4027270. +2023/06/26 10:32:21 Retrieved a total of 10 extrinsics for 'wss://statemint-rpc.polkadot.io', last block number 4027270. Stopping now. +--- PASS: TestLive_ExtrinsicRetriever_GetExtrinsics (1.41s) +2023/06/26 10:32:21 Found 2 events for 'wss://fullnode.parachain.centrifuge.io', at block number 3256573. +2023/06/26 10:32:21 Retrieved a total of 12 events for 'wss://fullnode.parachain.centrifuge.io', last block number 3256573. Stopping now. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027270. +2023/06/26 10:32:21 Found 2 events for 'wss://statemint-rpc.polkadot.io', at block number 4027269. +2023/06/26 10:32:21 Retrieved a total of 12 events for 'wss://statemint-rpc.polkadot.io', last block number 4027269. Stopping now. +--- PASS: TestLive_EventRetriever_GetEvents (1.59s) +PASS +ok github.com/centrifuge/go-substrate-rpc-client/v4/registry/retriever 1.599s +``` \ No newline at end of file