Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement GraphQL API #858

Merged
merged 55 commits into from Aug 11, 2020
Merged

Implement GraphQL API #858

merged 55 commits into from Aug 11, 2020

Conversation

albrow
Copy link
Contributor

@albrow albrow commented Jul 9, 2020

This is a WIP PR that implements the GraphQL API as described in #854.

Major tasks:

  • Remove JSON-RPC API
  • Server Implementation
    • order query
    • orders query
    • stats query
    • addOrders mutation
    • orderEvents subscription
  • Go client
    • AddOrders
    • GetOrders
    • GetOrder
    • GetStats
    • RawQuery for arbitrary GraphQL queries.
  • TypeScript client
  • Testing
    • Marshaling/Unmarshaling JSON and GraphQL
    • Integration tests with Go client
    • Integration tests with TypeScript client
  • Configuration (environment variables)
  • Update or remove code that depended on JSON-RPC API
    • examples/add_order Decided to remove this as @jalextowle and I feel it doesn't really add a lot of value and can create confusion because it doesn't set up the required balances/allowances.
    • examples/subscribe_to_orders The Go client doesn't currently support subscriptions. We can add support for this later on based on demand.
    • cmd/mesh-bridge Decided not to update the bridge in this PR. We can update it in the future if needed.
    • Browser integration tests
  • Update Dockerfiles
  • Documentation
  • Type de-duplication? (Maybe address in follow-up PR) Moving this to Reduce type de-duplication and finalize all APIs #900.
  • Improve subscription support in GraphiQL page? (Maybe address in follow-up PR) Moving this to Improve support for subscriptions in GraphQL playground #903

@albrow albrow marked this pull request as draft July 9, 2020 23:34
@albrow albrow force-pushed the feature/graphql-api branch 4 times, most recently from fd9ae8e to a91fdd1 Compare July 16, 2020 22:35
@albrow albrow force-pushed the feature/graphql-api branch 2 times, most recently from dea9669 to fcbe973 Compare July 29, 2020 20:39
@albrow
Copy link
Contributor Author

albrow commented Aug 5, 2020

Overview

It might be helpful to read up on some background information on GraphQL.

This PR implements a GraphQL server and two clients: Go and TypeScript. Both clients are designed to be usable by someone with no prior GraphQL experience, and therefore makes some assumptions about the kinds of queries you want to run (especially the shape of the data that will be returned). Users who are more familiar with GraphQL and want maximum flexibility may choose to create or generate their own clients.

The server uses https://github.com/99designs/gqlgen, which automatically generates some code for us based on the GraphQL schema. If we make any changes to the schema, we will need to run go generate ./... and then update the server code as needed. The relevant make tasks (e.g. build, test-all) will automatically run go generate ./.... See https://blog.golang.org/generate for more information about the go generate command.

The Go client uses https://github.com/machinebox/graphql, which is a low-level client library that doesn't generate anything for us. However, we are able to re-use some of the generated types from https://github.com/99designs/gqlgen. Notably, the Go client does not support subscriptions because the library we're using doesn't support them. We can add support for subscriptions based on demand.

The TypeScript client uses https://www.apollographql.com/docs/react/api/core/ApolloClient/. Apollo Client has a lot of interesting and powerful features when used in conjunction with React, but for the TypeScript client we are just handling the basics. The TypeScript client does support subscriptions.

Configuration

