* Fix mocking multiple http calls in the same function call
Fixes an issue where a function call would perform more than one http request and wait for each to complete before proceeding. The `RequestId` comes from the length of the `requests` collection in the `OffchainState` and if a request is completed before the next one starts it will be removed and the "next expected" will be off by one. This PR tries to fix that by using a request counter that tracks how many requests have been performed so that we can `remove()` items from the `expected_requests` at the right index.
I suspect that this is a sub-optimal soluton and perhaps requests and their mocks should live side by side in the same collection, e.g. in a tuple of `(PendingRequest, Option<ExpectedRequest>)`.
* Update primitives/core/src/offchain/testing.rs
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* Update primitives/core/src/offchain/testing.rs
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
* Panic on overflow
* Update primitives/core/src/offchain/testing.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* Use a Deque and push/pop expected requests
* fix test
Co-authored-by: Bernhard Schuster <bernhard@ahoi.io>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* LocalCallExecutor and RemoteCallRequest generic over Hasher and NodeCodec
* Fix client/db
* Use new triehash
* Use new triehash
Don't use ethereum-types from rlp
* New triehash
* Use new triehash
* fixes and rlp without ethereum-types
* Lockfile
* lockfile
* Rename enumerated_trie_root to keccak_rlp_enumerated_trie_root
* Rename ordered_trie_root -> keccak_rlp_ordered_trie_root
Rename trie_root -> keccak_rlp_trie_root
* Fix panic message
* Kick the ball one step up the ladder
* Normalize function signatures between wasm and native
* Sort out compilation and test errors
* Cleanup
* Constrain the wasm-version using an ExternTrieCrypto trait that is implemented only for KeccakHasher
* hashdb is not optional
* lockfile
* Runtimes
* Missing bounds
* wasm binaries
* lockfiles
* binaries
* LocalCallExecutor uses concrete hasher/codec
* Use binaries from master
* Externalities is concrete
RuntimeInfo is not generic
* whitespace grumble
* lockfile
* lockfile and binaries