There are three new environment variables for configuring the server:

	// EnableGraphQLServer determines whether or not to enable the GraphQL server.
	// If enabled, GraphQL queries can be sent to GraphQLServerAddr at the /graphql
	// URL. By default, the GraphQL server is disabled.
	EnableGraphQLServer bool `envvar:"ENABLE_GRAPHQL_SERVER" default:"false"`
	// GraphQLServerAddr is the interface and port to use for the GraphQL API.
	// By default, 0x Mesh will listen on 0.0.0.0 (all available addresses) and
	// port 60557.
	GraphQLServerAddr string `envvar:"GRAPHQL_SERVER_ADDR" default:"0.0.0.0:60557"`
	// EnableGraphQLPlayground determines whether or not to enable GraphiQL, an interactive
	// GraphQL playground which can be accessed by visiting GraphQLServerAddr in a browser.
	// See https://github.com/graphql/graphiql for more information. By default, GraphiQL
	// is disabled.
	EnableGraphQLPlayground bool `envvar:"ENABLE_GRAPHQL_PLAYGROUND" default:"false"`

If you are running Mesh locally and ENABLE_GRAPHIQL is true, you can access the GraphiQL playground at http://localhost:60557. The playground is a good way to play around with the new API.

Files and directories

  • graphql/ Contains the GraphQL schema, server, and Go code.
    • client/_ The Go client.
    • generated/ Code generated by https://github.com/99designs/gqlgen. Should not be edited directly.
    • gqltypes/ Go types which map 1-to-1 with types defined in the GraphQL schema. Mix of generated and manually-written code.
    • schema.graphql The canonical GraphQL schema.
    • schema.resolvers.go The resolver implementations used by the server (i.e. functions that define how each query is handled).
  • gqlgen.yaml This configuration file tells https://github.com/99designs/gqlgen where to put generated code and how it should be generated.
  • packages/
    • mesh-graphql-client/ The TypeScript client, including integration tests.

@albrow albrow requested a review from jalextowle August 5, 2020 03:22
@albrow albrow closed this Aug 5, 2020
@albrow albrow reopened this Aug 5, 2020
Copy link
Contributor

@jalextowle jalextowle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, this is looking really solid. Most of comments are either nits, questions, or minor comments.

cmd/cut-release/main.go Outdated Show resolved Hide resolved
cmd/mesh/main.go Outdated Show resolved Hide resolved
graphql/schema.resolvers.go Outdated Show resolved Hide resolved
cmd/mesh/main.go Outdated Show resolved Hide resolved
graphql/client/client.go Outdated Show resolved Hide resolved
packages/mesh-graphql-client/src/types.ts Show resolved Hide resolved
packages/mesh-graphql-client/src/types.ts Show resolved Hide resolved
packages/mesh-graphql-client/test/graphql_client_test.ts Outdated Show resolved Hide resolved
packages/mesh-graphql-client/test/graphql_client_test.ts Outdated Show resolved Hide resolved
packages/mesh-graphql-client/test/graphql_client_test.ts Outdated Show resolved Hide resolved
@albrow albrow added this to the Mesh v10 milestone Aug 10, 2020
@albrow albrow marked this pull request as ready for review August 10, 2020 04:15
docs/db_syncing.md Outdated Show resolved Hide resolved
docs/deployment.md Outdated Show resolved Hide resolved
docs/deployment.md Outdated Show resolved Hide resolved
docs/deployment.md Show resolved Hide resolved
cmd/mesh/main.go Show resolved Hide resolved
OrderHasInvalidTakerAssetAmount = 'ORDER_HAS_INVALID_TAKER_ASSET_AMOUNT',
OrderExpired = 'ORDER_EXPIRED',
OrderFullyFilled = 'ORDER_FULLY_FILLED',
OrderCancelled = 'ORDER_CANCELLED',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're locked into the British spelling now 😂

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🇬🇧 Yeah we have to pick one. In the past we were using two Ls and I don't think it make sense to change it in the public API.

packages/mesh-graphql-client/src/types.ts Outdated Show resolved Hide resolved
docs/graphql_api.md Outdated Show resolved Hide resolved
graphql/schema.graphql Show resolved Hide resolved
graphql/schema.graphql Outdated Show resolved Hide resolved
graphql/schema.graphql Show resolved Hide resolved
@albrow albrow merged commit 6f058bf into development Aug 11, 2020
@albrow albrow deleted the feature/graphql-api branch August 11, 2020 04:00
jalextowle added a commit that referenced this pull request Sep 23, 2020
* Addressed minor comments from the last release PR (#817)

* Upgrade Mesh to Go 1.14 (#815)

* Made changes necessary for native binaries to build

* Document go-ethereum dependecy

* Got go tests to pass

* Updated geth fork to get some wasm tests to pass

* Fixed some build errors and tests

* Documented the `goleveldb` dependency

* Updated goleveldb and go-ws-transport

* All WebAssembly tests are now passing -- with the wrong `wasm_exec.ts`

* Update CI and dockerfiles

* Fix go linting errors

* Fix linting in CI

* Remove vendor step in CI to try to fix linting issues

* Documented the change in vendoring in CI

* Updated goleveldb dep after switching to `IsUndefined` and `IsNull`

* Updated go-ws-transport after switching to `IsUndefined`

* Switched to `IsUndefined` and `IsNull`

* Updated changelog

* Reverted some unnecessary changes

* Moved `allowJs` into `@0x/mesh-browser-lite`'s `tsconfig.json`

* Update to typescript `3.9.3`

* Update geth dependency

* Update `parseTopics` to use the new version from geth

* Addressed review feedback from @albrow

* Updated geth again

* Updated geth another time

* Fixed `wasm_exec.js` after rebase

* Changes to deps after rebuilding

* Updated the contributing guide

* Updated webpack-example dependendencies

* Fixed small inconsistency in contributing guide

* Improves the DevEx of working on Typescript (#818)

* Adjust the way that local dependencies are linked

* Improved `yarn clean`

* Added `prettier` to Mesh

* Updated cut-release script

* Build dependencies automatically when building a single package

* Make browser integration tests more effecient

* Update CONTRIBUTING.md

* Add some files to .prettierignore

* Change tsconfig for two examples to output to lib

* Add note to CONTRIBUTING.md about TSLint configuration

* Remove  from package.json

* Fixed nits

* Remove `$PKG`

* Fix tsc -b at the root of the project

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

* Big database upgrade (#793)

* Strip out all existing database code

* rename meshdb package to db

* Implement first db tests for adding/finding orders

* Add basic support for Orders and MiniHeaders

* Implement and test UpdateOrder

* Implement sorting orders

* Imlpement and test limit and offset

* Implement and test filters for finding orders

* Add fields for parsed MakerAssetData and MakerFeeAssetData

* Add test cases for filtering based on parsed maker asset data

* Implement and test helper methods for filtering based on parsed asset data

* Rename some FilterOpts fields

* Remove unneeded quotes

* Add OF prefix to OrderField constants

* Implement and test MiniHeaders query options

* Implement and test deleting orders with a filter

* Implement and test DeleteOrder

* Refactor db package to use common/types

* Implement and test deleting miniHeaders. Adjust implementation of DeleteOrders

* Update all types. Fix build

* Automatically remove miniHeaders above retention limit

* Add new options for database to configure max mini headers

* Get all blockwatch tests passing 😄

* Add new db options

* Implement and test CountOrders

* Begin fixing some bugs in order watcher tests

* Uncomment all remaining orderwatcher tests (except max expiration)

* Implement and test metadata methods

* Fix bug in sqltypes.BigInt. Get ratelimit tests passing

* Fix some additional tests and unimplemented methods in core

* Implement core.GetStats. Move data dir for most integration tests to /tmp

* Implement new getOrders RPC endpoint

* Re-enable ordersync tests

* Remove expirationwatch package

* Return db.ErrNotFound where appropriate. Remove old TODOs

* Set up basic skeleton for Dexie.js implementation

* Implement most order methods in Dexie.js

Not implemented:

- Query filters
- Multiple sort parameters

* Fix bugs and add support for order queries with one filter

* Add support for multiple filters

* Use checkOrderQuery function for both Dexie and SQL

* Fix bug in SQL implementation involving big numbers

* Add support for multiple sort values in Dexie

* Implement AddMiniHeaders in Dexie

* Implement remaining MiniHeaders methods in Dexie

* Implement Metadata methods in Dexie

* Fix failing TypeScript and Wasm tests

* Fix some build issues

* Fix bug in OrderWatcher

* Fix failing conversion tests

* Fix any remaining failing tests

* Fix linter errors

* Fix build errors

* Update yarn.lock

* Add backwards compatibility layer for FilteredPaginationSubprotocol

* Re-use existing asset data decoder from orderwatcher

* Remove remaining uses of goleveldb

* Improve handling of db closed error

* Rename some identifiers

* Address some low hanging TODOs

* De-dupe and refactor DB test cases

* Change how context is passed in to core.App

* Add missing exit 0 to some clean commands

* Address remaining TODOs in sql_implementation

* Address remaining TODOs in database.ts

* Address remaining TODOs in order_watcher.go

* Minor changes and cleanup

* Fix yarn.lock

* Respond to PR feedback

* Fix bug in database.ts

* Address remaining PR feedback

* Address third round PR feedback

* Address review feedback part 4

* Fix linter

* Add benchmark for ValidateOrder (#819)

* Optimize InefficientlyConvertToJS (#820)

* Optmimize jsutil.InefficientlyConvertToJS

* Add missing build tag

* Update go.mod and go.sum

* Updated `prettier` to include all markdown files (#830)

* Updated `prettier` to ignore all markdown files

* Start running `prettier` on markdown

* Removed `RELEASE_CHANGELOG.md` generation

* Updated logrus dependency (#834)

* Add workaround for Dexie transaction-related errors (#835)

* Increased the `ratelimiter` tolerance (#836)

* Re-implement dynamic max expiration time (#832)

* Implement removing orders with longest expiration time in SQL

* Implement removing orders with longest expiration time in Dexie

* Implement first pass of setting max expiration time in orderwatcher

* Consider pinned orders correctly regarding max expiration time

* Tweak max expiration time behavior

* Add test for GetCurrentMaxExpirationTime

* Simplify implementation by removing slowCounter and calculating max exp time as needed

* Add clarifying comment

* Account for pinned orders in meshSpecificOrderValidation

* Slightly simplify orderwatch.Watcher.add based on PR feedback

* Include pinned order in TestOrderWatcherDecreaseExpirationTime

* Optimize FindMiniHeaders by using gob encoding for event logs (#840)

* Optimize FindMiniHeaders by using gob encoding for event logs

* Add test for MiniHeaderToCommonType and MiniHeaderFromCommonType

* Rename a variable

* Update mesh.ts (#842)

Fix issue where initial query for orderInfos can come back empty.

* Add prettier step to `make cut-release` (#845)

* Fixed small bug in the ws rpc client (#847)

* Directly compute packed length of RPC call (#846)

* Add computeOptimalChunkSizes benchmark

* computeABIEncodedSignedOrderByteLength without ABI encoding

* Move unused code to tests

* fmt

* Requested changes

* More requested changes

Co-authored-by: Mason Liang <mason@0x.org>

* Update TypeScript compiler target to es2016 (#850)

* Cleanup TypeScript packages (#851)

* Rename all packages/ directories to match package name

* Audit all dependencies vs. devDependencies

* Fix doc generation for browser and browser-lite

* Update removedChecker to use countInterval (#839)

* Update removedChecker to use countInterval

* gofmt

* Requested changes

* Revert using errgroup

Co-authored-by: Mason Liang <mason@0x.org>

* Parallelize requesting from peers in `ordersync` (#848)

* Parallelized part of `GetOrders`

* Added an inner context to cut `getOrdersFromPeer` short

* Refactored ordersync to request from a new peer as soon as possible

* Improved ordersync `GetOrders` slightly

* Adjusted `maxPeersInParallel`

* Addressed review feedback from @albrow

* Switched to `sync.RWMutex`

* Addressed lingering review feedback from @albrow

* Store order validation block (#853)

* Add support for storing block metadata for orders in db package

* Set block metadata for orders in order_watcher

* Improve tests for setting last validated block

* Add new fields to Order in database.ts

* Use errgroup (#852)

* Use errgroup

* Fixed data race

* SyncToLatestBlock to prevent race at cleanup

* Re-add logging for errors

* gofmt

* Remove now unneeded SyncToLatestBlock

* Add loop name to logging output

* Use correct names

* Add pointer to golang faq

Co-authored-by: Mason Liang <mason@0x.org>
Co-authored-by: Alex Towle <jalextowle@gmail.com>

* Simplify unexpiration logic in convertValidationResultsIntoOrderEvents (#856)

* Name and use isOrderUnexpired

* Use newFillableAmount

* Replace nil with newFillableAmount

* Consolidate checks for rewatchOrder

* Remove checks that are always true

* Move database updates into unexpiration check

* Rename to timeStampIsValid and remove unneeded check

* typos

* time stamp -> timestamp and correct comment

* Clarify comment

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

* fix typo

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

* Remove unused private function

* Remove nil check for non-nil argument

* Rename function

* Re-add comments

* Rename to expirationTimeIsValid

* Expand comment

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

Co-authored-by: Mason Liang <mason@0x.org>
Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

* In-Memory Blockwatcher Syncing (#857)

* Added simplestack back to Mesh

* Use an in-memory stack for blockwatcher syncing

* Addressed review feedback from @albrow

* Simplified `getSubBlockRanges` in `ethereum/blockwatcher`

* Light refactors of the blockwatcher

* Addressed review feedback from @z2trillion

* Addressed review feedback from @albrow

* Revert "Light refactors of the blockwatcher"

This reverts commit 63caae9.

* Addressed lingering review feedback from @albrow

* Fix database is locked error (#873)

* Fix database is locked error

* Fix typo

* fix: Wait for high quality peers to fully respond during ordersync (#874)

* Added logs to ordersync

* Added more debugging logic

* Implemented fix to ordersync

* Removed logs and clarified some logic

* Addressed offline review feedback from @albrow

* Addressed review feedback from @z2trillion and @albrow

* fix: Mark an ordersync that yields zero orders unsuccessful (#875)

* Fixed an issue with `getOrdersFromPeer`

* Addressed review feedback from @albrow

* Address the missing order events edge case (#863)

* Added test for missing order events edge case

* Refactored `handleBlockEvents` in anticipation of the fix

* Attempted to fix the missing order events bug

* Minor refactors

* Got the test to pass

* Added another test for the missing block events fix

* Cleaned up the orderwatcher tests

* Added checks for missing events on startup

* Placate the linter

* Addressed review feedback from @albrow and @z2trillion

* Remove unnecessary `RLock` in `ValidateAndStoreValidOrders`

* Fixed a bug with order unexpiry

* Added the ability to track the progress of ordersyncing with peers (#877)

* Added the ability to track the progress of ordersyncing with peers

* Addressed review feedback from @albrow

* Check for already stored orders in a single batch (#878)

* Check for already stored orders in a single batch

* Use new method in orderwatcher

* Change return value for GetOrderStatuses to include fillable amount

* Implement GetOrderStatuses in SQL; Update log levels

* Made `MaxBytesPerSecond` configurable for standalone nodes (#879)

* Made `MaxBytesPerSecond` configurable for standalone nodes

* Made `MaxBytesPerSecond` configurable for browser nodes

* Fixed browser conversion tests for config with `MaxBytesPerSecond`

* Bump default of `MAX_BYTES_PER_SECOND` to 5MiB throughout the codebase

* Fix outdated comments

* Don't log about missing events if 0 blocks have elapsed (#880)

* Don't emit STOPPED_WATCHING events for orders that were already stored (#881)

* update drone configuration (#876)

* Optimize GetOrderStatuses by using getBulk (#883)

* Fixed bug in ordersync that caused nodes to use the wrong orderfilter (#882)

* Fixed bug in ordersync that caused nodes to use the wrong orderfilter

* Added changelog entry

* Addressed review feedback from @albrow

* Refactored first request generation in ordersync

* Fixed backwards compatability issue

* Addressed lingering review feedback from @albrow

* update deployment with telemetry doc with log opts (#887)

Co-authored-by: Oskar Paolini <oskar@paolini.pl>

* Fixed issue that crashed Mesh node (#888)

* Fixed issue that crashed Mesh node

* Addressed review feedback from @albrow

* Fixed a regression in `FilteredPaginationSubprotocolV0`

* Fixed bug that caused ordersync subprotocols to be selected at random

* Remove debugging logic

* Addressed review feedback from @albrow

* Fix bug when saving ordersync progress (#889)

* test: Added more tests for ordersync (#890)

* Added a test for orderfilter json encoding

* Added ordersync test for nodes with different filters

* Added ordersync test for receiving first request from old peer

* Fixed ordersync tests with distinct orderfilters

* Added another test case

* Cleaned up in anticipation of review

* Refactored orderfilter tests

* Addressed some review feedback from @albrow

* Apply suggestions from @albrow

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

* Fixed issues caused by suggestions

* Fixed naming

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

* Removed coordinator support (#895)

* Removed coordinator support

* Prettified the db syncing docs

* Unexported `batchOnchainValidation`

* fix: Prevent blockwatcher from missing contract events on startup (#894)

* Add existing miniheaders to simplestack during initialization

* Added a regression test for `blockwatch.New`

* Improved regression test

* Update ethereum/blockwatch/block_watcher_test.go

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>

* feature: Reject taker addresses that are nonzero and not on the whitelist (#896)

* Reject taker addresses that are nonzero and not on the whitelist

* Addressed review feedback

* Implement GraphQL API (#858)

* Create basic GraphQL server; implement stats query

* Implement order query

* Implement orders query

* Remove JSON-RPC API

* Fix CI

* Change types for some stats fields

* Remove references to JSON-RPC API from cut-release script

* Add GraphQL configuration options

* Update version of GraphiQL

* Use server.Shutdown for GraphQL server

* Use go-bindata to embed schema from text file

* Add graphql config file

* Install go-bindata in deps-no-lockfile

* Stub out remaining types and resolvers

* Switch to using gqlgen

* Set up new gqlgen server

* Re-implement resolvers

* Implement AddOrders

* Implement OrderEvents

* Implement AddOrders in client

* Implement and test Go client GetOrders without options

* Add test for more complicated GetOrders call

* Remove WIP TypeScript client code

* Implement and test Go client GetOrder

* Implement and test Go client GetStats

* Clean up GraphQL integration tests

* Implement basic working client with graphql-codegen

* Switch to using apollo client

* WIP subscriptions support

* Implement and test TypeScript client addOrdersAsync

* Implement and test TypeScript client getOrderAsync

* Implement and test TypeScript client onOrderEvents

* Remove ad hoc subscription test code

* Fix linter errors

* Implement and test TypeScript client getOrdersAsync

* Fix build error

* Remove old code related to typescript tests

* Implement and test TypeScript client rawQueryAsync

* Change env vars used for GraphQL integration tests

* Basic cleanup; remove old code and deps

* Cleanup types and file structure for TypeScript client

* Re-enable browser integration tests

* Add missing TSDoc comments

* Tweak environment variables.

* Remove old Go examples

* Add comment about mesh-bridge

* Update Dockerfiles

* Update documentation and comments

* Remove lingering references to coordinator error codes

* Improve error handling for TypeScript client subscriptions

* Address review feedback

* Fix failing TypeScript GraphQL client tests

* Update links in db_syncing.md

* Address PR feedback

* Throw all GraphQL errors in TypeScript client

* Use strings instead of custom scalars in GraphQL schema when possible (#906)

* Use strings instead of custom scalars in GraphQL schema when possible

* Add additional documentation to GraphQL schema

* Fix TypeScript GraphQL client

* Upgrade to go 1.15 (#911)

* Persistent DHT and Peerstore (#907)

* Implemented persistent datastore for peer and dht information in golang

* Implemented persistent key value store for the browser environment

* Finished the persistent storage solution

* Fixed all outstanding discrepancies between the dexie ds implementation and the tests

* Finalized new key store implementation

* Addressed issues uncovered during a personal review

* Addressed review feedback from @recmo

* Changed comment to prompt `ci/circleci:build`

* Added context as a parameter in `ethereum/blockwatch.Client` (#862)

* Added context to `ethereum/blockwatch.Client`

* Started changing approach

* Enable more linters (#861)

* Enable all default linters and fixed all errors

* Enable two more linters

* Added linter for `gofmt`

* Enables the `unparam` linter

* Added `make check`

* Fixed `deadcode` errors after rebase

* Fixed `misspell` errors after rebase

* Fixed `ineffassign` errors after rebase

* Fixed `unparam` errors after rebase

* Fixed `gosimple` errors after rebase

* Fixed `staticcheck` errors after rebase

* Addressed review feedback from @recmo

* Bump acorn from 6.3.0 to 6.4.1 in /packages/webpack-example-lite (#769)

Bumps [acorn](https://github.com/acornjs/acorn) from 6.3.0 to 6.4.1.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](acornjs/acorn@6.3.0...6.4.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Updated some out of date references to Go 1.14 (#912)

* Bump jquery from 3.4.1 to 3.5.0 in /packages/browser-lite (#915)

Bumps [jquery](https://github.com/jquery/jquery) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](jquery/jquery@3.4.1...3.5.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added missing entries to the changelog (#922)

* Updates yarn.lock files and adds dependabot configuration (#925)

* Remove unused yarn.lock files

* Added dependabot config that targets the development branch

* Converted dependabot configuration to v2 config

* Remove dependabot v1 config

* Re-generated yarn.lock file (#926)

* Upgraded Dockerfiles to go 1.15.2 (#927)

* Update `libp2p` dependencies (#921)

* Updated deps

* Got standalone nodes to be somewhat functional again

* Fixed "TestPeerDiscovery" for standalone nodes

* Fixed lingering networking issues

* Addressed linter errors

* Updated "go-libp2p" to fix the filters option

* Improved consistency of external APIs (#918)

* GetOrders => FindOrders

* Added graphql endpoints to MeshWrapper type in Typescript

* Expose dummy endpoints on the Go side of MeshWrapper

* Added testing for the browser GraphQL API

* Squashed some bugs throughout the plumbing pipeline

* DRYed a few things up

* Fixed the browser graphql integration test

* Cleaned up a bit

* Add missing "secondaryRendezvous" to GraphQL schema

* Addressed outstanding "FIXME" comments

* Altered the way that BrowserLink accesses the Mesh wrapper

* Updated "cut-release" make target

* Fixed compiler error after rebase

* Added changelog entry for GraphQL in the browser and fixed style of other v10 entries

* Addressed review feedback from @z2trillion

* Updated an integration test to be version agnostic (#928)

* Updated an integration test to be version agnostic

* Made the Typescript integration tests version agnostic

* Cut release v10.0.0

Co-authored-by: Alex Browne <stephenalexbrowne@gmail.com>
Co-authored-by: Paul Gebheim <pgebheim@users.noreply.github.com>
Co-authored-by: z2trillion <z2trillion@users.noreply.github.com>
Co-authored-by: Mason Liang <mason@0x.org>
Co-authored-by: Oskar Paolini <oskar@paolini.pl>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants