diff --git a/.circleci/config.yml b/.circleci/config.yml
index fde0817d8..37f018c4c 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -7,7 +7,7 @@ jobs:
- image: circleci/golang:1.13.4-browsers
- image: 0xorg/ganache-cli:istanbul
environment:
- VERSION: 5.1.0
+ VERSION: 6.2.4
SNAPSHOT_NAME: 0x_ganache_snapshot
resource_class: large
steps:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e0f0e70b4..ea4cba82a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,20 @@
This changelog is a work in progress and may contain notes for versions which have not actually been released. Check the [Releases](https://github.com/0xProject/0x-mesh/releases) page to see full release notes and more information about the latest released versions.
+
+## v9.3.0
+
+### Features ✅
+
+- Mesh now ensures on startup that the chain ID of your Ethereum RPC endpoint matches config.EthereumChainID [#733](https://github.com/0xProject/0x-mesh/pull/733).
+
+### Bug fixes 🐞
+
+- Fixed a compatibility issue in `@0x/mesh-browser-lite` for Safari and some other browsers [#770](https://github.com/0xProject/0x-mesh/pull/770).
+- Fixes an issue that would allow expired orders to be returned in `GetOrders` [773](http://github.com/0xProject/0x-mesh/pull/773)
+- Fixed a rare bug where ERC721 approval events could be missed [#782](https://github.com/0xProject/0x-mesh/pull/782)
+
+
## v9.2.1
### Bug fixes 🐞
diff --git a/README.md b/README.md
index be426bba0..96f0d5ea3 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[![Version](https://img.shields.io/badge/version-9.2.1-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
+[![Version](https://img.shields.io/badge/version-9.3.0-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
[![Docs](https://img.shields.io/badge/docs-website-yellow.svg)](https://0x-org.gitbook.io/mesh)
[![Chat with us on Discord](https://img.shields.io/badge/chat-Discord-blueViolet.svg)](https://discord.gg/HF7fHwk)
[![Circle CI](https://img.shields.io/circleci/project/0xProject/0x-mesh/master.svg)](https://circleci.com/gh/0xProject/0x-mesh/tree/master)
diff --git a/RELEASE_CHANGELOG.md b/RELEASE_CHANGELOG.md
index a0df4eaf8..0e6028eb1 100644
--- a/RELEASE_CHANGELOG.md
+++ b/RELEASE_CHANGELOG.md
@@ -1,11 +1,17 @@
- [Docker image](https://hub.docker.com/r/0xorg/mesh/tags)
-- [README](https://github.com/0xProject/0x-mesh/blob/v9.2.1/README.md)
+- [README](https://github.com/0xProject/0x-mesh/blob/v9.3.0/README.md)
## Summary
+### Features ✅
+
+- Mesh now ensures on startup that the chain ID of your Ethereum RPC endpoint matches config.EthereumChainID [#733](https://github.com/0xProject/0x-mesh/pull/733).
+
### Bug fixes 🐞
-- Fixed a critical bug in the ordersync protocol which resulted in only 50% of existing orders being shared when a new peer joins the network. New orders are shared separately and were unaffected. [#760](https://github.com/0xProject/0x-mesh/pull/760).
+- Fixed a compatibility issue in `@0x/mesh-browser-lite` for Safari and some other browsers [#770](https://github.com/0xProject/0x-mesh/pull/770).
+- Fixes an issue that would allow expired orders to be returned in `GetOrders` [773](http://github.com/0xProject/0x-mesh/pull/773)
+- Fixed a rare bug where ERC721 approval events could be missed [#782](https://github.com/0xProject/0x-mesh/pull/782)
diff --git a/cmd/cut-release/main.go b/cmd/cut-release/main.go
index 2a0afbf5a..d667d02de 100644
--- a/cmd/cut-release/main.go
+++ b/cmd/cut-release/main.go
@@ -5,6 +5,7 @@ import (
"fmt"
"io/ioutil"
"log"
+ "os"
"os/exec"
"regexp"
"strings"
@@ -12,6 +13,8 @@ import (
"github.com/plaid/go-envvar/envvar"
)
+var functionDocsTemplate = "\n# Functions\n\n## loadMeshStreamingForURLAsync\n▸ **loadMeshStreamingWithURLAsync**(`url`: `string`): *Promise‹`void`›*\n\n*Defined in [index.ts:7](https://github.com/0xProject/0x-mesh/blob/%s/packages/browser-lite/src/index.ts#L7)*\n\nLoads the Wasm module that is provided by fetching a url.\n\n**Parameters:**\n\nName | Type | Description |\n------ | ------ | ------ |\n`url` | `string` | The URL to query for the Wasm binary |\n\n
\n\n## loadMeshStreamingAsync\n\n▸ **loadMeshStreamingAsync**(`response`: `Response | Promise`): *Promise‹`void`›*\n\n*Defined in [index.ts:15](https://github.com/0xProject/0x-mesh/blob/%s/packages/browser-lite/src/index.ts#L15)*\n\nLoads the Wasm module that is provided by a response.\n\n**Parameters:**\n\nName | Type | Description |\n------ | ------ | ------ |\n`response` | `Response | Promise` | The Wasm response that supplies the Wasm binary |\n\n
"
+
type envVars struct {
// Version is the new release version to use
Version string `envvar:"VERSION"`
@@ -34,15 +37,7 @@ func main() {
log.Fatal(err)
}
- // Generate documentation for the Typescript packages.
- cmd = exec.Command("yarn", "docs:md")
- cmd.Dir = "."
- stdoutStderr, err = cmd.CombinedOutput()
- if err != nil {
- log.Print(string(stdoutStderr))
- log.Fatal(err)
- }
-
+ generateTypescriptDocs()
createReleaseChangelog(env.Version)
}
@@ -67,6 +62,49 @@ func createReleaseChangelog(version string) {
}
}
+func generateTypescriptDocs() {
+ // Generate the initial docs for the Typescript packages. These docs will
+ // be used to create the final set of docs.
+ cmd := exec.Command("yarn", "docs:md")
+ cmd.Dir = "."
+ stdoutStderr, err := cmd.CombinedOutput()
+ if err != nil {
+ log.Print(string(stdoutStderr))
+ log.Fatal(err)
+ }
+ commitHash, err := getDocsCommitHash("docs/browser-bindings/browser-lite/reference.md")
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // Copy the browser-lite docs to the `@0x/mesh-browser` packages's `reference.md`
+ // file. These docs are the correct docs for the `@0x/mesh-browser` package.
+ cmd = exec.Command(
+ "cp",
+ "docs/browser-bindings/browser-lite/reference.md",
+ "docs/browser-bindings/browser/reference.md",
+ )
+ cmd.Dir = "."
+ stdoutStderr, err = cmd.CombinedOutput()
+ if err != nil {
+ log.Print(string(stdoutStderr))
+ log.Fatal(err)
+ }
+
+ // Create the documentation for the `loadMeshStreamingAsync` and the `loadMeshStreamingWithURLAsync`
+ // functions. Append these docs to the end of the existing browser-lite docs.
+ functionDocs := fmt.Sprintf(functionDocsTemplate, commitHash, commitHash)
+ f, err := os.OpenFile("docs/browser-bindings/browser-lite/reference.md",
+ os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer f.Close()
+ if _, err := f.WriteString(functionDocs); err != nil {
+ log.Fatal(err)
+ }
+}
+
// Update the version string in all files that must be updated for a new release
func updateHardCodedVersions(version string) {
// Update `packages/rpc-client/package.json`
@@ -134,6 +172,22 @@ func updateFileWithRegex(filePath string, regex string, replacement string) {
}
}
+func getDocsCommitHash(docsPath string) (string, error) {
+ dat, err := ioutil.ReadFile(docsPath)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ regex := "https://github.com/0xProject/0x-mesh/blob/([a-f0-9]+)/"
+ var re = regexp.MustCompile(regex)
+ matches := re.FindStringSubmatch(string(dat))
+
+ if len(matches) < 2 {
+ return "", errors.New("No contents found")
+ }
+ return matches[1], nil
+}
+
func getFileContentsWithRegex(filePath string, regex string) (string, error) {
dat, err := ioutil.ReadFile(filePath)
if err != nil {
diff --git a/constants/constants.go b/constants/constants.go
index bb553a2b0..1e5039572 100644
--- a/constants/constants.go
+++ b/constants/constants.go
@@ -58,7 +58,7 @@ var GanacheAccountToPrivateKey = map[common.Address][]byte{
var GanacheDummyERC721TokenAddress = common.HexToAddress("0x07f96aa816c1f244cbc6ef114bb2b023ba54a2eb")
// GanacheDummyERC1155MintableAddress is the dummy ERC1155 token address in the Ganache snapshot
-var GanacheDummyERC1155MintableAddress = common.HexToAddress("0x8d42e38980ce74736c21c059b2240df09958d3c8")
+var GanacheDummyERC1155MintableAddress = common.HexToAddress("0x038f9b392fb9a9676dbaddf78ea5fdbf6c7d9710")
// ErrInternal is used whenever we don't wish to expose internal errors to a client
var ErrInternal = errors.New("internal error")
diff --git a/core/core.go b/core/core.go
index a76ed30e0..68cfb7d86 100644
--- a/core/core.go
+++ b/core/core.go
@@ -60,13 +60,28 @@ const (
estimatedNonPollingEthereumRPCRequestsPer24Hrs = 50000
// logStatsInterval is how often to log stats for this node.
logStatsInterval = 5 * time.Minute
- version = "9.2.1"
+ version = "9.3.0"
// ordersyncMinPeers is the minimum amount of peers to receive orders from
// before considering the ordersync process finished.
- ordersyncMinPeers = 5
- paginationSubprotocolPerPage = 500
+ ordersyncMinPeers = 5
+ // ordersyncApproxDelay is the approximate amount of time to wait between each
+ // run of the ordersync protocol (as a requester). We always request orders
+ // immediately on startup. This delay only applies to subsequent runs.
+ ordersyncApproxDelay = 1 * time.Hour
)
+// privateConfig contains some configuration options that can only be changed from
+// within the core package. Intended for testing purposes.
+type privateConfig struct {
+ paginationSubprotocolPerPage int
+}
+
+func defaultPrivateConfig() privateConfig {
+ return privateConfig{
+ paginationSubprotocolPerPage: 500,
+ }
+}
+
// Note(albrow): The Config type is currently copied to browser/ts/index.ts. We
// need to keep both definitions in sync, so if you change one you must also
// change the other.
@@ -184,6 +199,7 @@ type snapshotInfo struct {
type App struct {
config Config
+ privateConfig privateConfig
peerID peer.ID
privKey p2pcrypto.PrivKey
node *p2p.Node
@@ -209,6 +225,10 @@ type App struct {
var setupLoggerOnce = &sync.Once{}
func New(config Config) (*App, error) {
+ return newWithPrivateConfig(config, defaultPrivateConfig())
+}
+
+func newWithPrivateConfig(config Config, pConfig privateConfig) (*App, error) {
// Configure logger
// TODO(albrow): Don't use global variables for log settings.
setupLoggerOnce.Do(func() {
@@ -389,6 +409,7 @@ func New(config Config) (*App, error) {
app := &App{
started: make(chan struct{}),
config: config,
+ privateConfig: pConfig,
privKey: privKey,
peerID: peerID,
chainID: config.EthereumChainID,
@@ -576,6 +597,27 @@ func (app *App) Start(ctx context.Context) error {
orderWatcherErrChan <- app.orderWatcher.Watch(innerCtx)
}()
+ // Ensure that RPC client is on the same ChainID as is configured with ETHEREUM_CHAIN_ID
+ chainIDMismatchErrChan := make(chan error, 1)
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ defer func() {
+ log.Debug("closing chainID checker")
+ }()
+
+ chainID, err := app.getEthRPCChainID(innerCtx)
+ if err != nil {
+ chainIDMismatchErrChan <- err
+ return
+ }
+
+ configChainID := app.config.EthereumChainID
+ if int64(configChainID) != chainID.Int64() {
+ chainIDMismatchErrChan <- fmt.Errorf("ChainID mismatch between RPC client (chainID: %d) and configured environment variable ETHEREUM_CHAIN_ID: %d", chainID, configChainID)
+ }
+ }()
+
// Note: this is a blocking call so we won't continue set up until its finished.
blocksElapsed, err := app.blockWatcher.FastSyncToLatestBlock(innerCtx)
if err != nil {
@@ -648,7 +690,7 @@ func (app *App) Start(ctx context.Context) error {
// Register and start ordersync service.
ordersyncSubprotocols := []ordersync.Subprotocol{
- NewFilteredPaginationSubprotocol(app, paginationSubprotocolPerPage),
+ NewFilteredPaginationSubprotocol(app, app.privateConfig.paginationSubprotocolPerPage),
}
app.ordersyncService = ordersync.New(innerCtx, app.node, ordersyncSubprotocols)
orderSyncErrChan := make(chan error, 1)
@@ -658,7 +700,13 @@ func (app *App) Start(ctx context.Context) error {
defer func() {
log.Debug("closing ordersync service")
}()
- if err := app.ordersyncService.GetOrders(innerCtx, ordersyncMinPeers); err != nil {
+ log.WithFields(map[string]interface{}{
+ "approxDelay": ordersyncApproxDelay,
+ "perPage": app.privateConfig.paginationSubprotocolPerPage,
+ "subprotocols": []string{"FilteredPaginationSubProtocol"},
+ }).Info("starting ordersync service")
+
+ if err := app.ordersyncService.PeriodicallyGetOrders(innerCtx, ordersyncMinPeers, ordersyncApproxDelay); err != nil {
orderSyncErrChan <- err
}
}()
@@ -703,47 +751,60 @@ func (app *App) Start(ctx context.Context) error {
log.Info("core.App was started")
close(app.started)
+ // Wait for all other goroutines to close.
+ appClosed := make(chan struct{})
+ go func() {
+ wg.Wait()
+ close(appClosed)
+ }()
+
// If any error channel returns a non-nil error, we cancel the inner context
// and return the error. Note that this means we only return the first error
// that occurs.
- select {
- case err := <-p2pErrChan:
- if err != nil {
- log.WithError(err).Error("p2p node exited with error")
- cancel()
- return err
- }
- case err := <-orderWatcherErrChan:
- if err != nil {
- log.WithError(err).Error("order watcher exited with error")
- cancel()
- return err
- }
- case err := <-blockWatcherErrChan:
- if err != nil {
- log.WithError(err).Error("block watcher exited with error")
- cancel()
- return err
- }
- case err := <-ethRPCRateLimiterErrChan:
- if err != nil {
- log.WithError(err).Error("ETH JSON-RPC ratelimiter exited with error")
- cancel()
- return err
- }
- case err := <-orderSyncErrChan:
- if err != nil {
- log.WithError(err).Error("ordersync service exited with error")
- cancel()
- return err
+ for {
+ select {
+ case err := <-p2pErrChan:
+ if err != nil {
+ log.WithError(err).Error("p2p node exited with error")
+ cancel()
+ return err
+ }
+ case err := <-orderWatcherErrChan:
+ if err != nil {
+ log.WithError(err).Error("order watcher exited with error")
+ cancel()
+ return err
+ }
+ case err := <-blockWatcherErrChan:
+ if err != nil {
+ log.WithError(err).Error("block watcher exited with error")
+ cancel()
+ return err
+ }
+ case err := <-ethRPCRateLimiterErrChan:
+ if err != nil {
+ log.WithError(err).Error("ETH JSON-RPC ratelimiter exited with error")
+ cancel()
+ return err
+ }
+ case err := <-orderSyncErrChan:
+ if err != nil {
+ log.WithError(err).Error("ordersync service exited with error")
+ cancel()
+ return err
+ }
+ case err := <-chainIDMismatchErrChan:
+ if err != nil {
+ log.WithError(err).Error("ETH chain id matcher exited with error")
+ cancel()
+ return err
+ }
+ case <-appClosed:
+ // If we reached here it means we are done and there are no errors.
+ log.Debug("app successfully closed")
+ return nil
}
}
-
- // Wait for all goroutines to exit. If we reached here it means we are done
- // and there are no errors.
- wg.Wait()
- log.Debug("app successfully closed")
- return nil
}
func (app *App) periodicallyCheckForNewAddrs(ctx context.Context, startingAddrs []ma.Multiaddr) {
diff --git a/core/core_test.go b/core/core_test.go
index 87354e1f4..993a1ef5a 100644
--- a/core/core_test.go
+++ b/core/core_test.go
@@ -5,7 +5,6 @@ package core
import (
"context"
"flag"
- "math/big"
"sync"
"testing"
"time"
@@ -14,9 +13,9 @@ import (
"github.com/0xProject/0x-mesh/ethereum"
"github.com/0xProject/0x-mesh/meshdb"
"github.com/0xProject/0x-mesh/scenario"
+ "github.com/0xProject/0x-mesh/scenario/orderopts"
"github.com/0xProject/0x-mesh/zeroex"
"github.com/davecgh/go-spew/spew"
- "github.com/ethereum/go-ethereum/ethclient"
ethrpc "github.com/ethereum/go-ethereum/rpc"
"github.com/google/uuid"
"github.com/libp2p/go-libp2p-core/peer"
@@ -52,7 +51,52 @@ func TestEthereumChainDetection(t *testing.T) {
assert.Error(t, err)
}
+func TestConfigChainIDAndRPCMatchDetection(t *testing.T) {
+ if !serialTestsEnabled {
+ t.Skip("Serial tests (tests which cannot run in parallel) are disabled. You can enable them with the --serial flag")
+ }
+
+ ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
+ defer cancel()
+ wg := &sync.WaitGroup{}
+ dataDir := "/tmp/test_node/" + uuid.New().String()
+ config := Config{
+ Verbosity: 5,
+ DataDir: dataDir,
+ P2PTCPPort: 0,
+ P2PWebSocketsPort: 0,
+ EthereumRPCURL: constants.GanacheEndpoint,
+ EthereumChainID: 42, // RPC has chain id 1337
+ UseBootstrapList: false,
+ BootstrapList: "",
+ BlockPollingInterval: 250 * time.Millisecond,
+ EthereumRPCMaxContentLength: 524288,
+ EnableEthereumRPCRateLimiting: false,
+ EthereumRPCMaxRequestsPer24HrUTC: 99999999999999,
+ EthereumRPCMaxRequestsPerSecond: 99999999999999,
+ MaxOrdersInStorage: 100000,
+ CustomOrderFilter: "{}",
+ }
+ app, err := New(config)
+ require.NoError(t, err)
+
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ err := app.Start(ctx)
+ require.Error(t, err)
+ require.Contains(t, err.Error(), "ChainID mismatch")
+ }()
+
+ // Wait for nodes to exit without error.
+ wg.Wait()
+}
+
func newTestApp(t *testing.T) *App {
+ return newTestAppWithPrivateConfig(t, defaultPrivateConfig())
+}
+
+func newTestAppWithPrivateConfig(t *testing.T, pConfig privateConfig) *App {
dataDir := "/tmp/test_node/" + uuid.New().String()
config := Config{
Verbosity: 2,
@@ -71,14 +115,13 @@ func newTestApp(t *testing.T) *App {
MaxOrdersInStorage: 100000,
CustomOrderFilter: "{}",
}
- app, err := New(config)
+ app, err := newWithPrivateConfig(config, pConfig)
require.NoError(t, err)
return app
}
var (
rpcClient *ethrpc.Client
- ethClient *ethclient.Client
blockchainLifecycle *ethereum.BlockchainLifecycle
)
@@ -96,7 +139,6 @@ func init() {
if err != nil {
panic(err)
}
- ethClient = ethclient.NewClient(rpcClient)
blockchainLifecycle, err = ethereum.NewBlockchainLifecycle(rpcClient)
if err != nil {
panic(err)
@@ -143,24 +185,24 @@ func TestOrderSync(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
defer cancel()
wg := &sync.WaitGroup{}
- originalNode := newTestApp(t)
- wg.Add(1)
- go func() {
- defer wg.Done()
- require.NoError(t, originalNode.Start(ctx))
- }()
- newNode := newTestApp(t)
+
+ perPage := 10
+ pConfig := privateConfig{
+ paginationSubprotocolPerPage: perPage,
+ }
+ originalNode := newTestAppWithPrivateConfig(t, pConfig)
wg.Add(1)
go func() {
defer wg.Done()
- require.NoError(t, newNode.Start(ctx))
+ if err := originalNode.Start(ctx); err != nil && err != context.Canceled {
+ // context.Canceled is expected. For any other error, fail the test.
+ require.NoError(t, err)
+ }
}()
// Manually add some orders to originalNode.
- originalOrders := make([]*zeroex.SignedOrder, 10)
- for i := range originalOrders {
- originalOrders[i] = scenario.CreateWETHForZRXSignedTestOrder(t, ethClient, constants.GanacheAccount1, constants.GanacheAccount2, big.NewInt(20), big.NewInt(5))
- }
+ orderOptions := scenario.OptionsForAll(orderopts.SetupMakerState(true))
+ originalOrders := scenario.NewSignedTestOrdersBatch(t, perPage*3+1, orderOptions)
// We have to wait for latest block to be processed by the Mesh node.
time.Sleep(blockProcessingWaitTime)
@@ -169,6 +211,17 @@ func TestOrderSync(t *testing.T) {
require.NoError(t, err)
require.Empty(t, results.Rejected, "tried to add orders but some were invalid: \n%s\n", spew.Sdump(results))
+ newNode := newTestApp(t)
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ if err := newNode.Start(ctx); err != nil && err != context.Canceled {
+ // context.Canceled is expected. For any other error, fail the test.
+ require.NoError(t, err)
+ }
+ }()
+ <-newNode.started
+
orderEventsChan := make(chan []*zeroex.OrderEvent)
orderEventsSub := newNode.SubscribeToOrderEvents(orderEventsChan)
defer orderEventsSub.Unsubscribe()
diff --git a/core/eth_rpc_chain_id.go b/core/eth_rpc_chain_id.go
new file mode 100644
index 000000000..f5aac771d
--- /dev/null
+++ b/core/eth_rpc_chain_id.go
@@ -0,0 +1,27 @@
+package core
+
+import (
+ "context"
+ "errors"
+ "math/big"
+
+ "github.com/ethereum/go-ethereum/common/math"
+)
+
+func (app *App) getEthRPCChainID(ctx context.Context) (*big.Int, error) {
+ ctx, cancel := context.WithTimeout(ctx, ethereumRPCRequestTimeout)
+ defer cancel()
+
+ var chainIDRaw string
+ err := app.ethRPCClient.CallContext(ctx, &chainIDRaw, "eth_chainId")
+ if err != nil {
+ return nil, err
+ }
+
+ rpcChainID, ok := math.ParseBig256(chainIDRaw)
+ if !ok {
+ return nil, errors.New("Failed to parse big.Int value from hex-encoded chainID returned from eth_chainId")
+ }
+
+ return rpcChainID, nil
+}
diff --git a/core/ordersync/ordersync.go b/core/ordersync/ordersync.go
index 6fa47b533..4ea8a7273 100644
--- a/core/ordersync/ordersync.go
+++ b/core/ordersync/ordersync.go
@@ -11,7 +11,6 @@ import (
"errors"
"fmt"
"math/rand"
- "sync"
"time"
"github.com/0xProject/0x-mesh/p2p"
@@ -39,19 +38,15 @@ const (
maxRequestsPerSecond = 30
// requestsBurst is the maximum number of requests to allow at once.
requestsBurst = 10
+ // ordersyncJitterAmount is the amount of random jitter to add to the delay before
+ // each run of ordersync in PeriodicallyGetOrders. It is bound by:
+ //
+ // approxDelay * (1 - jitter) <= actualDelay < approxDelay * (1 + jitter)
+ //
+ ordersyncJitterAmount = 0.1
)
var (
- // retryBackoff defines how long to wait before trying again if we didn't get
- // orders from enough peers during the ordersync process.
- retryBackoff = &backoff.Backoff{
- Min: 250 * time.Millisecond, // First back-off length
- Max: 1 * time.Minute, // Longest back-off length
- Factor: 2, // Factor to multiple each successive back-off
- }
- // backoffMut is a mutex around retryBackoff, which otherwise appears to not
- // be goroutine-safe.
- backoffMut = &sync.Mutex{}
// ErrNoOrders is returned whenever the orders we are looking for cannot be
// found anywhere on the network. This can mean that we aren't connected to any
// peers on the same topic, that there are no orders for the topic throughout
@@ -275,6 +270,14 @@ func (s *Service) HandleStream(stream network.Stream) {
func (s *Service) GetOrders(ctx context.Context, minPeers int) error {
successfullySyncedPeers := stringset.New()
+ // retryBackoff defines how long to wait before trying again if we didn't get
+ // orders from enough peers during the ordersync process.
+ retryBackoff := &backoff.Backoff{
+ Min: 250 * time.Millisecond, // First back-off length
+ Max: 1 * time.Minute, // Longest back-off length
+ Factor: 2, // Factor to multiple each successive back-off
+ }
+
for len(successfullySyncedPeers) < minPeers {
select {
case <-ctx.Done():
@@ -321,9 +324,7 @@ func (s *Service) GetOrders(ctx context.Context, minPeers int) error {
}
}
- backoffMut.Lock()
delayBeforeNextRetry := retryBackoff.Duration()
- backoffMut.Unlock()
log.WithFields(log.Fields{
"delayBeforeNextRetry": delayBeforeNextRetry.String(),
"minPeers": minPeers,
@@ -340,6 +341,39 @@ func (s *Service) GetOrders(ctx context.Context, minPeers int) error {
return nil
}
+// PeriodicallyGetOrders periodically calls GetOrders. It waits a minimum of
+// approxDelay (with some random jitter) between each call. It will block until
+// there is a critical error or the given context is canceled.
+func (s *Service) PeriodicallyGetOrders(ctx context.Context, minPeers int, approxDelay time.Duration) error {
+ for {
+ select {
+ case <-ctx.Done():
+ return ctx.Err()
+ default:
+ }
+
+ if err := s.GetOrders(ctx, minPeers); err != nil {
+ return err
+ }
+
+ // Note(albrow): The random jitter here helps smooth out the frequency of ordersync
+ // requests and helps prevent a situation where a large number of nodes are requesting
+ // orders at the same time.
+ delay := calculateDelayWithJitter(approxDelay, ordersyncJitterAmount)
+ select {
+ case <-ctx.Done():
+ return ctx.Err()
+ case <-time.After(delay):
+ }
+ }
+}
+
+func calculateDelayWithJitter(approxDelay time.Duration, jitterAmount float64) time.Duration {
+ jitterBounds := int(float64(approxDelay) * jitterAmount * 2)
+ delta := rand.Intn(jitterBounds) - jitterBounds/2
+ return approxDelay + time.Duration(delta)
+}
+
func handleRequestWithSubprotocol(ctx context.Context, subprotocol Subprotocol, requesterID peer.ID, rawReq *rawRequest) (*Response, error) {
req, err := parseRequestWithSubprotocol(subprotocol, requesterID, rawReq)
if err != nil {
diff --git a/core/ordersync/ordersync_test.go b/core/ordersync/ordersync_test.go
new file mode 100644
index 000000000..32e33cd3d
--- /dev/null
+++ b/core/ordersync/ordersync_test.go
@@ -0,0 +1,20 @@
+package ordersync
+
+import (
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestCalculateDelayWithJitters(t *testing.T) {
+ numCalls := 100
+ approxDelay := 10 * time.Second
+ jitterAmount := 0.1
+ for i := 0; i < numCalls; i++ {
+ actualDelay := calculateDelayWithJitter(approxDelay, jitterAmount)
+ // 0.1 * 10 seconds is 1 second. So we assert that the actual delay is within 1 second
+ // of the approximate delay.
+ assert.InDelta(t, approxDelay, actualDelay, float64(1*time.Second), "actualDelay: %s", actualDelay)
+ }
+}
diff --git a/docs/browser-bindings/browser-lite/README.md b/docs/browser-bindings/browser-lite/README.md
index 9e3ac101b..fbb1da103 100644
--- a/docs/browser-bindings/browser-lite/README.md
+++ b/docs/browser-bindings/browser-lite/README.md
@@ -1,4 +1,4 @@
-# @0x/mesh-browser-lite - v9.2.1
+# @0x/mesh-browser-lite - v9.3.0
## @0x/mesh-browser-lite
diff --git a/docs/browser-bindings/browser-lite/reference.md b/docs/browser-bindings/browser-lite/reference.md
index b65d4e9b4..a54c52d97 100644
--- a/docs/browser-bindings/browser-lite/reference.md
+++ b/docs/browser-bindings/browser-lite/reference.md
@@ -14,7 +14,7 @@ sending orders through the 0x Mesh network.
\+ **new Mesh**(`config`: [Config](#interface-config)): *[Mesh](#class-mesh)*
-*Defined in [mesh.ts:141](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L141)*
+*Defined in [mesh.ts:141](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L141)*
Instantiates a new Mesh instance.
@@ -34,7 +34,7 @@ An instance of Mesh
▸ **addOrdersAsync**(`orders`: SignedOrder[], `pinned`: boolean): *Promise‹[ValidationResults](#interface-validationresults)›*
-*Defined in [mesh.ts:291](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L291)*
+*Defined in [mesh.ts:291](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L291)*
Validates and adds the given orders to Mesh. If an order is successfully
added, Mesh will share it with any peers in the network and start
@@ -61,7 +61,7 @@ ___
▸ **getOrdersAsync**(`perPage`: number): *Promise‹[GetOrdersResponse](#interface-getordersresponse)›*
-*Defined in [mesh.ts:220](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L220)*
+*Defined in [mesh.ts:220](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L220)*
Get all 0x signed orders currently stored in the Mesh node
@@ -81,7 +81,7 @@ ___
▸ **getOrdersForPageAsync**(`page`: number, `perPage`: number, `snapshotID?`: undefined | string): *Promise‹[GetOrdersResponse](#interface-getordersresponse)›*
-*Defined in [mesh.ts:262](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L262)*
+*Defined in [mesh.ts:262](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L262)*
Get page of 0x signed orders stored on the Mesh node at the specified snapshot
@@ -103,7 +103,7 @@ ___
▸ **getStatsAsync**(): *Promise‹[Stats](#interface-stats)›*
-*Defined in [mesh.ts:203](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L203)*
+*Defined in [mesh.ts:203](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L203)*
Returns various stats about Mesh, including the total number of orders
and the number of peers Mesh is connected to.
@@ -116,7 +116,7 @@ ___
▸ **onError**(`handler`: function): *void*
-*Defined in [mesh.ts:161](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L161)*
+*Defined in [mesh.ts:161](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L161)*
Registers a handler which will be called in the event of a critical
error. Note that the handler will not be called for non-critical errors.
@@ -145,7 +145,7 @@ ___
▸ **onOrderEvents**(`handler`: function): *void*
-*Defined in [mesh.ts:176](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L176)*
+*Defined in [mesh.ts:176](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L176)*
Registers a handler which will be called for any incoming order events.
Order events are fired whenver an order is added, canceled, expired, or
@@ -174,7 +174,7 @@ ___
▸ **startAsync**(): *Promise‹void›*
-*Defined in [mesh.ts:187](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L187)*
+*Defined in [mesh.ts:187](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L187)*
Starts the Mesh node in the background. Mesh will automatically find
peers in the network and begin receiving orders from them.
@@ -193,7 +193,7 @@ peers in the network and begin receiving orders from them.
• **ERC1155ApprovalForAllEvent**: = "ERC1155ApprovalForAllEvent"
-*Defined in [types.ts:444](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L444)*
+*Defined in [types.ts:468](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L468)*
___
@@ -201,7 +201,7 @@ ___
• **ERC1155TransferBatchEvent**: = "ERC1155TransferBatchEvent"
-*Defined in [types.ts:446](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L446)*
+*Defined in [types.ts:470](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L470)*
___
@@ -209,7 +209,7 @@ ___
• **ERC1155TransferSingleEvent**: = "ERC1155TransferSingleEvent"
-*Defined in [types.ts:445](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L445)*
+*Defined in [types.ts:469](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L469)*
___
@@ -217,7 +217,7 @@ ___
• **ERC20ApprovalEvent**: = "ERC20ApprovalEvent"
-*Defined in [types.ts:440](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L440)*
+*Defined in [types.ts:464](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L464)*
___
@@ -225,7 +225,7 @@ ___
• **ERC20TransferEvent**: = "ERC20TransferEvent"
-*Defined in [types.ts:439](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L439)*
+*Defined in [types.ts:463](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L463)*
___
@@ -233,7 +233,7 @@ ___
• **ERC721ApprovalEvent**: = "ERC721ApprovalEvent"
-*Defined in [types.ts:442](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L442)*
+*Defined in [types.ts:466](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L466)*
___
@@ -241,7 +241,7 @@ ___
• **ERC721ApprovalForAllEvent**: = "ERC721ApprovalForAllEvent"
-*Defined in [types.ts:443](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L443)*
+*Defined in [types.ts:467](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L467)*
___
@@ -249,7 +249,7 @@ ___
• **ERC721TransferEvent**: = "ERC721TransferEvent"
-*Defined in [types.ts:441](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L441)*
+*Defined in [types.ts:465](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L465)*
___
@@ -257,7 +257,7 @@ ___
• **ExchangeCancelEvent**: = "ExchangeCancelEvent"
-*Defined in [types.ts:448](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L448)*
+*Defined in [types.ts:472](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L472)*
___
@@ -265,7 +265,7 @@ ___
• **ExchangeCancelUpToEvent**: = "ExchangeCancelUpToEvent"
-*Defined in [types.ts:449](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L449)*
+*Defined in [types.ts:473](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L473)*
___
@@ -273,7 +273,7 @@ ___
• **ExchangeFillEvent**: = "ExchangeFillEvent"
-*Defined in [types.ts:447](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L447)*
+*Defined in [types.ts:471](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L471)*
___
@@ -281,7 +281,7 @@ ___
• **WethDepositEvent**: = "WethDepositEvent"
-*Defined in [types.ts:450](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L450)*
+*Defined in [types.ts:474](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L474)*
___
@@ -289,7 +289,7 @@ ___
• **WethWithdrawalEvent**: = "WethWithdrawalEvent"
-*Defined in [types.ts:451](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L451)*
+*Defined in [types.ts:475](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L475)*
@@ -303,7 +303,7 @@ ___
• **Added**: = "ADDED"
-*Defined in [types.ts:509](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L509)*
+*Defined in [types.ts:538](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L538)*
___
@@ -311,7 +311,7 @@ ___
• **Cancelled**: = "CANCELLED"
-*Defined in [types.ts:512](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L512)*
+*Defined in [types.ts:541](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L541)*
___
@@ -319,7 +319,7 @@ ___
• **Expired**: = "EXPIRED"
-*Defined in [types.ts:513](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L513)*
+*Defined in [types.ts:542](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L542)*
___
@@ -327,7 +327,7 @@ ___
• **FillabilityIncreased**: = "FILLABILITY_INCREASED"
-*Defined in [types.ts:516](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L516)*
+*Defined in [types.ts:545](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L545)*
___
@@ -335,7 +335,7 @@ ___
• **Filled**: = "FILLED"
-*Defined in [types.ts:510](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L510)*
+*Defined in [types.ts:539](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L539)*
___
@@ -343,7 +343,7 @@ ___
• **FullyFilled**: = "FULLY_FILLED"
-*Defined in [types.ts:511](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L511)*
+*Defined in [types.ts:540](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L540)*
___
@@ -351,7 +351,7 @@ ___
• **Invalid**: = "INVALID"
-*Defined in [types.ts:508](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L508)*
+*Defined in [types.ts:537](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L537)*
___
@@ -359,7 +359,7 @@ ___
• **StoppedWatching**: = "STOPPED_WATCHING"
-*Defined in [types.ts:517](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L517)*
+*Defined in [types.ts:546](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L546)*
___
@@ -367,7 +367,7 @@ ___
• **Unexpired**: = "UNEXPIRED"
-*Defined in [types.ts:514](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L514)*
+*Defined in [types.ts:543](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L543)*
___
@@ -375,7 +375,7 @@ ___
• **Unfunded**: = "UNFUNDED"
-*Defined in [types.ts:515](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L515)*
+*Defined in [types.ts:544](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L544)*
@@ -391,7 +391,7 @@ A set of categories for rejected orders.
• **CoordinatorError**: = "COORDINATOR_ERROR"
-*Defined in [types.ts:600](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L600)*
+*Defined in [types.ts:630](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L630)*
___
@@ -399,7 +399,7 @@ ___
• **MeshError**: = "MESH_ERROR"
-*Defined in [types.ts:598](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L598)*
+*Defined in [types.ts:628](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L628)*
___
@@ -407,7 +407,7 @@ ___
• **MeshValidation**: = "MESH_VALIDATION"
-*Defined in [types.ts:599](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L599)*
+*Defined in [types.ts:629](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L629)*
___
@@ -415,7 +415,7 @@ ___
• **ZeroExValidation**: = "ZEROEX_VALIDATION"
-*Defined in [types.ts:597](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L597)*
+*Defined in [types.ts:627](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L627)*
@@ -429,7 +429,7 @@ ___
• **Debug**: = 5
-*Defined in [types.ts:209](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L209)*
+*Defined in [types.ts:211](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L211)*
___
@@ -437,7 +437,7 @@ ___
• **Error**: = 2
-*Defined in [types.ts:206](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L206)*
+*Defined in [types.ts:208](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L208)*
___
@@ -445,7 +445,7 @@ ___
• **Fatal**: = 1
-*Defined in [types.ts:205](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L205)*
+*Defined in [types.ts:207](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L207)*
___
@@ -453,7 +453,7 @@ ___
• **Info**: = 4
-*Defined in [types.ts:208](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L208)*
+*Defined in [types.ts:210](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L210)*
___
@@ -461,7 +461,7 @@ ___
• **Panic**: = 0
-*Defined in [types.ts:204](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L204)*
+*Defined in [types.ts:206](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L206)*
___
@@ -469,7 +469,7 @@ ___
• **Trace**: = 6
-*Defined in [types.ts:210](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L210)*
+*Defined in [types.ts:212](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L212)*
___
@@ -477,7 +477,7 @@ ___
• **Warn**: = 3
-*Defined in [types.ts:207](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L207)*
+*Defined in [types.ts:209](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L209)*
@@ -497,7 +497,7 @@ Info for any orders that were accepted.
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:578](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L578)*
+*Defined in [types.ts:608](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L608)*
___
@@ -505,7 +505,7 @@ ___
• **isNew**: *boolean*
-*Defined in [types.ts:579](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L579)*
+*Defined in [types.ts:609](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L609)*
___
@@ -513,7 +513,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:576](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L576)*
+*Defined in [types.ts:606](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L606)*
___
@@ -521,7 +521,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:577](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L577)*
+*Defined in [types.ts:607](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L607)*
@@ -541,7 +541,7 @@ A set of configuration options for Mesh.
• **blockPollingIntervalSeconds**? : *undefined | number*
-*Defined in [types.ts:116](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L116)*
+*Defined in [types.ts:118](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L118)*
___
@@ -549,7 +549,7 @@ ___
• **bootstrapList**? : *string[]*
-*Defined in [types.ts:109](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L109)*
+*Defined in [types.ts:111](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L111)*
___
@@ -557,7 +557,7 @@ ___
• **customContractAddresses**? : *[ContractAddresses](#interface-contractaddresses)*
-*Defined in [types.ts:160](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L160)*
+*Defined in [types.ts:162](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L162)*
___
@@ -565,7 +565,7 @@ ___
• **customOrderFilter**? : *[JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:185](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L185)*
+*Defined in [types.ts:187](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L187)*
___
@@ -573,7 +573,7 @@ ___
• **enableEthereumRPCRateLimiting**? : *undefined | false | true*
-*Defined in [types.ts:133](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L133)*
+*Defined in [types.ts:135](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L135)*
___
@@ -581,7 +581,7 @@ ___
• **ethereumChainID**: *number*
-*Defined in [types.ts:101](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L101)*
+*Defined in [types.ts:103](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L103)*
___
@@ -589,7 +589,7 @@ ___
• **ethereumRPCMaxContentLength**? : *undefined | number*
-*Defined in [types.ts:125](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L125)*
+*Defined in [types.ts:127](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L127)*
___
@@ -597,7 +597,7 @@ ___
• **ethereumRPCMaxRequestsPer24HrUTC**? : *undefined | number*
-*Defined in [types.ts:138](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L138)*
+*Defined in [types.ts:140](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L140)*
___
@@ -605,7 +605,7 @@ ___
• **ethereumRPCMaxRequestsPerSecond**? : *undefined | number*
-*Defined in [types.ts:144](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L144)*
+*Defined in [types.ts:146](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L146)*
___
@@ -613,7 +613,7 @@ ___
• **ethereumRPCURL**? : *undefined | string*
-*Defined in [types.ts:98](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L98)*
+*Defined in [types.ts:100](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L100)*
___
@@ -621,7 +621,7 @@ ___
• **maxOrdersInStorage**? : *undefined | number*
-*Defined in [types.ts:165](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L165)*
+*Defined in [types.ts:167](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L167)*
___
@@ -629,7 +629,7 @@ ___
• **useBootstrapList**? : *undefined | false | true*
-*Defined in [types.ts:104](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L104)*
+*Defined in [types.ts:106](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L106)*
___
@@ -637,7 +637,7 @@ ___
• **verbosity**? : *[Verbosity](#enumeration-verbosity)*
-*Defined in [types.ts:95](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L95)*
+*Defined in [types.ts:97](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L97)*
___
@@ -645,7 +645,7 @@ ___
• **web3Provider**? : *SupportedProvider*
-*Defined in [types.ts:188](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L188)*
+*Defined in [types.ts:190](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L190)*
@@ -663,7 +663,7 @@ ___
• **coordinator**? : *undefined | string*
-*Defined in [types.ts:197](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L197)*
+*Defined in [types.ts:199](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L199)*
___
@@ -671,7 +671,7 @@ ___
• **coordinatorRegistry**? : *undefined | string*
-*Defined in [types.ts:198](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L198)*
+*Defined in [types.ts:200](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L200)*
___
@@ -679,7 +679,7 @@ ___
• **devUtils**: *string*
-*Defined in [types.ts:193](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L193)*
+*Defined in [types.ts:195](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L195)*
___
@@ -687,7 +687,7 @@ ___
• **erc1155Proxy**: *string*
-*Defined in [types.ts:196](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L196)*
+*Defined in [types.ts:198](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L198)*
___
@@ -695,7 +695,7 @@ ___
• **erc20Proxy**: *string*
-*Defined in [types.ts:194](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L194)*
+*Defined in [types.ts:196](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L196)*
___
@@ -703,7 +703,7 @@ ___
• **erc721Proxy**: *string*
-*Defined in [types.ts:195](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L195)*
+*Defined in [types.ts:197](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L197)*
___
@@ -711,7 +711,7 @@ ___
• **exchange**: *string*
-*Defined in [types.ts:192](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L192)*
+*Defined in [types.ts:194](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L194)*
___
@@ -719,7 +719,7 @@ ___
• **weth9**? : *undefined | string*
-*Defined in [types.ts:199](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L199)*
+*Defined in [types.ts:201](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L201)*
___
@@ -727,7 +727,7 @@ ___
• **zrxToken**? : *undefined | string*
-*Defined in [types.ts:200](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L200)*
+*Defined in [types.ts:202](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L202)*
@@ -745,7 +745,7 @@ ___
• **address**: *string*
-*Defined in [types.ts:490](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L490)*
+*Defined in [types.ts:516](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L516)*
___
@@ -753,7 +753,7 @@ ___
• **blockHash**: *string*
-*Defined in [types.ts:485](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L485)*
+*Defined in [types.ts:511](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L511)*
___
@@ -761,7 +761,7 @@ ___
• **isRemoved**: *boolean*
-*Defined in [types.ts:489](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L489)*
+*Defined in [types.ts:515](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L515)*
___
@@ -769,7 +769,7 @@ ___
• **kind**: *[ContractEventKind](#enumeration-contracteventkind)*
-*Defined in [types.ts:491](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L491)*
+*Defined in [types.ts:517](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L517)*
___
@@ -777,15 +777,15 @@ ___
• **logIndex**: *number*
-*Defined in [types.ts:488](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L488)*
+*Defined in [types.ts:514](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L514)*
___
## parameters
-• **parameters**: *[ContractEventParameters](#contracteventparameters)*
+• **parameters**: *ContractEventParameters*
-*Defined in [types.ts:492](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L492)*
+*Defined in [types.ts:518](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L518)*
___
@@ -793,7 +793,7 @@ ___
• **txHash**: *string*
-*Defined in [types.ts:486](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L486)*
+*Defined in [types.ts:512](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L512)*
___
@@ -801,7 +801,7 @@ ___
• **txIndex**: *number*
-*Defined in [types.ts:487](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L487)*
+*Defined in [types.ts:513](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L513)*
@@ -819,7 +819,7 @@ ___
• **approved**: *boolean*
-*Defined in [types.ts:360](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L360)*
+*Defined in [types.ts:380](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L380)*
___
@@ -827,7 +827,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:359](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L359)*
+*Defined in [types.ts:379](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L379)*
___
@@ -835,7 +835,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:358](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L358)*
+*Defined in [types.ts:378](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L378)*
@@ -853,7 +853,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:343](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L343)*
+*Defined in [types.ts:362](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L362)*
___
@@ -861,7 +861,7 @@ ___
• **ids**: *BigNumber[]*
-*Defined in [types.ts:345](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L345)*
+*Defined in [types.ts:364](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L364)*
___
@@ -869,7 +869,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:342](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L342)*
+*Defined in [types.ts:361](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L361)*
___
@@ -877,7 +877,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:344](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L344)*
+*Defined in [types.ts:363](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L363)*
___
@@ -885,7 +885,7 @@ ___
• **values**: *BigNumber[]*
-*Defined in [types.ts:346](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L346)*
+*Defined in [types.ts:365](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L365)*
@@ -903,7 +903,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:327](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L327)*
+*Defined in [types.ts:345](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L345)*
___
@@ -911,7 +911,7 @@ ___
• **id**: *BigNumber*
-*Defined in [types.ts:329](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L329)*
+*Defined in [types.ts:347](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L347)*
___
@@ -919,7 +919,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:326](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L326)*
+*Defined in [types.ts:344](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L344)*
___
@@ -927,7 +927,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:328](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L328)*
+*Defined in [types.ts:346](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L346)*
___
@@ -935,7 +935,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:330](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L330)*
+*Defined in [types.ts:348](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L348)*
@@ -953,7 +953,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:284](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L284)*
+*Defined in [types.ts:299](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L299)*
___
@@ -961,7 +961,7 @@ ___
• **spender**: *string*
-*Defined in [types.ts:285](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L285)*
+*Defined in [types.ts:300](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L300)*
___
@@ -969,7 +969,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:286](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L286)*
+*Defined in [types.ts:301](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L301)*
@@ -987,7 +987,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:272](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L272)*
+*Defined in [types.ts:286](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L286)*
___
@@ -995,7 +995,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:273](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L273)*
+*Defined in [types.ts:287](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L287)*
___
@@ -1003,7 +1003,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:274](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L274)*
+*Defined in [types.ts:288](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L288)*
@@ -1021,7 +1021,7 @@ ___
• **approved**: *string*
-*Defined in [types.ts:309](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L309)*
+*Defined in [types.ts:326](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L326)*
___
@@ -1029,7 +1029,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:308](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L308)*
+*Defined in [types.ts:325](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L325)*
___
@@ -1037,7 +1037,7 @@ ___
• **tokenId**: *BigNumber*
-*Defined in [types.ts:310](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L310)*
+*Defined in [types.ts:327](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L327)*
@@ -1055,7 +1055,7 @@ ___
• **approved**: *boolean*
-*Defined in [types.ts:322](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L322)*
+*Defined in [types.ts:340](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L340)*
___
@@ -1063,7 +1063,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:321](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L321)*
+*Defined in [types.ts:339](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L339)*
___
@@ -1071,7 +1071,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:320](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L320)*
+*Defined in [types.ts:338](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L338)*
@@ -1089,7 +1089,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:296](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L296)*
+*Defined in [types.ts:312](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L312)*
___
@@ -1097,7 +1097,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:297](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L297)*
+*Defined in [types.ts:313](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L313)*
___
@@ -1105,7 +1105,7 @@ ___
• **tokenId**: *BigNumber*
-*Defined in [types.ts:298](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L298)*
+*Defined in [types.ts:314](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L314)*
@@ -1123,7 +1123,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:400](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L400)*
+*Defined in [types.ts:421](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L421)*
___
@@ -1131,7 +1131,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:398](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L398)*
+*Defined in [types.ts:419](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L419)*
___
@@ -1139,7 +1139,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:402](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L402)*
+*Defined in [types.ts:423](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L423)*
___
@@ -1147,7 +1147,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:401](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L401)*
+*Defined in [types.ts:422](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L422)*
___
@@ -1155,7 +1155,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:399](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L399)*
+*Defined in [types.ts:420](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L420)*
___
@@ -1163,7 +1163,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:403](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L403)*
+*Defined in [types.ts:424](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L424)*
@@ -1181,7 +1181,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:407](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L407)*
+*Defined in [types.ts:428](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L428)*
___
@@ -1189,7 +1189,7 @@ ___
• **orderEpoch**: *BigNumber*
-*Defined in [types.ts:409](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L409)*
+*Defined in [types.ts:430](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L430)*
___
@@ -1197,7 +1197,7 @@ ___
• **orderSenderAddress**: *string*
-*Defined in [types.ts:408](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L408)*
+*Defined in [types.ts:429](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L429)*
@@ -1215,7 +1215,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:367](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L367)*
+*Defined in [types.ts:387](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L387)*
___
@@ -1223,7 +1223,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:364](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L364)*
+*Defined in [types.ts:384](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L384)*
___
@@ -1231,7 +1231,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:374](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L374)*
+*Defined in [types.ts:394](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L394)*
___
@@ -1239,7 +1239,7 @@ ___
• **makerAssetFilledAmount**: *BigNumber*
-*Defined in [types.ts:368](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L368)*
+*Defined in [types.ts:388](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L388)*
___
@@ -1247,7 +1247,7 @@ ___
• **makerFeeAssetData**: *string*
-*Defined in [types.ts:376](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L376)*
+*Defined in [types.ts:396](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L396)*
___
@@ -1255,7 +1255,7 @@ ___
• **makerFeePaid**: *BigNumber*
-*Defined in [types.ts:370](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L370)*
+*Defined in [types.ts:390](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L390)*
___
@@ -1263,7 +1263,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:373](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L373)*
+*Defined in [types.ts:393](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L393)*
___
@@ -1271,7 +1271,7 @@ ___
• **protocolFeePaid**: *BigNumber*
-*Defined in [types.ts:372](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L372)*
+*Defined in [types.ts:392](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L392)*
___
@@ -1279,7 +1279,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:366](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L366)*
+*Defined in [types.ts:386](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L386)*
___
@@ -1287,7 +1287,7 @@ ___
• **takerAddress**: *string*
-*Defined in [types.ts:365](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L365)*
+*Defined in [types.ts:385](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L385)*
___
@@ -1295,7 +1295,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:375](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L375)*
+*Defined in [types.ts:395](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L395)*
___
@@ -1303,7 +1303,7 @@ ___
• **takerAssetFilledAmount**: *BigNumber*
-*Defined in [types.ts:369](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L369)*
+*Defined in [types.ts:389](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L389)*
___
@@ -1311,7 +1311,7 @@ ___
• **takerFeeAssetData**: *string*
-*Defined in [types.ts:377](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L377)*
+*Defined in [types.ts:397](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L397)*
___
@@ -1319,7 +1319,7 @@ ___
• **takerFeePaid**: *BigNumber*
-*Defined in [types.ts:371](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L371)*
+*Defined in [types.ts:391](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L391)*
@@ -1337,7 +1337,7 @@ ___
• **ordersInfos**: *[OrderInfo](#interface-orderinfo)[]*
-*Defined in [types.ts:18](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L18)*
+*Defined in [types.ts:19](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L19)*
___
@@ -1345,7 +1345,7 @@ ___
• **snapshotID**: *string*
-*Defined in [types.ts:16](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L16)*
+*Defined in [types.ts:17](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L17)*
___
@@ -1353,7 +1353,7 @@ ___
• **snapshotTimestamp**: *number*
-*Defined in [types.ts:17](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L17)*
+*Defined in [types.ts:18](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L18)*
@@ -1373,7 +1373,7 @@ An interface for JSON schema types, which are used for custom order filters.
• **$ref**? : *undefined | string*
-*Defined in [types.ts:39](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L39)*
+*Defined in [types.ts:41](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L41)*
___
@@ -1381,7 +1381,7 @@ ___
• **$schema**? : *undefined | string*
-*Defined in [types.ts:38](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L38)*
+*Defined in [types.ts:40](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L40)*
___
@@ -1389,7 +1389,7 @@ ___
• **additionalItems**? : *boolean | [JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:50](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L50)*
+*Defined in [types.ts:52](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L52)*
___
@@ -1397,7 +1397,7 @@ ___
• **additionalProperties**? : *boolean | [JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:58](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L58)*
+*Defined in [types.ts:60](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L60)*
___
@@ -1405,7 +1405,7 @@ ___
• **allOf**? : *[JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:80](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L80)*
+*Defined in [types.ts:82](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L82)*
___
@@ -1413,7 +1413,7 @@ ___
• **anyOf**? : *[JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:81](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L81)*
+*Defined in [types.ts:83](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L83)*
___
@@ -1421,7 +1421,7 @@ ___
• **const**? : *any*
-*Defined in [types.ts:77](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L77)*
+*Defined in [types.ts:79](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L79)*
___
@@ -1429,7 +1429,7 @@ ___
• **definitions**? : *undefined | object*
-*Defined in [types.ts:59](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L59)*
+*Defined in [types.ts:61](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L61)*
___
@@ -1437,7 +1437,7 @@ ___
• **dependencies**? : *undefined | object*
-*Defined in [types.ts:68](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L68)*
+*Defined in [types.ts:70](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L70)*
___
@@ -1445,7 +1445,7 @@ ___
• **description**? : *undefined | string*
-*Defined in [types.ts:41](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L41)*
+*Defined in [types.ts:43](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L43)*
___
@@ -1453,7 +1453,7 @@ ___
• **enum**? : *any[]*
-*Defined in [types.ts:71](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L71)*
+*Defined in [types.ts:73](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L73)*
___
@@ -1461,7 +1461,7 @@ ___
• **exclusiveMaximum**? : *undefined | false | true*
-*Defined in [types.ts:44](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L44)*
+*Defined in [types.ts:46](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L46)*
___
@@ -1469,7 +1469,7 @@ ___
• **exclusiveMinimum**? : *undefined | false | true*
-*Defined in [types.ts:46](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L46)*
+*Defined in [types.ts:48](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L48)*
___
@@ -1477,7 +1477,7 @@ ___
• **format**? : *undefined | string*
-*Defined in [types.ts:79](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L79)*
+*Defined in [types.ts:81](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L81)*
___
@@ -1485,7 +1485,7 @@ ___
• **id**? : *undefined | string*
-*Defined in [types.ts:37](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L37)*
+*Defined in [types.ts:39](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L39)*
___
@@ -1493,7 +1493,7 @@ ___
• **items**? : *[JsonSchema](#interface-jsonschema) | [JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:51](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L51)*
+*Defined in [types.ts:53](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L53)*
___
@@ -1501,7 +1501,7 @@ ___
• **maxItems**? : *undefined | number*
-*Defined in [types.ts:52](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L52)*
+*Defined in [types.ts:54](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L54)*
___
@@ -1509,7 +1509,7 @@ ___
• **maxLength**? : *undefined | number*
-*Defined in [types.ts:47](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L47)*
+*Defined in [types.ts:49](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L49)*
___
@@ -1517,7 +1517,7 @@ ___
• **maxProperties**? : *undefined | number*
-*Defined in [types.ts:55](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L55)*
+*Defined in [types.ts:57](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L57)*
___
@@ -1525,7 +1525,7 @@ ___
• **maximum**? : *undefined | number*
-*Defined in [types.ts:43](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L43)*
+*Defined in [types.ts:45](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L45)*
___
@@ -1533,7 +1533,7 @@ ___
• **minItems**? : *undefined | number*
-*Defined in [types.ts:53](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L53)*
+*Defined in [types.ts:55](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L55)*
___
@@ -1541,7 +1541,7 @@ ___
• **minLength**? : *undefined | number*
-*Defined in [types.ts:48](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L48)*
+*Defined in [types.ts:50](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L50)*
___
@@ -1549,7 +1549,7 @@ ___
• **minProperties**? : *undefined | number*
-*Defined in [types.ts:56](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L56)*
+*Defined in [types.ts:58](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L58)*
___
@@ -1557,7 +1557,7 @@ ___
• **minimum**? : *undefined | number*
-*Defined in [types.ts:45](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L45)*
+*Defined in [types.ts:47](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L47)*
___
@@ -1565,7 +1565,7 @@ ___
• **multipleOf**? : *undefined | number*
-*Defined in [types.ts:42](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L42)*
+*Defined in [types.ts:44](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L44)*
___
@@ -1573,7 +1573,7 @@ ___
• **not**? : *[JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:83](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L83)*
+*Defined in [types.ts:85](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L85)*
___
@@ -1581,7 +1581,7 @@ ___
• **oneOf**? : *[JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:82](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L82)*
+*Defined in [types.ts:84](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L84)*
___
@@ -1589,7 +1589,7 @@ ___
• **pattern**? : *string | RegExp*
-*Defined in [types.ts:49](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L49)*
+*Defined in [types.ts:51](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L51)*
___
@@ -1597,7 +1597,7 @@ ___
• **patternProperties**? : *undefined | object*
-*Defined in [types.ts:65](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L65)*
+*Defined in [types.ts:67](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L67)*
___
@@ -1605,7 +1605,7 @@ ___
• **properties**? : *undefined | object*
-*Defined in [types.ts:62](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L62)*
+*Defined in [types.ts:64](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L64)*
___
@@ -1613,7 +1613,7 @@ ___
• **required**? : *string[]*
-*Defined in [types.ts:57](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L57)*
+*Defined in [types.ts:59](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L59)*
___
@@ -1621,7 +1621,7 @@ ___
• **title**? : *undefined | string*
-*Defined in [types.ts:40](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L40)*
+*Defined in [types.ts:42](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L42)*
___
@@ -1629,7 +1629,7 @@ ___
• **type**? : *string | string[]*
-*Defined in [types.ts:78](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L78)*
+*Defined in [types.ts:80](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L80)*
___
@@ -1637,7 +1637,7 @@ ___
• **uniqueItems**? : *undefined | false | true*
-*Defined in [types.ts:54](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L54)*
+*Defined in [types.ts:56](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L56)*
@@ -1655,7 +1655,7 @@ ___
• **hash**: *string*
-*Defined in [types.ts:613](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L613)*
+*Defined in [types.ts:643](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L643)*
___
@@ -1663,7 +1663,7 @@ ___
• **number**: *number*
-*Defined in [types.ts:612](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L612)*
+*Defined in [types.ts:642](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L642)*
@@ -1684,7 +1684,7 @@ or filled.
• **contractEvents**: *[ContractEvent](#interface-contractevent)[]*
-*Defined in [types.ts:539](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L539)*
+*Defined in [types.ts:569](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L569)*
___
@@ -1692,7 +1692,7 @@ ___
• **endState**: *[OrderEventEndState](#enumeration-ordereventendstate)*
-*Defined in [types.ts:537](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L537)*
+*Defined in [types.ts:567](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L567)*
___
@@ -1700,7 +1700,7 @@ ___
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:538](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L538)*
+*Defined in [types.ts:568](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L568)*
___
@@ -1708,7 +1708,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:535](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L535)*
+*Defined in [types.ts:565](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L565)*
___
@@ -1716,7 +1716,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:536](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L536)*
+*Defined in [types.ts:566](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L566)*
___
@@ -1724,7 +1724,7 @@ ___
• **timestampMs**: *number*
-*Defined in [types.ts:534](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L534)*
+*Defined in [types.ts:564](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L564)*
@@ -1742,7 +1742,7 @@ ___
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:30](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L30)*
+*Defined in [types.ts:32](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L32)*
___
@@ -1750,7 +1750,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:28](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L28)*
+*Defined in [types.ts:30](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L30)*
___
@@ -1758,7 +1758,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:29](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L29)*
+*Defined in [types.ts:31](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L31)*
@@ -1779,7 +1779,7 @@ rejected.
• **kind**: *[RejectedOrderKind](#enumeration-rejectedorderkind)*
-*Defined in [types.ts:589](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L589)*
+*Defined in [types.ts:619](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L619)*
___
@@ -1787,7 +1787,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:587](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L587)*
+*Defined in [types.ts:617](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L617)*
___
@@ -1795,7 +1795,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:588](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L588)*
+*Defined in [types.ts:618](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L618)*
___
@@ -1803,7 +1803,7 @@ ___
• **status**: *[RejectedOrderStatus](#interface-rejectedorderstatus)*
-*Defined in [types.ts:590](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L590)*
+*Defined in [types.ts:620](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L620)*
@@ -1823,7 +1823,7 @@ Provides more information about why an order was rejected.
• **code**: *string*
-*Defined in [types.ts:607](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L607)*
+*Defined in [types.ts:637](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L637)*
___
@@ -1831,7 +1831,7 @@ ___
• **message**: *string*
-*Defined in [types.ts:608](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L608)*
+*Defined in [types.ts:638](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L638)*
@@ -1849,7 +1849,7 @@ ___
• **ethRPCRateLimitExpiredRequests**: *number*
-*Defined in [types.ts:649](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L649)*
+*Defined in [types.ts:680](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L680)*
___
@@ -1857,7 +1857,7 @@ ___
• **ethRPCRequestsSentInCurrentUTCDay**: *number*
-*Defined in [types.ts:648](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L648)*
+*Defined in [types.ts:679](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L679)*
___
@@ -1865,7 +1865,7 @@ ___
• **ethereumChainID**: *number*
-*Defined in [types.ts:640](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L640)*
+*Defined in [types.ts:671](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L671)*
___
@@ -1873,7 +1873,7 @@ ___
• **latestBlock**: *[LatestBlock](#interface-latestblock)*
-*Defined in [types.ts:641](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L641)*
+*Defined in [types.ts:672](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L672)*
___
@@ -1881,7 +1881,7 @@ ___
• **maxExpirationTime**: *BigNumber*
-*Defined in [types.ts:646](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L646)*
+*Defined in [types.ts:677](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L677)*
___
@@ -1889,7 +1889,7 @@ ___
• **numOrders**: *number*
-*Defined in [types.ts:643](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L643)*
+*Defined in [types.ts:674](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L674)*
___
@@ -1897,7 +1897,7 @@ ___
• **numOrdersIncludingRemoved**: *number*
-*Defined in [types.ts:644](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L644)*
+*Defined in [types.ts:675](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L675)*
___
@@ -1905,7 +1905,7 @@ ___
• **numPeers**: *number*
-*Defined in [types.ts:642](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L642)*
+*Defined in [types.ts:673](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L673)*
___
@@ -1913,7 +1913,7 @@ ___
• **numPinnedOrders**: *number*
-*Defined in [types.ts:645](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L645)*
+*Defined in [types.ts:676](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L676)*
___
@@ -1921,7 +1921,7 @@ ___
• **peerID**: *string*
-*Defined in [types.ts:639](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L639)*
+*Defined in [types.ts:670](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L670)*
___
@@ -1929,7 +1929,7 @@ ___
• **pubSubTopic**: *string*
-*Defined in [types.ts:636](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L636)*
+*Defined in [types.ts:667](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L667)*
___
@@ -1937,7 +1937,7 @@ ___
• **rendezvous**: *string*
-*Defined in [types.ts:637](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L637)*
+*Defined in [types.ts:668](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L668)*
___
@@ -1945,7 +1945,7 @@ ___
• **secondaryRendezvous**: *string[]*
-*Defined in [types.ts:638](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L638)*
+*Defined in [types.ts:669](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L669)*
___
@@ -1953,7 +1953,7 @@ ___
• **startOfCurrentUTCDay**: *Date*
-*Defined in [types.ts:647](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L647)*
+*Defined in [types.ts:678](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L678)*
___
@@ -1961,7 +1961,7 @@ ___
• **version**: *string*
-*Defined in [types.ts:635](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L635)*
+*Defined in [types.ts:666](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L666)*
@@ -1981,7 +1981,7 @@ Indicates which orders where accepted, which were rejected, and why.
• **accepted**: *[AcceptedOrderInfo](#interface-acceptedorderinfo)[]*
-*Defined in [types.ts:568](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L568)*
+*Defined in [types.ts:598](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L598)*
___
@@ -1989,7 +1989,7 @@ ___
• **rejected**: *[RejectedOrderInfo](#interface-rejectedorderinfo)[]*
-*Defined in [types.ts:569](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L569)*
+*Defined in [types.ts:599](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L599)*
@@ -2007,7 +2007,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:429](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L429)*
+*Defined in [types.ts:452](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L452)*
___
@@ -2015,7 +2015,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:430](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L430)*
+*Defined in [types.ts:453](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L453)*
@@ -2033,7 +2033,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:419](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L419)*
+*Defined in [types.ts:441](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L441)*
___
@@ -2041,17 +2041,18 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:420](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L420)*
+*Defined in [types.ts:442](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L442)*
+
# Functions
## loadMeshStreamingForURLAsync
▸ **loadMeshStreamingWithURLAsync**(`url`: `string`): *Promise‹`void`›*
-*Defined in [index.ts:7](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/index.ts#L7)*
+*Defined in [index.ts:7](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/index.ts#L7)*
Loads the Wasm module that is provided by fetching a url.
@@ -2067,7 +2068,7 @@ Name | Type | Description |
▸ **loadMeshStreamingAsync**(`response`: `Response | Promise`): *Promise‹`void`›*
-*Defined in [index.ts:15](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/index.ts#L15)*
+*Defined in [index.ts:15](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/index.ts#L15)*
Loads the Wasm module that is provided by a response.
@@ -2075,6 +2076,6 @@ Loads the Wasm module that is provided by a response.
Name | Type | Description |
------ | ------ | ------ |
-`response` | `Response or Promise` | The Wasm response that supplies the Wasm binary |
+`response` | `Response | Promise` | The Wasm response that supplies the Wasm binary |
-
+
\ No newline at end of file
diff --git a/docs/browser-bindings/browser/README.md b/docs/browser-bindings/browser/README.md
index 748af8ca8..61de1b29d 100644
--- a/docs/browser-bindings/browser/README.md
+++ b/docs/browser-bindings/browser/README.md
@@ -1,4 +1,4 @@
-# @0x/mesh-browser - v9.2.1
+# @0x/mesh-browser - v9.3.0
## @0x/mesh-browser
diff --git a/docs/browser-bindings/browser/reference.md b/docs/browser-bindings/browser/reference.md
index edc97dad3..4052efa22 100644
--- a/docs/browser-bindings/browser/reference.md
+++ b/docs/browser-bindings/browser/reference.md
@@ -14,7 +14,7 @@ sending orders through the 0x Mesh network.
\+ **new Mesh**(`config`: [Config](#interface-config)): *[Mesh](#class-mesh)*
-*Defined in [mesh.ts:141](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L141)*
+*Defined in [mesh.ts:141](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L141)*
Instantiates a new Mesh instance.
@@ -34,7 +34,7 @@ An instance of Mesh
▸ **addOrdersAsync**(`orders`: SignedOrder[], `pinned`: boolean): *Promise‹[ValidationResults](#interface-validationresults)›*
-*Defined in [mesh.ts:291](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L291)*
+*Defined in [mesh.ts:291](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L291)*
Validates and adds the given orders to Mesh. If an order is successfully
added, Mesh will share it with any peers in the network and start
@@ -61,7 +61,7 @@ ___
▸ **getOrdersAsync**(`perPage`: number): *Promise‹[GetOrdersResponse](#interface-getordersresponse)›*
-*Defined in [mesh.ts:220](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L220)*
+*Defined in [mesh.ts:220](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L220)*
Get all 0x signed orders currently stored in the Mesh node
@@ -81,7 +81,7 @@ ___
▸ **getOrdersForPageAsync**(`page`: number, `perPage`: number, `snapshotID?`: undefined | string): *Promise‹[GetOrdersResponse](#interface-getordersresponse)›*
-*Defined in [mesh.ts:262](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L262)*
+*Defined in [mesh.ts:262](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L262)*
Get page of 0x signed orders stored on the Mesh node at the specified snapshot
@@ -103,7 +103,7 @@ ___
▸ **getStatsAsync**(): *Promise‹[Stats](#interface-stats)›*
-*Defined in [mesh.ts:203](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L203)*
+*Defined in [mesh.ts:203](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L203)*
Returns various stats about Mesh, including the total number of orders
and the number of peers Mesh is connected to.
@@ -116,7 +116,7 @@ ___
▸ **onError**(`handler`: function): *void*
-*Defined in [mesh.ts:161](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L161)*
+*Defined in [mesh.ts:161](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L161)*
Registers a handler which will be called in the event of a critical
error. Note that the handler will not be called for non-critical errors.
@@ -145,7 +145,7 @@ ___
▸ **onOrderEvents**(`handler`: function): *void*
-*Defined in [mesh.ts:176](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L176)*
+*Defined in [mesh.ts:176](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L176)*
Registers a handler which will be called for any incoming order events.
Order events are fired whenver an order is added, canceled, expired, or
@@ -174,7 +174,7 @@ ___
▸ **startAsync**(): *Promise‹void›*
-*Defined in [mesh.ts:187](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/mesh.ts#L187)*
+*Defined in [mesh.ts:187](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/mesh.ts#L187)*
Starts the Mesh node in the background. Mesh will automatically find
peers in the network and begin receiving orders from them.
@@ -193,7 +193,7 @@ peers in the network and begin receiving orders from them.
• **ERC1155ApprovalForAllEvent**: = "ERC1155ApprovalForAllEvent"
-*Defined in [types.ts:444](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L444)*
+*Defined in [types.ts:468](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L468)*
___
@@ -201,7 +201,7 @@ ___
• **ERC1155TransferBatchEvent**: = "ERC1155TransferBatchEvent"
-*Defined in [types.ts:446](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L446)*
+*Defined in [types.ts:470](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L470)*
___
@@ -209,7 +209,7 @@ ___
• **ERC1155TransferSingleEvent**: = "ERC1155TransferSingleEvent"
-*Defined in [types.ts:445](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L445)*
+*Defined in [types.ts:469](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L469)*
___
@@ -217,7 +217,7 @@ ___
• **ERC20ApprovalEvent**: = "ERC20ApprovalEvent"
-*Defined in [types.ts:440](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L440)*
+*Defined in [types.ts:464](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L464)*
___
@@ -225,7 +225,7 @@ ___
• **ERC20TransferEvent**: = "ERC20TransferEvent"
-*Defined in [types.ts:439](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L439)*
+*Defined in [types.ts:463](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L463)*
___
@@ -233,7 +233,7 @@ ___
• **ERC721ApprovalEvent**: = "ERC721ApprovalEvent"
-*Defined in [types.ts:442](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L442)*
+*Defined in [types.ts:466](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L466)*
___
@@ -241,7 +241,7 @@ ___
• **ERC721ApprovalForAllEvent**: = "ERC721ApprovalForAllEvent"
-*Defined in [types.ts:443](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L443)*
+*Defined in [types.ts:467](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L467)*
___
@@ -249,7 +249,7 @@ ___
• **ERC721TransferEvent**: = "ERC721TransferEvent"
-*Defined in [types.ts:441](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L441)*
+*Defined in [types.ts:465](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L465)*
___
@@ -257,7 +257,7 @@ ___
• **ExchangeCancelEvent**: = "ExchangeCancelEvent"
-*Defined in [types.ts:448](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L448)*
+*Defined in [types.ts:472](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L472)*
___
@@ -265,7 +265,7 @@ ___
• **ExchangeCancelUpToEvent**: = "ExchangeCancelUpToEvent"
-*Defined in [types.ts:449](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L449)*
+*Defined in [types.ts:473](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L473)*
___
@@ -273,7 +273,7 @@ ___
• **ExchangeFillEvent**: = "ExchangeFillEvent"
-*Defined in [types.ts:447](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L447)*
+*Defined in [types.ts:471](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L471)*
___
@@ -281,7 +281,7 @@ ___
• **WethDepositEvent**: = "WethDepositEvent"
-*Defined in [types.ts:450](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L450)*
+*Defined in [types.ts:474](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L474)*
___
@@ -289,7 +289,7 @@ ___
• **WethWithdrawalEvent**: = "WethWithdrawalEvent"
-*Defined in [types.ts:451](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L451)*
+*Defined in [types.ts:475](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L475)*
@@ -303,7 +303,7 @@ ___
• **Added**: = "ADDED"
-*Defined in [types.ts:509](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L509)*
+*Defined in [types.ts:538](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L538)*
___
@@ -311,7 +311,7 @@ ___
• **Cancelled**: = "CANCELLED"
-*Defined in [types.ts:512](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L512)*
+*Defined in [types.ts:541](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L541)*
___
@@ -319,7 +319,7 @@ ___
• **Expired**: = "EXPIRED"
-*Defined in [types.ts:513](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L513)*
+*Defined in [types.ts:542](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L542)*
___
@@ -327,7 +327,7 @@ ___
• **FillabilityIncreased**: = "FILLABILITY_INCREASED"
-*Defined in [types.ts:516](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L516)*
+*Defined in [types.ts:545](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L545)*
___
@@ -335,7 +335,7 @@ ___
• **Filled**: = "FILLED"
-*Defined in [types.ts:510](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L510)*
+*Defined in [types.ts:539](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L539)*
___
@@ -343,7 +343,7 @@ ___
• **FullyFilled**: = "FULLY_FILLED"
-*Defined in [types.ts:511](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L511)*
+*Defined in [types.ts:540](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L540)*
___
@@ -351,7 +351,7 @@ ___
• **Invalid**: = "INVALID"
-*Defined in [types.ts:508](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L508)*
+*Defined in [types.ts:537](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L537)*
___
@@ -359,7 +359,7 @@ ___
• **StoppedWatching**: = "STOPPED_WATCHING"
-*Defined in [types.ts:517](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L517)*
+*Defined in [types.ts:546](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L546)*
___
@@ -367,7 +367,7 @@ ___
• **Unexpired**: = "UNEXPIRED"
-*Defined in [types.ts:514](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L514)*
+*Defined in [types.ts:543](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L543)*
___
@@ -375,7 +375,7 @@ ___
• **Unfunded**: = "UNFUNDED"
-*Defined in [types.ts:515](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L515)*
+*Defined in [types.ts:544](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L544)*
@@ -391,7 +391,7 @@ A set of categories for rejected orders.
• **CoordinatorError**: = "COORDINATOR_ERROR"
-*Defined in [types.ts:600](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L600)*
+*Defined in [types.ts:630](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L630)*
___
@@ -399,7 +399,7 @@ ___
• **MeshError**: = "MESH_ERROR"
-*Defined in [types.ts:598](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L598)*
+*Defined in [types.ts:628](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L628)*
___
@@ -407,7 +407,7 @@ ___
• **MeshValidation**: = "MESH_VALIDATION"
-*Defined in [types.ts:599](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L599)*
+*Defined in [types.ts:629](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L629)*
___
@@ -415,7 +415,7 @@ ___
• **ZeroExValidation**: = "ZEROEX_VALIDATION"
-*Defined in [types.ts:597](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L597)*
+*Defined in [types.ts:627](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L627)*
@@ -429,7 +429,7 @@ ___
• **Debug**: = 5
-*Defined in [types.ts:209](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L209)*
+*Defined in [types.ts:211](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L211)*
___
@@ -437,7 +437,7 @@ ___
• **Error**: = 2
-*Defined in [types.ts:206](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L206)*
+*Defined in [types.ts:208](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L208)*
___
@@ -445,7 +445,7 @@ ___
• **Fatal**: = 1
-*Defined in [types.ts:205](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L205)*
+*Defined in [types.ts:207](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L207)*
___
@@ -453,7 +453,7 @@ ___
• **Info**: = 4
-*Defined in [types.ts:208](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L208)*
+*Defined in [types.ts:210](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L210)*
___
@@ -461,7 +461,7 @@ ___
• **Panic**: = 0
-*Defined in [types.ts:204](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L204)*
+*Defined in [types.ts:206](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L206)*
___
@@ -469,7 +469,7 @@ ___
• **Trace**: = 6
-*Defined in [types.ts:210](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L210)*
+*Defined in [types.ts:212](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L212)*
___
@@ -477,7 +477,7 @@ ___
• **Warn**: = 3
-*Defined in [types.ts:207](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L207)*
+*Defined in [types.ts:209](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L209)*
@@ -497,7 +497,7 @@ Info for any orders that were accepted.
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:578](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L578)*
+*Defined in [types.ts:608](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L608)*
___
@@ -505,7 +505,7 @@ ___
• **isNew**: *boolean*
-*Defined in [types.ts:579](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L579)*
+*Defined in [types.ts:609](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L609)*
___
@@ -513,7 +513,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:576](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L576)*
+*Defined in [types.ts:606](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L606)*
___
@@ -521,7 +521,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:577](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L577)*
+*Defined in [types.ts:607](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L607)*
@@ -541,7 +541,7 @@ A set of configuration options for Mesh.
• **blockPollingIntervalSeconds**? : *undefined | number*
-*Defined in [types.ts:116](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L116)*
+*Defined in [types.ts:118](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L118)*
___
@@ -549,7 +549,7 @@ ___
• **bootstrapList**? : *string[]*
-*Defined in [types.ts:109](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L109)*
+*Defined in [types.ts:111](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L111)*
___
@@ -557,7 +557,7 @@ ___
• **customContractAddresses**? : *[ContractAddresses](#interface-contractaddresses)*
-*Defined in [types.ts:160](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L160)*
+*Defined in [types.ts:162](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L162)*
___
@@ -565,7 +565,7 @@ ___
• **customOrderFilter**? : *[JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:185](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L185)*
+*Defined in [types.ts:187](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L187)*
___
@@ -573,7 +573,7 @@ ___
• **enableEthereumRPCRateLimiting**? : *undefined | false | true*
-*Defined in [types.ts:133](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L133)*
+*Defined in [types.ts:135](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L135)*
___
@@ -581,7 +581,7 @@ ___
• **ethereumChainID**: *number*
-*Defined in [types.ts:101](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L101)*
+*Defined in [types.ts:103](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L103)*
___
@@ -589,7 +589,7 @@ ___
• **ethereumRPCMaxContentLength**? : *undefined | number*
-*Defined in [types.ts:125](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L125)*
+*Defined in [types.ts:127](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L127)*
___
@@ -597,7 +597,7 @@ ___
• **ethereumRPCMaxRequestsPer24HrUTC**? : *undefined | number*
-*Defined in [types.ts:138](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L138)*
+*Defined in [types.ts:140](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L140)*
___
@@ -605,7 +605,7 @@ ___
• **ethereumRPCMaxRequestsPerSecond**? : *undefined | number*
-*Defined in [types.ts:144](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L144)*
+*Defined in [types.ts:146](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L146)*
___
@@ -613,7 +613,7 @@ ___
• **ethereumRPCURL**? : *undefined | string*
-*Defined in [types.ts:98](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L98)*
+*Defined in [types.ts:100](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L100)*
___
@@ -621,7 +621,7 @@ ___
• **maxOrdersInStorage**? : *undefined | number*
-*Defined in [types.ts:165](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L165)*
+*Defined in [types.ts:167](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L167)*
___
@@ -629,7 +629,7 @@ ___
• **useBootstrapList**? : *undefined | false | true*
-*Defined in [types.ts:104](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L104)*
+*Defined in [types.ts:106](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L106)*
___
@@ -637,7 +637,7 @@ ___
• **verbosity**? : *[Verbosity](#enumeration-verbosity)*
-*Defined in [types.ts:95](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L95)*
+*Defined in [types.ts:97](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L97)*
___
@@ -645,7 +645,7 @@ ___
• **web3Provider**? : *SupportedProvider*
-*Defined in [types.ts:188](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L188)*
+*Defined in [types.ts:190](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L190)*
@@ -663,7 +663,7 @@ ___
• **coordinator**? : *undefined | string*
-*Defined in [types.ts:197](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L197)*
+*Defined in [types.ts:199](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L199)*
___
@@ -671,7 +671,7 @@ ___
• **coordinatorRegistry**? : *undefined | string*
-*Defined in [types.ts:198](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L198)*
+*Defined in [types.ts:200](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L200)*
___
@@ -679,7 +679,7 @@ ___
• **devUtils**: *string*
-*Defined in [types.ts:193](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L193)*
+*Defined in [types.ts:195](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L195)*
___
@@ -687,7 +687,7 @@ ___
• **erc1155Proxy**: *string*
-*Defined in [types.ts:196](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L196)*
+*Defined in [types.ts:198](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L198)*
___
@@ -695,7 +695,7 @@ ___
• **erc20Proxy**: *string*
-*Defined in [types.ts:194](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L194)*
+*Defined in [types.ts:196](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L196)*
___
@@ -703,7 +703,7 @@ ___
• **erc721Proxy**: *string*
-*Defined in [types.ts:195](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L195)*
+*Defined in [types.ts:197](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L197)*
___
@@ -711,7 +711,7 @@ ___
• **exchange**: *string*
-*Defined in [types.ts:192](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L192)*
+*Defined in [types.ts:194](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L194)*
___
@@ -719,7 +719,7 @@ ___
• **weth9**? : *undefined | string*
-*Defined in [types.ts:199](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L199)*
+*Defined in [types.ts:201](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L201)*
___
@@ -727,7 +727,7 @@ ___
• **zrxToken**? : *undefined | string*
-*Defined in [types.ts:200](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L200)*
+*Defined in [types.ts:202](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L202)*
@@ -745,7 +745,7 @@ ___
• **address**: *string*
-*Defined in [types.ts:490](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L490)*
+*Defined in [types.ts:516](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L516)*
___
@@ -753,7 +753,7 @@ ___
• **blockHash**: *string*
-*Defined in [types.ts:485](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L485)*
+*Defined in [types.ts:511](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L511)*
___
@@ -761,7 +761,7 @@ ___
• **isRemoved**: *boolean*
-*Defined in [types.ts:489](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L489)*
+*Defined in [types.ts:515](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L515)*
___
@@ -769,7 +769,7 @@ ___
• **kind**: *[ContractEventKind](#enumeration-contracteventkind)*
-*Defined in [types.ts:491](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L491)*
+*Defined in [types.ts:517](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L517)*
___
@@ -777,15 +777,15 @@ ___
• **logIndex**: *number*
-*Defined in [types.ts:488](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L488)*
+*Defined in [types.ts:514](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L514)*
___
## parameters
-• **parameters**: *[ContractEventParameters](#contracteventparameters)*
+• **parameters**: *ContractEventParameters*
-*Defined in [types.ts:492](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L492)*
+*Defined in [types.ts:518](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L518)*
___
@@ -793,7 +793,7 @@ ___
• **txHash**: *string*
-*Defined in [types.ts:486](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L486)*
+*Defined in [types.ts:512](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L512)*
___
@@ -801,7 +801,7 @@ ___
• **txIndex**: *number*
-*Defined in [types.ts:487](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L487)*
+*Defined in [types.ts:513](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L513)*
@@ -819,7 +819,7 @@ ___
• **approved**: *boolean*
-*Defined in [types.ts:360](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L360)*
+*Defined in [types.ts:380](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L380)*
___
@@ -827,7 +827,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:359](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L359)*
+*Defined in [types.ts:379](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L379)*
___
@@ -835,7 +835,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:358](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L358)*
+*Defined in [types.ts:378](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L378)*
@@ -853,7 +853,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:343](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L343)*
+*Defined in [types.ts:362](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L362)*
___
@@ -861,7 +861,7 @@ ___
• **ids**: *BigNumber[]*
-*Defined in [types.ts:345](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L345)*
+*Defined in [types.ts:364](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L364)*
___
@@ -869,7 +869,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:342](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L342)*
+*Defined in [types.ts:361](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L361)*
___
@@ -877,7 +877,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:344](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L344)*
+*Defined in [types.ts:363](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L363)*
___
@@ -885,7 +885,7 @@ ___
• **values**: *BigNumber[]*
-*Defined in [types.ts:346](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L346)*
+*Defined in [types.ts:365](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L365)*
@@ -903,7 +903,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:327](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L327)*
+*Defined in [types.ts:345](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L345)*
___
@@ -911,7 +911,7 @@ ___
• **id**: *BigNumber*
-*Defined in [types.ts:329](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L329)*
+*Defined in [types.ts:347](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L347)*
___
@@ -919,7 +919,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:326](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L326)*
+*Defined in [types.ts:344](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L344)*
___
@@ -927,7 +927,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:328](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L328)*
+*Defined in [types.ts:346](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L346)*
___
@@ -935,7 +935,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:330](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L330)*
+*Defined in [types.ts:348](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L348)*
@@ -953,7 +953,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:284](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L284)*
+*Defined in [types.ts:299](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L299)*
___
@@ -961,7 +961,7 @@ ___
• **spender**: *string*
-*Defined in [types.ts:285](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L285)*
+*Defined in [types.ts:300](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L300)*
___
@@ -969,7 +969,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:286](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L286)*
+*Defined in [types.ts:301](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L301)*
@@ -987,7 +987,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:272](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L272)*
+*Defined in [types.ts:286](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L286)*
___
@@ -995,7 +995,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:273](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L273)*
+*Defined in [types.ts:287](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L287)*
___
@@ -1003,7 +1003,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:274](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L274)*
+*Defined in [types.ts:288](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L288)*
@@ -1021,7 +1021,7 @@ ___
• **approved**: *string*
-*Defined in [types.ts:309](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L309)*
+*Defined in [types.ts:326](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L326)*
___
@@ -1029,7 +1029,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:308](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L308)*
+*Defined in [types.ts:325](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L325)*
___
@@ -1037,7 +1037,7 @@ ___
• **tokenId**: *BigNumber*
-*Defined in [types.ts:310](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L310)*
+*Defined in [types.ts:327](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L327)*
@@ -1055,7 +1055,7 @@ ___
• **approved**: *boolean*
-*Defined in [types.ts:322](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L322)*
+*Defined in [types.ts:340](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L340)*
___
@@ -1063,7 +1063,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:321](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L321)*
+*Defined in [types.ts:339](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L339)*
___
@@ -1071,7 +1071,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:320](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L320)*
+*Defined in [types.ts:338](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L338)*
@@ -1089,7 +1089,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:296](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L296)*
+*Defined in [types.ts:312](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L312)*
___
@@ -1097,7 +1097,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:297](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L297)*
+*Defined in [types.ts:313](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L313)*
___
@@ -1105,7 +1105,7 @@ ___
• **tokenId**: *BigNumber*
-*Defined in [types.ts:298](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L298)*
+*Defined in [types.ts:314](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L314)*
@@ -1123,7 +1123,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:400](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L400)*
+*Defined in [types.ts:421](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L421)*
___
@@ -1131,7 +1131,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:398](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L398)*
+*Defined in [types.ts:419](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L419)*
___
@@ -1139,7 +1139,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:402](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L402)*
+*Defined in [types.ts:423](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L423)*
___
@@ -1147,7 +1147,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:401](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L401)*
+*Defined in [types.ts:422](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L422)*
___
@@ -1155,7 +1155,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:399](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L399)*
+*Defined in [types.ts:420](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L420)*
___
@@ -1163,7 +1163,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:403](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L403)*
+*Defined in [types.ts:424](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L424)*
@@ -1181,7 +1181,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:407](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L407)*
+*Defined in [types.ts:428](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L428)*
___
@@ -1189,7 +1189,7 @@ ___
• **orderEpoch**: *BigNumber*
-*Defined in [types.ts:409](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L409)*
+*Defined in [types.ts:430](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L430)*
___
@@ -1197,7 +1197,7 @@ ___
• **orderSenderAddress**: *string*
-*Defined in [types.ts:408](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L408)*
+*Defined in [types.ts:429](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L429)*
@@ -1215,7 +1215,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:367](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L367)*
+*Defined in [types.ts:387](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L387)*
___
@@ -1223,7 +1223,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:364](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L364)*
+*Defined in [types.ts:384](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L384)*
___
@@ -1231,7 +1231,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:374](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L374)*
+*Defined in [types.ts:394](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L394)*
___
@@ -1239,7 +1239,7 @@ ___
• **makerAssetFilledAmount**: *BigNumber*
-*Defined in [types.ts:368](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L368)*
+*Defined in [types.ts:388](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L388)*
___
@@ -1247,7 +1247,7 @@ ___
• **makerFeeAssetData**: *string*
-*Defined in [types.ts:376](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L376)*
+*Defined in [types.ts:396](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L396)*
___
@@ -1255,7 +1255,7 @@ ___
• **makerFeePaid**: *BigNumber*
-*Defined in [types.ts:370](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L370)*
+*Defined in [types.ts:390](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L390)*
___
@@ -1263,7 +1263,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:373](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L373)*
+*Defined in [types.ts:393](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L393)*
___
@@ -1271,7 +1271,7 @@ ___
• **protocolFeePaid**: *BigNumber*
-*Defined in [types.ts:372](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L372)*
+*Defined in [types.ts:392](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L392)*
___
@@ -1279,7 +1279,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:366](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L366)*
+*Defined in [types.ts:386](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L386)*
___
@@ -1287,7 +1287,7 @@ ___
• **takerAddress**: *string*
-*Defined in [types.ts:365](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L365)*
+*Defined in [types.ts:385](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L385)*
___
@@ -1295,7 +1295,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:375](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L375)*
+*Defined in [types.ts:395](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L395)*
___
@@ -1303,7 +1303,7 @@ ___
• **takerAssetFilledAmount**: *BigNumber*
-*Defined in [types.ts:369](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L369)*
+*Defined in [types.ts:389](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L389)*
___
@@ -1311,7 +1311,7 @@ ___
• **takerFeeAssetData**: *string*
-*Defined in [types.ts:377](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L377)*
+*Defined in [types.ts:397](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L397)*
___
@@ -1319,7 +1319,7 @@ ___
• **takerFeePaid**: *BigNumber*
-*Defined in [types.ts:371](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L371)*
+*Defined in [types.ts:391](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L391)*
@@ -1337,7 +1337,7 @@ ___
• **ordersInfos**: *[OrderInfo](#interface-orderinfo)[]*
-*Defined in [types.ts:18](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L18)*
+*Defined in [types.ts:19](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L19)*
___
@@ -1345,7 +1345,7 @@ ___
• **snapshotID**: *string*
-*Defined in [types.ts:16](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L16)*
+*Defined in [types.ts:17](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L17)*
___
@@ -1353,7 +1353,7 @@ ___
• **snapshotTimestamp**: *number*
-*Defined in [types.ts:17](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L17)*
+*Defined in [types.ts:18](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L18)*
@@ -1373,7 +1373,7 @@ An interface for JSON schema types, which are used for custom order filters.
• **$ref**? : *undefined | string*
-*Defined in [types.ts:39](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L39)*
+*Defined in [types.ts:41](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L41)*
___
@@ -1381,7 +1381,7 @@ ___
• **$schema**? : *undefined | string*
-*Defined in [types.ts:38](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L38)*
+*Defined in [types.ts:40](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L40)*
___
@@ -1389,7 +1389,7 @@ ___
• **additionalItems**? : *boolean | [JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:50](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L50)*
+*Defined in [types.ts:52](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L52)*
___
@@ -1397,7 +1397,7 @@ ___
• **additionalProperties**? : *boolean | [JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:58](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L58)*
+*Defined in [types.ts:60](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L60)*
___
@@ -1405,7 +1405,7 @@ ___
• **allOf**? : *[JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:80](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L80)*
+*Defined in [types.ts:82](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L82)*
___
@@ -1413,7 +1413,7 @@ ___
• **anyOf**? : *[JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:81](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L81)*
+*Defined in [types.ts:83](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L83)*
___
@@ -1421,7 +1421,7 @@ ___
• **const**? : *any*
-*Defined in [types.ts:77](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L77)*
+*Defined in [types.ts:79](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L79)*
___
@@ -1429,7 +1429,7 @@ ___
• **definitions**? : *undefined | object*
-*Defined in [types.ts:59](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L59)*
+*Defined in [types.ts:61](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L61)*
___
@@ -1437,7 +1437,7 @@ ___
• **dependencies**? : *undefined | object*
-*Defined in [types.ts:68](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L68)*
+*Defined in [types.ts:70](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L70)*
___
@@ -1445,7 +1445,7 @@ ___
• **description**? : *undefined | string*
-*Defined in [types.ts:41](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L41)*
+*Defined in [types.ts:43](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L43)*
___
@@ -1453,7 +1453,7 @@ ___
• **enum**? : *any[]*
-*Defined in [types.ts:71](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L71)*
+*Defined in [types.ts:73](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L73)*
___
@@ -1461,7 +1461,7 @@ ___
• **exclusiveMaximum**? : *undefined | false | true*
-*Defined in [types.ts:44](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L44)*
+*Defined in [types.ts:46](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L46)*
___
@@ -1469,7 +1469,7 @@ ___
• **exclusiveMinimum**? : *undefined | false | true*
-*Defined in [types.ts:46](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L46)*
+*Defined in [types.ts:48](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L48)*
___
@@ -1477,7 +1477,7 @@ ___
• **format**? : *undefined | string*
-*Defined in [types.ts:79](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L79)*
+*Defined in [types.ts:81](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L81)*
___
@@ -1485,7 +1485,7 @@ ___
• **id**? : *undefined | string*
-*Defined in [types.ts:37](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L37)*
+*Defined in [types.ts:39](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L39)*
___
@@ -1493,7 +1493,7 @@ ___
• **items**? : *[JsonSchema](#interface-jsonschema) | [JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:51](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L51)*
+*Defined in [types.ts:53](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L53)*
___
@@ -1501,7 +1501,7 @@ ___
• **maxItems**? : *undefined | number*
-*Defined in [types.ts:52](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L52)*
+*Defined in [types.ts:54](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L54)*
___
@@ -1509,7 +1509,7 @@ ___
• **maxLength**? : *undefined | number*
-*Defined in [types.ts:47](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L47)*
+*Defined in [types.ts:49](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L49)*
___
@@ -1517,7 +1517,7 @@ ___
• **maxProperties**? : *undefined | number*
-*Defined in [types.ts:55](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L55)*
+*Defined in [types.ts:57](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L57)*
___
@@ -1525,7 +1525,7 @@ ___
• **maximum**? : *undefined | number*
-*Defined in [types.ts:43](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L43)*
+*Defined in [types.ts:45](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L45)*
___
@@ -1533,7 +1533,7 @@ ___
• **minItems**? : *undefined | number*
-*Defined in [types.ts:53](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L53)*
+*Defined in [types.ts:55](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L55)*
___
@@ -1541,7 +1541,7 @@ ___
• **minLength**? : *undefined | number*
-*Defined in [types.ts:48](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L48)*
+*Defined in [types.ts:50](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L50)*
___
@@ -1549,7 +1549,7 @@ ___
• **minProperties**? : *undefined | number*
-*Defined in [types.ts:56](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L56)*
+*Defined in [types.ts:58](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L58)*
___
@@ -1557,7 +1557,7 @@ ___
• **minimum**? : *undefined | number*
-*Defined in [types.ts:45](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L45)*
+*Defined in [types.ts:47](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L47)*
___
@@ -1565,7 +1565,7 @@ ___
• **multipleOf**? : *undefined | number*
-*Defined in [types.ts:42](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L42)*
+*Defined in [types.ts:44](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L44)*
___
@@ -1573,7 +1573,7 @@ ___
• **not**? : *[JsonSchema](#interface-jsonschema)*
-*Defined in [types.ts:83](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L83)*
+*Defined in [types.ts:85](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L85)*
___
@@ -1581,7 +1581,7 @@ ___
• **oneOf**? : *[JsonSchema](#interface-jsonschema)[]*
-*Defined in [types.ts:82](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L82)*
+*Defined in [types.ts:84](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L84)*
___
@@ -1589,7 +1589,7 @@ ___
• **pattern**? : *string | RegExp*
-*Defined in [types.ts:49](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L49)*
+*Defined in [types.ts:51](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L51)*
___
@@ -1597,7 +1597,7 @@ ___
• **patternProperties**? : *undefined | object*
-*Defined in [types.ts:65](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L65)*
+*Defined in [types.ts:67](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L67)*
___
@@ -1605,7 +1605,7 @@ ___
• **properties**? : *undefined | object*
-*Defined in [types.ts:62](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L62)*
+*Defined in [types.ts:64](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L64)*
___
@@ -1613,7 +1613,7 @@ ___
• **required**? : *string[]*
-*Defined in [types.ts:57](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L57)*
+*Defined in [types.ts:59](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L59)*
___
@@ -1621,7 +1621,7 @@ ___
• **title**? : *undefined | string*
-*Defined in [types.ts:40](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L40)*
+*Defined in [types.ts:42](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L42)*
___
@@ -1629,7 +1629,7 @@ ___
• **type**? : *string | string[]*
-*Defined in [types.ts:78](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L78)*
+*Defined in [types.ts:80](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L80)*
___
@@ -1637,7 +1637,7 @@ ___
• **uniqueItems**? : *undefined | false | true*
-*Defined in [types.ts:54](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L54)*
+*Defined in [types.ts:56](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L56)*
@@ -1655,7 +1655,7 @@ ___
• **hash**: *string*
-*Defined in [types.ts:613](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L613)*
+*Defined in [types.ts:643](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L643)*
___
@@ -1663,7 +1663,7 @@ ___
• **number**: *number*
-*Defined in [types.ts:612](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L612)*
+*Defined in [types.ts:642](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L642)*
@@ -1684,7 +1684,7 @@ or filled.
• **contractEvents**: *[ContractEvent](#interface-contractevent)[]*
-*Defined in [types.ts:539](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L539)*
+*Defined in [types.ts:569](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L569)*
___
@@ -1692,7 +1692,7 @@ ___
• **endState**: *[OrderEventEndState](#enumeration-ordereventendstate)*
-*Defined in [types.ts:537](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L537)*
+*Defined in [types.ts:567](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L567)*
___
@@ -1700,7 +1700,7 @@ ___
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:538](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L538)*
+*Defined in [types.ts:568](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L568)*
___
@@ -1708,7 +1708,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:535](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L535)*
+*Defined in [types.ts:565](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L565)*
___
@@ -1716,7 +1716,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:536](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L536)*
+*Defined in [types.ts:566](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L566)*
___
@@ -1724,7 +1724,7 @@ ___
• **timestampMs**: *number*
-*Defined in [types.ts:534](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L534)*
+*Defined in [types.ts:564](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L564)*
@@ -1742,7 +1742,7 @@ ___
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:30](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L30)*
+*Defined in [types.ts:32](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L32)*
___
@@ -1750,7 +1750,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:28](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L28)*
+*Defined in [types.ts:30](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L30)*
___
@@ -1758,7 +1758,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:29](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L29)*
+*Defined in [types.ts:31](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L31)*
@@ -1779,7 +1779,7 @@ rejected.
• **kind**: *[RejectedOrderKind](#enumeration-rejectedorderkind)*
-*Defined in [types.ts:589](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L589)*
+*Defined in [types.ts:619](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L619)*
___
@@ -1787,7 +1787,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:587](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L587)*
+*Defined in [types.ts:617](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L617)*
___
@@ -1795,7 +1795,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:588](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L588)*
+*Defined in [types.ts:618](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L618)*
___
@@ -1803,7 +1803,7 @@ ___
• **status**: *[RejectedOrderStatus](#interface-rejectedorderstatus)*
-*Defined in [types.ts:590](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L590)*
+*Defined in [types.ts:620](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L620)*
@@ -1823,7 +1823,7 @@ Provides more information about why an order was rejected.
• **code**: *string*
-*Defined in [types.ts:607](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L607)*
+*Defined in [types.ts:637](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L637)*
___
@@ -1831,7 +1831,7 @@ ___
• **message**: *string*
-*Defined in [types.ts:608](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L608)*
+*Defined in [types.ts:638](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L638)*
@@ -1849,7 +1849,7 @@ ___
• **ethRPCRateLimitExpiredRequests**: *number*
-*Defined in [types.ts:649](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L649)*
+*Defined in [types.ts:680](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L680)*
___
@@ -1857,7 +1857,7 @@ ___
• **ethRPCRequestsSentInCurrentUTCDay**: *number*
-*Defined in [types.ts:648](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L648)*
+*Defined in [types.ts:679](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L679)*
___
@@ -1865,7 +1865,7 @@ ___
• **ethereumChainID**: *number*
-*Defined in [types.ts:640](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L640)*
+*Defined in [types.ts:671](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L671)*
___
@@ -1873,7 +1873,7 @@ ___
• **latestBlock**: *[LatestBlock](#interface-latestblock)*
-*Defined in [types.ts:641](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L641)*
+*Defined in [types.ts:672](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L672)*
___
@@ -1881,7 +1881,7 @@ ___
• **maxExpirationTime**: *BigNumber*
-*Defined in [types.ts:646](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L646)*
+*Defined in [types.ts:677](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L677)*
___
@@ -1889,7 +1889,7 @@ ___
• **numOrders**: *number*
-*Defined in [types.ts:643](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L643)*
+*Defined in [types.ts:674](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L674)*
___
@@ -1897,7 +1897,7 @@ ___
• **numOrdersIncludingRemoved**: *number*
-*Defined in [types.ts:644](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L644)*
+*Defined in [types.ts:675](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L675)*
___
@@ -1905,7 +1905,7 @@ ___
• **numPeers**: *number*
-*Defined in [types.ts:642](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L642)*
+*Defined in [types.ts:673](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L673)*
___
@@ -1913,7 +1913,7 @@ ___
• **numPinnedOrders**: *number*
-*Defined in [types.ts:645](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L645)*
+*Defined in [types.ts:676](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L676)*
___
@@ -1921,7 +1921,7 @@ ___
• **peerID**: *string*
-*Defined in [types.ts:639](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L639)*
+*Defined in [types.ts:670](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L670)*
___
@@ -1929,7 +1929,7 @@ ___
• **pubSubTopic**: *string*
-*Defined in [types.ts:636](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L636)*
+*Defined in [types.ts:667](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L667)*
___
@@ -1937,7 +1937,7 @@ ___
• **rendezvous**: *string*
-*Defined in [types.ts:637](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L637)*
+*Defined in [types.ts:668](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L668)*
___
@@ -1945,7 +1945,7 @@ ___
• **secondaryRendezvous**: *string[]*
-*Defined in [types.ts:638](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L638)*
+*Defined in [types.ts:669](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L669)*
___
@@ -1953,7 +1953,7 @@ ___
• **startOfCurrentUTCDay**: *Date*
-*Defined in [types.ts:647](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L647)*
+*Defined in [types.ts:678](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L678)*
___
@@ -1961,7 +1961,7 @@ ___
• **version**: *string*
-*Defined in [types.ts:635](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L635)*
+*Defined in [types.ts:666](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L666)*
@@ -1981,7 +1981,7 @@ Indicates which orders where accepted, which were rejected, and why.
• **accepted**: *[AcceptedOrderInfo](#interface-acceptedorderinfo)[]*
-*Defined in [types.ts:568](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L568)*
+*Defined in [types.ts:598](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L598)*
___
@@ -1989,7 +1989,7 @@ ___
• **rejected**: *[RejectedOrderInfo](#interface-rejectedorderinfo)[]*
-*Defined in [types.ts:569](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L569)*
+*Defined in [types.ts:599](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L599)*
@@ -2007,7 +2007,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:429](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L429)*
+*Defined in [types.ts:452](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L452)*
___
@@ -2015,7 +2015,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:430](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L430)*
+*Defined in [types.ts:453](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L453)*
@@ -2033,7 +2033,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:419](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L419)*
+*Defined in [types.ts:441](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L441)*
___
@@ -2041,7 +2041,8 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:420](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/browser-lite/src/types.ts#L420)*
+*Defined in [types.ts:442](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/browser-lite/src/types.ts#L442)*
+
diff --git a/docs/browser.md b/docs/browser.md
index 0dbad4112..a6bf9a0a0 100644
--- a/docs/browser.md
+++ b/docs/browser.md
@@ -44,7 +44,7 @@ Using this package is a bit more complicated than using the `@0x/mesh-browser` p
WebAssembly binaries for each version of 0x-mesh that has an associated `@0x/mesh-browser-lite`
package can be found in the [0x-mesh release notes](https://github.com/0xProject/0x-mesh/releases).
The user will need to serve the appropriate binary on a server or CDN of their choice.
-The package gives users the option of providing a URL to the `loadMeshStreamingFromURLAsync`
+The package gives users the option of providing a URL to the `loadMeshStreamingWithURLAsync`
function or a `Response` object to the `loadMeshStreamingAsync` function in their
application. The URL or `Response` option should be chosen in such a way that they
load the Mesh Binary that is being served.
diff --git a/docs/custom_order_filters.md b/docs/custom_order_filters.md
new file mode 100644
index 000000000..30a874fbe
--- /dev/null
+++ b/docs/custom_order_filters.md
@@ -0,0 +1,132 @@
+# Custom Order Filters
+
+Mesh supports the creation of separate sub-networks where 0x orders that adhere to a specific schema are shared. Each sub-network is built around a custom order filter. The custom filter defines which orders are allowed to be shared within a sub-network. For example:
+
+- All orders for a specific asset pair (e.g., WETH/DAI)
+- All orders for non-fungibles (i.e., ERC721, ERC1155)
+- All orders used by a specific DApp
+
+A custom filter may be passed into Mesh as a [JSON Schema](https://json-schema.org/) via the `CUSTOM_ORDER_FILTER` environment variable. Messages that contain orders that don't match this schema will be dropped. As a limitation, filtering is only possible by looking at the static fields of an order. So for example, it is not possible to filter orders by doing an on-chain check or sending an HTTP request to a third-party API. We don't expect that this limitation is going to be a problem in practice and it comes with the huge benefit of enabling cross-topic forwarding in the future (more on that later).
+
+## New order and message schemas.
+
+All orders must match the following JSON Schema:
+
+```json
+{
+ "id": "/rootOrder",
+ "allOf": [{
+ "$ref": "/customOrder"
+ }, {
+ "$ref": "/signedOrder"
+ }]
+}
+```
+
+- `/signedOrder` is the JSON Schema that will match any valid 0x orders.
+- `/customOrder` is the custom schema passed in through the `CUSTOM_ORDER_FILTER` environment variable.
+
+Organizing the JSON Schema for orders like this means that `CUSTOM_ORDER_FILTER` can be relatively small. It doesn't need to contain all the required fields for a signed 0x order. It just needs to contain any _additional_ requirements on top of the default ones.
+
+### Example custom order schemas
+
+#### All orders:
+
+The following `CUSTOM_ORDER_FILTER` doesn't add any additional requirements. All valid signed 0x orders will be accepted. This is the default value if no custom filter is passed in.
+
+```json
+{}
+```
+
+#### Orders with a specific sender address:
+
+```json
+{
+ "properties": {
+ "senderAddress": {
+ "pattern": "0x00000000000000000000000000000000ba5eba11",
+ "type": "string"
+ }
+ }
+}
+```
+
+#### Mainnet WETH <-> DAI orders:
+```json
+{
+ "oneOf": [
+ {
+ "properties": {
+ "makerAssetData": {
+ "pattern": "0xf47261b00000000000000000000000006b175474e89094c44da98b954eedeac495271d0f",
+ "type": "string"
+ },
+ "takerAssetData": {
+ "pattern": "0xf47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "properties": {
+ "makerAssetData": {
+ "pattern": "0xf47261b0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
+ "type": "string"
+ },
+ "takerAssetData": {
+ "pattern": "0xf47261b00000000000000000000000006b175474e89094c44da98b954eedeac495271d0f",
+ "type": "string"
+ }
+ }
+ }
+ ]
+}
+```
+
+#### Any ERC721 order:
+
+```json
+{
+ "oneOf": [
+ {
+ "properties": {
+ "makerAssetData": {
+ "pattern": "0x02571792.*",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "properties": {
+ "takerAssetData": {
+ "pattern": "0x02571792.*",
+ "type": "string"
+ }
+ }
+ }
+ ]
+}
+```
+
+#### Augur V2 orders:
+
+```json
+{
+ "properties": {
+ "makerAssetData": {
+ "pattern": ".*${AUGUR_ERC1155_CONTRACT_ADDRESS}.*"
+ }
+ }
+}
+```
+
+Where `${AUGUR_ERC1155_CONTRACT_ADDRESS}` needs to be replaced with the Augur ERC1155 token used to represent the outcomes of their various prediction markets.
+
+
+As you can see by the above examples, JSON-Schema has support for [regular expressions](https://json-schema.org/understanding-json-schema/reference/regular_expressions.html) allowing for partial matching of any 0x order field.
+
+## Limitations
+
+Nodes that are spun up with a custom filter will share all their orders with nodes that are either using the exact same filter or the default "all" filter (i.e., "{}"). They will _not_ share orders with nodes using different custom filters (even if a given order matches both filters) because each filter results in a separate sub-network. Therefore, custom filters are most useful for applications where users care about a distinct subset of 0x orders.
+
+If you wanted to connect two sub-networks with overlapping valid orders, you could spin up a Mesh node for each sub-network and additionally run a [bridge script](https://github.com/0xProject/0x-mesh/blob/master/cmd/mesh-bridge/main.go) to send orders from one sub-network to the other. Longer term, we hope to add support for cross-topic forwarding, which will allow Mesh nodes to do this under-the-hood.
diff --git a/docs/deployment.md b/docs/deployment.md
index e4d589af1..e591d3d58 100644
--- a/docs/deployment.md
+++ b/docs/deployment.md
@@ -1,4 +1,4 @@
-[![Version](https://img.shields.io/badge/version-9.2.1-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
+[![Version](https://img.shields.io/badge/version-9.3.0-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
# 0x Mesh Deployment Guide
diff --git a/docs/deployment_with_telemetry.md b/docs/deployment_with_telemetry.md
index 04d63778d..e5b1d763e 100644
--- a/docs/deployment_with_telemetry.md
+++ b/docs/deployment_with_telemetry.md
@@ -1,4 +1,4 @@
-[![Version](https://img.shields.io/badge/version-9.2.1-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
+[![Version](https://img.shields.io/badge/version-9.3.0-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
## Deploying a Telemetry-Enabled Mesh Node
diff --git a/docs/json_rpc_clients/typescript/README.md b/docs/json_rpc_clients/typescript/README.md
index da0fecccc..a5c48368e 100644
--- a/docs/json_rpc_clients/typescript/README.md
+++ b/docs/json_rpc_clients/typescript/README.md
@@ -1,4 +1,4 @@
-# @0x/mesh-rpc-client - v9.2.1
+# @0x/mesh-rpc-client - v9.3.0
## @0x/mesh-rpc-client
diff --git a/docs/json_rpc_clients/typescript/reference.md b/docs/json_rpc_clients/typescript/reference.md
index 80913b51b..4302ed4b2 100644
--- a/docs/json_rpc_clients/typescript/reference.md
+++ b/docs/json_rpc_clients/typescript/reference.md
@@ -31,7 +31,7 @@ websocket endpoint.
\+ **new WSClient**(`url`: string, `wsOpts?`: [WSOpts](#interface-wsopts)): *[WSClient](#class-wsclient)*
-*Defined in [ws_client.ts:252](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L252)*
+*Defined in [ws_client.ts:252](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L252)*
Instantiates a new WSClient instance
@@ -52,7 +52,7 @@ An instance of WSClient
▸ **addOrdersAsync**(`signedOrders`: SignedOrder[], `pinned`: boolean): *Promise‹[ValidationResults](#interface-validationresults)›*
-*Defined in [ws_client.ts:281](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L281)*
+*Defined in [ws_client.ts:281](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L281)*
Adds an array of 0x signed orders to the Mesh node.
@@ -73,7 +73,7 @@ ___
▸ **destroy**(): *void*
-*Defined in [ws_client.ts:421](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L421)*
+*Defined in [ws_client.ts:421](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L421)*
destroy unsubscribes all active subscriptions, closes the websocket connection
and stops the internal heartbeat connection liveness check.
@@ -86,7 +86,7 @@ ___
▸ **getOrdersAsync**(`perPage`: number): *Promise‹[GetOrdersResponse](#interface-getordersresponse)›*
-*Defined in [ws_client.ts:311](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L311)*
+*Defined in [ws_client.ts:311](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L311)*
Get all 0x signed orders currently stored in the Mesh node
@@ -106,7 +106,7 @@ ___
▸ **getOrdersForPageAsync**(`page`: number, `perPage`: number, `snapshotID?`: undefined | string): *Promise‹[GetOrdersResponse](#interface-getordersresponse)›*
-*Defined in [ws_client.ts:342](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L342)*
+*Defined in [ws_client.ts:342](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L342)*
Get page of 0x signed orders stored on the Mesh node at the specified snapshot
@@ -128,7 +128,7 @@ ___
▸ **getStatsAsync**(): *Promise‹[GetStatsResponse](#interface-getstatsresponse)›*
-*Defined in [ws_client.ts:302](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L302)*
+*Defined in [ws_client.ts:302](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L302)*
**Returns:** *Promise‹[GetStatsResponse](#interface-getstatsresponse)›*
@@ -138,7 +138,7 @@ ___
▸ **onClose**(`cb`: function): *void*
-*Defined in [ws_client.ts:403](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L403)*
+*Defined in [ws_client.ts:403](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L403)*
Get notified when the underlying WS connection closes normally. If it closes with an
error, WSClient automatically attempts to re-connect without emitting a `close` event.
@@ -159,7 +159,7 @@ ___
▸ **onReconnected**(`cb`: function): *void*
-*Defined in [ws_client.ts:412](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L412)*
+*Defined in [ws_client.ts:412](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L412)*
Get notified when a connection to the underlying WS connection is re-established
@@ -179,7 +179,7 @@ ___
▸ **subscribeToOrdersAsync**(`cb`: function): *Promise‹string›*
-*Defined in [ws_client.ts:363](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L363)*
+*Defined in [ws_client.ts:363](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L363)*
Subscribe to the 'orders' topic and receive order events from Mesh. This method returns a
subscriptionId that can be used to `unsubscribe()` from this subscription.
@@ -208,7 +208,7 @@ ___
▸ **unsubscribeAsync**(`subscriptionId`: string): *Promise‹void›*
-*Defined in [ws_client.ts:393](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/ws_client.ts#L393)*
+*Defined in [ws_client.ts:393](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/ws_client.ts#L393)*
Unsubscribe from a subscription
@@ -249,7 +249,7 @@ Name | Type | Description |
• **ERC1155ApprovalForAllEvent**: = "ERC1155ApprovalForAllEvent"
-*Defined in [types.ts:222](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L222)*
+*Defined in [types.ts:222](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L222)*
___
@@ -257,7 +257,7 @@ ___
• **ERC1155TransferBatchEvent**: = "ERC1155TransferBatchEvent"
-*Defined in [types.ts:224](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L224)*
+*Defined in [types.ts:224](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L224)*
___
@@ -265,7 +265,7 @@ ___
• **ERC1155TransferSingleEvent**: = "ERC1155TransferSingleEvent"
-*Defined in [types.ts:223](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L223)*
+*Defined in [types.ts:223](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L223)*
___
@@ -273,7 +273,7 @@ ___
• **ERC20ApprovalEvent**: = "ERC20ApprovalEvent"
-*Defined in [types.ts:218](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L218)*
+*Defined in [types.ts:218](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L218)*
___
@@ -281,7 +281,7 @@ ___
• **ERC20TransferEvent**: = "ERC20TransferEvent"
-*Defined in [types.ts:217](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L217)*
+*Defined in [types.ts:217](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L217)*
___
@@ -289,7 +289,7 @@ ___
• **ERC721ApprovalEvent**: = "ERC721ApprovalEvent"
-*Defined in [types.ts:220](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L220)*
+*Defined in [types.ts:220](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L220)*
___
@@ -297,7 +297,7 @@ ___
• **ERC721ApprovalForAllEvent**: = "ERC721ApprovalForAllEvent"
-*Defined in [types.ts:221](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L221)*
+*Defined in [types.ts:221](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L221)*
___
@@ -305,7 +305,7 @@ ___
• **ERC721TransferEvent**: = "ERC721TransferEvent"
-*Defined in [types.ts:219](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L219)*
+*Defined in [types.ts:219](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L219)*
___
@@ -313,7 +313,7 @@ ___
• **ExchangeCancelEvent**: = "ExchangeCancelEvent"
-*Defined in [types.ts:226](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L226)*
+*Defined in [types.ts:226](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L226)*
___
@@ -321,7 +321,7 @@ ___
• **ExchangeCancelUpToEvent**: = "ExchangeCancelUpToEvent"
-*Defined in [types.ts:227](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L227)*
+*Defined in [types.ts:227](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L227)*
___
@@ -329,7 +329,7 @@ ___
• **ExchangeFillEvent**: = "ExchangeFillEvent"
-*Defined in [types.ts:225](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L225)*
+*Defined in [types.ts:225](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L225)*
___
@@ -337,7 +337,7 @@ ___
• **WethDepositEvent**: = "WethDepositEvent"
-*Defined in [types.ts:228](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L228)*
+*Defined in [types.ts:228](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L228)*
___
@@ -345,7 +345,7 @@ ___
• **WethWithdrawalEvent**: = "WethWithdrawalEvent"
-*Defined in [types.ts:229](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L229)*
+*Defined in [types.ts:229](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L229)*
@@ -373,7 +373,7 @@ ___
• **Added**: = "ADDED"
-*Defined in [types.ts:286](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L286)*
+*Defined in [types.ts:286](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L286)*
___
@@ -381,7 +381,7 @@ ___
• **Cancelled**: = "CANCELLED"
-*Defined in [types.ts:289](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L289)*
+*Defined in [types.ts:289](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L289)*
___
@@ -389,7 +389,7 @@ ___
• **Expired**: = "EXPIRED"
-*Defined in [types.ts:290](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L290)*
+*Defined in [types.ts:290](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L290)*
___
@@ -397,7 +397,7 @@ ___
• **FillabilityIncreased**: = "FILLABILITY_INCREASED"
-*Defined in [types.ts:294](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L294)*
+*Defined in [types.ts:294](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L294)*
___
@@ -405,7 +405,7 @@ ___
• **Filled**: = "FILLED"
-*Defined in [types.ts:287](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L287)*
+*Defined in [types.ts:287](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L287)*
___
@@ -413,7 +413,7 @@ ___
• **FullyFilled**: = "FULLY_FILLED"
-*Defined in [types.ts:288](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L288)*
+*Defined in [types.ts:288](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L288)*
___
@@ -421,7 +421,7 @@ ___
• **Invalid**: = "INVALID"
-*Defined in [types.ts:285](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L285)*
+*Defined in [types.ts:285](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L285)*
___
@@ -429,7 +429,7 @@ ___
• **StoppedWatching**: = "STOPPED_WATCHING"
-*Defined in [types.ts:292](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L292)*
+*Defined in [types.ts:292](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L292)*
___
@@ -437,7 +437,7 @@ ___
• **Unexpired**: = "UNEXPIRED"
-*Defined in [types.ts:291](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L291)*
+*Defined in [types.ts:291](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L291)*
___
@@ -445,7 +445,7 @@ ___
• **Unfunded**: = "UNFUNDED"
-*Defined in [types.ts:293](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L293)*
+*Defined in [types.ts:293](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L293)*
@@ -477,7 +477,7 @@ ___
• **InternalError**: = "InternalError"
-*Defined in [types.ts:358](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L358)*
+*Defined in [types.ts:358](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L358)*
___
@@ -485,7 +485,7 @@ ___
• **MaxOrderSizeExceeded**: = "MaxOrderSizeExceeded"
-*Defined in [types.ts:359](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L359)*
+*Defined in [types.ts:359](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L359)*
___
@@ -493,7 +493,7 @@ ___
• **NetworkRequestFailed**: = "NetworkRequestFailed"
-*Defined in [types.ts:362](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L362)*
+*Defined in [types.ts:362](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L362)*
___
@@ -501,7 +501,7 @@ ___
• **OrderAlreadyStored**: = "OrderAlreadyStored"
-*Defined in [types.ts:360](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L360)*
+*Defined in [types.ts:360](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L360)*
___
@@ -509,7 +509,7 @@ ___
• **OrderCancelled**: = "OrderCancelled"
-*Defined in [types.ts:367](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L367)*
+*Defined in [types.ts:367](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L367)*
___
@@ -517,7 +517,7 @@ ___
• **OrderExpired**: = "OrderExpired"
-*Defined in [types.ts:365](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L365)*
+*Defined in [types.ts:365](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L365)*
___
@@ -525,7 +525,7 @@ ___
• **OrderForIncorrectChain**: = "OrderForIncorrectChain"
-*Defined in [types.ts:361](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L361)*
+*Defined in [types.ts:361](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L361)*
___
@@ -533,7 +533,7 @@ ___
• **OrderFullyFilled**: = "OrderFullyFilled"
-*Defined in [types.ts:366](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L366)*
+*Defined in [types.ts:366](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L366)*
___
@@ -541,7 +541,7 @@ ___
• **OrderHasInvalidMakerAssetAmount**: = "OrderHasInvalidMakerAssetAmount"
-*Defined in [types.ts:363](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L363)*
+*Defined in [types.ts:363](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L363)*
___
@@ -549,7 +549,7 @@ ___
• **OrderHasInvalidMakerAssetData**: = "OrderHasInvalidMakerAssetData"
-*Defined in [types.ts:369](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L369)*
+*Defined in [types.ts:369](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L369)*
___
@@ -557,7 +557,7 @@ ___
• **OrderHasInvalidSignature**: = "OrderHasInvalidSignature"
-*Defined in [types.ts:371](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L371)*
+*Defined in [types.ts:371](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L371)*
___
@@ -565,7 +565,7 @@ ___
• **OrderHasInvalidTakerAssetAmount**: = "OrderHasInvalidTakerAssetAmount"
-*Defined in [types.ts:364](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L364)*
+*Defined in [types.ts:364](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L364)*
___
@@ -573,7 +573,7 @@ ___
• **OrderHasInvalidTakerAssetData**: = "OrderHasInvalidTakerAssetData"
-*Defined in [types.ts:370](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L370)*
+*Defined in [types.ts:370](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L370)*
___
@@ -581,7 +581,7 @@ ___
• **OrderUnfunded**: = "OrderUnfunded"
-*Defined in [types.ts:368](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L368)*
+*Defined in [types.ts:368](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L368)*
@@ -602,7 +602,7 @@ ___
• **MeshError**: = "MESH_ERROR"
-*Defined in [types.ts:353](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L353)*
+*Defined in [types.ts:353](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L353)*
___
@@ -610,7 +610,7 @@ ___
• **MeshValidation**: = "MESH_VALIDATION"
-*Defined in [types.ts:354](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L354)*
+*Defined in [types.ts:354](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L354)*
___
@@ -618,7 +618,7 @@ ___
• **ZeroexValidation**: = "ZEROEX_VALIDATION"
-*Defined in [types.ts:352](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L352)*
+*Defined in [types.ts:352](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L352)*
@@ -644,7 +644,7 @@ ___
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:335](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L335)*
+*Defined in [types.ts:335](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L335)*
___
@@ -652,7 +652,7 @@ ___
• **isNew**: *boolean*
-*Defined in [types.ts:336](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L336)*
+*Defined in [types.ts:336](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L336)*
___
@@ -660,7 +660,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:333](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L333)*
+*Defined in [types.ts:333](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L333)*
___
@@ -668,7 +668,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:334](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L334)*
+*Defined in [types.ts:334](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L334)*
@@ -701,7 +701,7 @@ Source: https://github.com/theturtle32/WebSocket-Node/blob/master/docs/WebSocket
• **assembleFragments**? : *undefined | false | true*
-*Defined in [types.ts:16](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L16)*
+*Defined in [types.ts:16](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L16)*
___
@@ -709,7 +709,7 @@ ___
• **closeTimeout**? : *undefined | number*
-*Defined in [types.ts:17](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L17)*
+*Defined in [types.ts:17](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L17)*
___
@@ -717,7 +717,7 @@ ___
• **fragmentOutgoingMessages**? : *undefined | false | true*
-*Defined in [types.ts:14](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L14)*
+*Defined in [types.ts:14](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L14)*
___
@@ -725,7 +725,7 @@ ___
• **fragmentationThreshold**? : *undefined | number*
-*Defined in [types.ts:15](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L15)*
+*Defined in [types.ts:15](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L15)*
___
@@ -733,7 +733,7 @@ ___
• **maxReceivedFrameSize**? : *undefined | number*
-*Defined in [types.ts:12](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L12)*
+*Defined in [types.ts:12](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L12)*
___
@@ -741,7 +741,7 @@ ___
• **maxReceivedMessageSize**? : *undefined | number*
-*Defined in [types.ts:13](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L13)*
+*Defined in [types.ts:13](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L13)*
___
@@ -749,7 +749,7 @@ ___
• **tlsOptions**? : *any*
-*Defined in [types.ts:18](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L18)*
+*Defined in [types.ts:18](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L18)*
___
@@ -757,7 +757,7 @@ ___
• **webSocketVersion**? : *undefined | number*
-*Defined in [types.ts:11](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L11)*
+*Defined in [types.ts:11](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L11)*
@@ -787,7 +787,7 @@ ___
• **address**: *string*
-*Defined in [types.ts:279](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L279)*
+*Defined in [types.ts:279](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L279)*
___
@@ -795,7 +795,7 @@ ___
• **blockHash**: *string*
-*Defined in [types.ts:274](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L274)*
+*Defined in [types.ts:274](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L274)*
___
@@ -803,7 +803,7 @@ ___
• **isRemoved**: *string*
-*Defined in [types.ts:278](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L278)*
+*Defined in [types.ts:278](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L278)*
___
@@ -811,7 +811,7 @@ ___
• **kind**: *[ContractEventKind](#enumeration-contracteventkind)*
-*Defined in [types.ts:280](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L280)*
+*Defined in [types.ts:280](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L280)*
___
@@ -819,7 +819,7 @@ ___
• **logIndex**: *number*
-*Defined in [types.ts:277](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L277)*
+*Defined in [types.ts:277](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L277)*
___
@@ -827,7 +827,7 @@ ___
• **parameters**: *[ContractEventParameters](#contracteventparameters)*
-*Defined in [types.ts:281](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L281)*
+*Defined in [types.ts:281](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L281)*
___
@@ -835,7 +835,7 @@ ___
• **txHash**: *string*
-*Defined in [types.ts:275](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L275)*
+*Defined in [types.ts:275](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L275)*
___
@@ -843,7 +843,7 @@ ___
• **txIndex**: *number*
-*Defined in [types.ts:276](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L276)*
+*Defined in [types.ts:276](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L276)*
@@ -868,7 +868,7 @@ ___
• **approved**: *boolean*
-*Defined in [types.ts:144](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L144)*
+*Defined in [types.ts:144](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L144)*
___
@@ -876,7 +876,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:143](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L143)*
+*Defined in [types.ts:143](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L143)*
___
@@ -884,7 +884,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:142](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L142)*
+*Defined in [types.ts:142](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L142)*
@@ -911,7 +911,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:127](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L127)*
+*Defined in [types.ts:127](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L127)*
___
@@ -919,7 +919,7 @@ ___
• **ids**: *BigNumber[]*
-*Defined in [types.ts:129](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L129)*
+*Defined in [types.ts:129](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L129)*
___
@@ -927,7 +927,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:126](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L126)*
+*Defined in [types.ts:126](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L126)*
___
@@ -935,7 +935,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:128](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L128)*
+*Defined in [types.ts:128](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L128)*
___
@@ -943,7 +943,7 @@ ___
• **values**: *BigNumber[]*
-*Defined in [types.ts:130](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L130)*
+*Defined in [types.ts:130](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L130)*
@@ -970,7 +970,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:111](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L111)*
+*Defined in [types.ts:111](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L111)*
___
@@ -978,7 +978,7 @@ ___
• **id**: *BigNumber*
-*Defined in [types.ts:113](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L113)*
+*Defined in [types.ts:113](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L113)*
___
@@ -986,7 +986,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:110](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L110)*
+*Defined in [types.ts:110](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L110)*
___
@@ -994,7 +994,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:112](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L112)*
+*Defined in [types.ts:112](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L112)*
___
@@ -1002,7 +1002,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:114](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L114)*
+*Defined in [types.ts:114](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L114)*
@@ -1027,7 +1027,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:68](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L68)*
+*Defined in [types.ts:68](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L68)*
___
@@ -1035,7 +1035,7 @@ ___
• **spender**: *string*
-*Defined in [types.ts:69](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L69)*
+*Defined in [types.ts:69](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L69)*
___
@@ -1043,7 +1043,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:70](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L70)*
+*Defined in [types.ts:70](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L70)*
@@ -1068,7 +1068,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:56](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L56)*
+*Defined in [types.ts:56](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L56)*
___
@@ -1076,7 +1076,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:57](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L57)*
+*Defined in [types.ts:57](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L57)*
___
@@ -1084,7 +1084,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:58](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L58)*
+*Defined in [types.ts:58](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L58)*
@@ -1109,7 +1109,7 @@ ___
• **approved**: *string*
-*Defined in [types.ts:93](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L93)*
+*Defined in [types.ts:93](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L93)*
___
@@ -1117,7 +1117,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:92](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L92)*
+*Defined in [types.ts:92](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L92)*
___
@@ -1125,7 +1125,7 @@ ___
• **tokenId**: *BigNumber*
-*Defined in [types.ts:94](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L94)*
+*Defined in [types.ts:94](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L94)*
@@ -1150,7 +1150,7 @@ ___
• **approved**: *boolean*
-*Defined in [types.ts:106](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L106)*
+*Defined in [types.ts:106](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L106)*
___
@@ -1158,7 +1158,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:105](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L105)*
+*Defined in [types.ts:105](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L105)*
___
@@ -1166,7 +1166,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:104](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L104)*
+*Defined in [types.ts:104](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L104)*
@@ -1191,7 +1191,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:80](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L80)*
+*Defined in [types.ts:80](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L80)*
___
@@ -1199,7 +1199,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:81](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L81)*
+*Defined in [types.ts:81](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L81)*
___
@@ -1207,7 +1207,7 @@ ___
• **tokenId**: *BigNumber*
-*Defined in [types.ts:82](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L82)*
+*Defined in [types.ts:82](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L82)*
@@ -1235,7 +1235,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:178](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L178)*
+*Defined in [types.ts:178](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L178)*
___
@@ -1243,7 +1243,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:176](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L176)*
+*Defined in [types.ts:176](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L176)*
___
@@ -1251,7 +1251,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:180](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L180)*
+*Defined in [types.ts:180](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L180)*
___
@@ -1259,7 +1259,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:179](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L179)*
+*Defined in [types.ts:179](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L179)*
___
@@ -1267,7 +1267,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:177](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L177)*
+*Defined in [types.ts:177](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L177)*
___
@@ -1275,7 +1275,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:181](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L181)*
+*Defined in [types.ts:181](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L181)*
@@ -1300,7 +1300,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:185](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L185)*
+*Defined in [types.ts:185](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L185)*
___
@@ -1308,7 +1308,7 @@ ___
• **orderEpoch**: *BigNumber*
-*Defined in [types.ts:187](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L187)*
+*Defined in [types.ts:187](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L187)*
___
@@ -1316,7 +1316,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:186](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L186)*
+*Defined in [types.ts:186](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L186)*
@@ -1349,7 +1349,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:151](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L151)*
+*Defined in [types.ts:151](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L151)*
___
@@ -1357,7 +1357,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:148](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L148)*
+*Defined in [types.ts:148](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L148)*
___
@@ -1365,7 +1365,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:157](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L157)*
+*Defined in [types.ts:157](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L157)*
___
@@ -1373,7 +1373,7 @@ ___
• **makerAssetFilledAmount**: *BigNumber*
-*Defined in [types.ts:152](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L152)*
+*Defined in [types.ts:152](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L152)*
___
@@ -1381,7 +1381,7 @@ ___
• **makerFeePaid**: *BigNumber*
-*Defined in [types.ts:154](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L154)*
+*Defined in [types.ts:154](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L154)*
___
@@ -1389,7 +1389,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:156](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L156)*
+*Defined in [types.ts:156](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L156)*
___
@@ -1397,7 +1397,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:150](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L150)*
+*Defined in [types.ts:150](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L150)*
___
@@ -1405,7 +1405,7 @@ ___
• **takerAddress**: *string*
-*Defined in [types.ts:149](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L149)*
+*Defined in [types.ts:149](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L149)*
___
@@ -1413,7 +1413,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:158](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L158)*
+*Defined in [types.ts:158](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L158)*
___
@@ -1421,7 +1421,7 @@ ___
• **takerAssetFilledAmount**: *BigNumber*
-*Defined in [types.ts:153](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L153)*
+*Defined in [types.ts:153](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L153)*
___
@@ -1429,7 +1429,7 @@ ___
• **takerFeePaid**: *BigNumber*
-*Defined in [types.ts:155](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L155)*
+*Defined in [types.ts:155](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L155)*
@@ -1454,7 +1454,7 @@ ___
• **ordersInfos**: *[OrderInfo](#interface-orderinfo)[]*
-*Defined in [types.ts:415](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L415)*
+*Defined in [types.ts:415](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L415)*
___
@@ -1462,7 +1462,7 @@ ___
• **snapshotID**: *string*
-*Defined in [types.ts:413](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L413)*
+*Defined in [types.ts:413](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L413)*
___
@@ -1470,7 +1470,7 @@ ___
• **snapshotTimestamp**: *number*
-*Defined in [types.ts:414](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L414)*
+*Defined in [types.ts:414](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L414)*
@@ -1506,7 +1506,7 @@ ___
• **ethRPCRateLimitExpiredRequests**: *number*
-*Defined in [types.ts:442](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L442)*
+*Defined in [types.ts:442](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L442)*
___
@@ -1514,7 +1514,7 @@ ___
• **ethRPCRequestsSentInCurrentUTCDay**: *number*
-*Defined in [types.ts:441](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L441)*
+*Defined in [types.ts:441](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L441)*
___
@@ -1522,7 +1522,7 @@ ___
• **ethereumChainID**: *number*
-*Defined in [types.ts:433](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L433)*
+*Defined in [types.ts:433](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L433)*
___
@@ -1530,7 +1530,7 @@ ___
• **latestBlock**: *[LatestBlock](#interface-latestblock)*
-*Defined in [types.ts:434](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L434)*
+*Defined in [types.ts:434](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L434)*
___
@@ -1538,7 +1538,7 @@ ___
• **maxExpirationTime**: *string*
-*Defined in [types.ts:439](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L439)*
+*Defined in [types.ts:439](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L439)*
___
@@ -1546,7 +1546,7 @@ ___
• **numOrders**: *number*
-*Defined in [types.ts:436](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L436)*
+*Defined in [types.ts:436](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L436)*
___
@@ -1554,7 +1554,7 @@ ___
• **numOrdersIncludingRemoved**: *number*
-*Defined in [types.ts:437](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L437)*
+*Defined in [types.ts:437](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L437)*
___
@@ -1562,7 +1562,7 @@ ___
• **numPeers**: *number*
-*Defined in [types.ts:435](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L435)*
+*Defined in [types.ts:435](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L435)*
___
@@ -1570,7 +1570,7 @@ ___
• **numPinnedOrders**: *number*
-*Defined in [types.ts:438](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L438)*
+*Defined in [types.ts:438](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L438)*
___
@@ -1578,7 +1578,7 @@ ___
• **peerID**: *string*
-*Defined in [types.ts:432](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L432)*
+*Defined in [types.ts:432](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L432)*
___
@@ -1586,7 +1586,7 @@ ___
• **pubSubTopic**: *string*
-*Defined in [types.ts:430](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L430)*
+*Defined in [types.ts:430](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L430)*
___
@@ -1594,7 +1594,7 @@ ___
• **rendezvous**: *string*
-*Defined in [types.ts:431](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L431)*
+*Defined in [types.ts:431](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L431)*
___
@@ -1602,7 +1602,7 @@ ___
• **startOfCurrentUTCDay**: *string*
-*Defined in [types.ts:440](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L440)*
+*Defined in [types.ts:440](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L440)*
___
@@ -1610,7 +1610,7 @@ ___
• **version**: *string*
-*Defined in [types.ts:429](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L429)*
+*Defined in [types.ts:429](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L429)*
@@ -1634,7 +1634,7 @@ ___
• **result**: *string*
-*Defined in [types.ts:304](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L304)*
+*Defined in [types.ts:304](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L304)*
___
@@ -1642,7 +1642,7 @@ ___
• **subscription**: *string*
-*Defined in [types.ts:303](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L303)*
+*Defined in [types.ts:303](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L303)*
@@ -1666,7 +1666,7 @@ ___
• **hash**: *string*
-*Defined in [types.ts:425](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L425)*
+*Defined in [types.ts:425](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L425)*
___
@@ -1674,7 +1674,7 @@ ___
• **number**: *number*
-*Defined in [types.ts:424](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L424)*
+*Defined in [types.ts:424](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L424)*
@@ -1702,7 +1702,7 @@ ___
• **contractEvents**: *[ContractEvent](#interface-contractevent)[]*
-*Defined in [types.ts:322](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L322)*
+*Defined in [types.ts:322](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L322)*
___
@@ -1710,7 +1710,7 @@ ___
• **endState**: *[OrderEventEndState](#enumeration-ordereventendstate)*
-*Defined in [types.ts:320](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L320)*
+*Defined in [types.ts:320](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L320)*
___
@@ -1718,7 +1718,7 @@ ___
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:321](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L321)*
+*Defined in [types.ts:321](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L321)*
___
@@ -1726,7 +1726,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:318](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L318)*
+*Defined in [types.ts:318](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L318)*
___
@@ -1734,7 +1734,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:319](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L319)*
+*Defined in [types.ts:319](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L319)*
___
@@ -1742,7 +1742,7 @@ ___
• **timestampMs**: *number*
-*Defined in [types.ts:317](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L317)*
+*Defined in [types.ts:317](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L317)*
@@ -1766,7 +1766,7 @@ ___
• **result**: *[RawOrderEvent](#interface-raworderevent)[]*
-*Defined in [types.ts:299](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L299)*
+*Defined in [types.ts:299](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L299)*
___
@@ -1774,7 +1774,7 @@ ___
• **subscription**: *string*
-*Defined in [types.ts:298](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L298)*
+*Defined in [types.ts:298](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L298)*
@@ -1799,7 +1799,7 @@ ___
• **fillableTakerAssetAmount**: *BigNumber*
-*Defined in [types.ts:348](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L348)*
+*Defined in [types.ts:348](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L348)*
___
@@ -1807,7 +1807,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:346](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L346)*
+*Defined in [types.ts:346](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L346)*
___
@@ -1815,7 +1815,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:347](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L347)*
+*Defined in [types.ts:347](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L347)*
@@ -1841,7 +1841,7 @@ ___
• **fillableTakerAssetAmount**: *string*
-*Defined in [types.ts:328](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L328)*
+*Defined in [types.ts:328](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L328)*
___
@@ -1849,7 +1849,7 @@ ___
• **isNew**: *boolean*
-*Defined in [types.ts:329](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L329)*
+*Defined in [types.ts:329](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L329)*
___
@@ -1857,7 +1857,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:326](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L326)*
+*Defined in [types.ts:326](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L326)*
___
@@ -1865,7 +1865,7 @@ ___
• **signedOrder**: *[StringifiedSignedOrder](#interface-stringifiedsignedorder)*
-*Defined in [types.ts:327](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L327)*
+*Defined in [types.ts:327](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L327)*
@@ -1890,7 +1890,7 @@ ___
• **ordersInfos**: *[RawAcceptedOrderInfo](#interface-rawacceptedorderinfo)[]*
-*Defined in [types.ts:406](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L406)*
+*Defined in [types.ts:406](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L406)*
___
@@ -1898,7 +1898,7 @@ ___
• **snapshotID**: *string*
-*Defined in [types.ts:404](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L404)*
+*Defined in [types.ts:404](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L404)*
___
@@ -1906,7 +1906,7 @@ ___
• **snapshotTimestamp**: *string*
-*Defined in [types.ts:405](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L405)*
+*Defined in [types.ts:405](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L405)*
@@ -1934,7 +1934,7 @@ ___
• **contractEvents**: *[StringifiedContractEvent](#interface-stringifiedcontractevent)[]*
-*Defined in [types.ts:313](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L313)*
+*Defined in [types.ts:313](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L313)*
___
@@ -1942,7 +1942,7 @@ ___
• **endState**: *[OrderEventEndState](#enumeration-ordereventendstate)*
-*Defined in [types.ts:311](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L311)*
+*Defined in [types.ts:311](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L311)*
___
@@ -1950,7 +1950,7 @@ ___
• **fillableTakerAssetAmount**: *string*
-*Defined in [types.ts:312](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L312)*
+*Defined in [types.ts:312](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L312)*
___
@@ -1958,7 +1958,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:309](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L309)*
+*Defined in [types.ts:309](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L309)*
___
@@ -1966,7 +1966,7 @@ ___
• **signedOrder**: *[StringifiedSignedOrder](#interface-stringifiedsignedorder)*
-*Defined in [types.ts:310](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L310)*
+*Defined in [types.ts:310](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L310)*
___
@@ -1974,7 +1974,7 @@ ___
• **timestamp**: *string*
-*Defined in [types.ts:308](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L308)*
+*Defined in [types.ts:308](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L308)*
@@ -1999,7 +1999,7 @@ ___
• **fillableTakerAssetAmount**: *string*
-*Defined in [types.ts:342](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L342)*
+*Defined in [types.ts:342](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L342)*
___
@@ -2007,7 +2007,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:340](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L340)*
+*Defined in [types.ts:340](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L340)*
___
@@ -2015,7 +2015,7 @@ ___
• **signedOrder**: *[StringifiedSignedOrder](#interface-stringifiedsignedorder)*
-*Defined in [types.ts:341](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L341)*
+*Defined in [types.ts:341](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L341)*
@@ -2041,7 +2041,7 @@ ___
• **kind**: *[RejectedKind](#enumeration-rejectedkind)*
-*Defined in [types.ts:382](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L382)*
+*Defined in [types.ts:382](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L382)*
___
@@ -2049,7 +2049,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:380](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L380)*
+*Defined in [types.ts:380](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L380)*
___
@@ -2057,7 +2057,7 @@ ___
• **signedOrder**: *[StringifiedSignedOrder](#interface-stringifiedsignedorder)*
-*Defined in [types.ts:381](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L381)*
+*Defined in [types.ts:381](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L381)*
___
@@ -2065,7 +2065,7 @@ ___
• **status**: *[RejectedStatus](#interface-rejectedstatus)*
-*Defined in [types.ts:383](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L383)*
+*Defined in [types.ts:383](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L383)*
@@ -2089,7 +2089,7 @@ ___
• **accepted**: *[RawAcceptedOrderInfo](#interface-rawacceptedorderinfo)[]*
-*Defined in [types.ts:394](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L394)*
+*Defined in [types.ts:394](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L394)*
___
@@ -2097,7 +2097,7 @@ ___
• **rejected**: *[RawRejectedOrderInfo](#interface-rawrejectedorderinfo)[]*
-*Defined in [types.ts:395](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L395)*
+*Defined in [types.ts:395](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L395)*
@@ -2123,7 +2123,7 @@ ___
• **kind**: *[RejectedKind](#enumeration-rejectedkind)*
-*Defined in [types.ts:389](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L389)*
+*Defined in [types.ts:389](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L389)*
___
@@ -2131,7 +2131,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:387](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L387)*
+*Defined in [types.ts:387](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L387)*
___
@@ -2139,7 +2139,7 @@ ___
• **signedOrder**: *SignedOrder*
-*Defined in [types.ts:388](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L388)*
+*Defined in [types.ts:388](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L388)*
___
@@ -2147,7 +2147,7 @@ ___
• **status**: *[RejectedStatus](#interface-rejectedstatus)*
-*Defined in [types.ts:390](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L390)*
+*Defined in [types.ts:390](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L390)*
@@ -2171,7 +2171,7 @@ ___
• **code**: *[RejectedCode](#enumeration-rejectedcode)*
-*Defined in [types.ts:375](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L375)*
+*Defined in [types.ts:375](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L375)*
___
@@ -2179,7 +2179,7 @@ ___
• **message**: *string*
-*Defined in [types.ts:376](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L376)*
+*Defined in [types.ts:376](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L376)*
@@ -2209,7 +2209,7 @@ ___
• **address**: *string*
-*Defined in [types.ts:253](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L253)*
+*Defined in [types.ts:253](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L253)*
___
@@ -2217,7 +2217,7 @@ ___
• **blockHash**: *string*
-*Defined in [types.ts:248](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L248)*
+*Defined in [types.ts:248](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L248)*
___
@@ -2225,7 +2225,7 @@ ___
• **isRemoved**: *string*
-*Defined in [types.ts:252](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L252)*
+*Defined in [types.ts:252](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L252)*
___
@@ -2233,7 +2233,7 @@ ___
• **kind**: *string*
-*Defined in [types.ts:254](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L254)*
+*Defined in [types.ts:254](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L254)*
___
@@ -2241,7 +2241,7 @@ ___
• **logIndex**: *number*
-*Defined in [types.ts:251](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L251)*
+*Defined in [types.ts:251](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L251)*
___
@@ -2249,7 +2249,7 @@ ___
• **parameters**: *[StringifiedContractEventParameters](#stringifiedcontracteventparameters)*
-*Defined in [types.ts:255](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L255)*
+*Defined in [types.ts:255](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L255)*
___
@@ -2257,7 +2257,7 @@ ___
• **txHash**: *string*
-*Defined in [types.ts:249](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L249)*
+*Defined in [types.ts:249](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L249)*
___
@@ -2265,7 +2265,7 @@ ___
• **txIndex**: *number*
-*Defined in [types.ts:250](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L250)*
+*Defined in [types.ts:250](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L250)*
@@ -2292,7 +2292,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:135](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L135)*
+*Defined in [types.ts:135](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L135)*
___
@@ -2300,7 +2300,7 @@ ___
• **ids**: *string[]*
-*Defined in [types.ts:137](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L137)*
+*Defined in [types.ts:137](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L137)*
___
@@ -2308,7 +2308,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:134](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L134)*
+*Defined in [types.ts:134](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L134)*
___
@@ -2316,7 +2316,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:136](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L136)*
+*Defined in [types.ts:136](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L136)*
___
@@ -2324,7 +2324,7 @@ ___
• **values**: *string[]*
-*Defined in [types.ts:138](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L138)*
+*Defined in [types.ts:138](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L138)*
@@ -2351,7 +2351,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:119](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L119)*
+*Defined in [types.ts:119](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L119)*
___
@@ -2359,7 +2359,7 @@ ___
• **id**: *string*
-*Defined in [types.ts:121](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L121)*
+*Defined in [types.ts:121](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L121)*
___
@@ -2367,7 +2367,7 @@ ___
• **operator**: *string*
-*Defined in [types.ts:118](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L118)*
+*Defined in [types.ts:118](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L118)*
___
@@ -2375,7 +2375,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:120](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L120)*
+*Defined in [types.ts:120](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L120)*
___
@@ -2383,7 +2383,7 @@ ___
• **value**: *string*
-*Defined in [types.ts:122](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L122)*
+*Defined in [types.ts:122](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L122)*
@@ -2408,7 +2408,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:74](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L74)*
+*Defined in [types.ts:74](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L74)*
___
@@ -2416,7 +2416,7 @@ ___
• **spender**: *string*
-*Defined in [types.ts:75](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L75)*
+*Defined in [types.ts:75](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L75)*
___
@@ -2424,7 +2424,7 @@ ___
• **value**: *string*
-*Defined in [types.ts:76](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L76)*
+*Defined in [types.ts:76](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L76)*
@@ -2449,7 +2449,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:62](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L62)*
+*Defined in [types.ts:62](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L62)*
___
@@ -2457,7 +2457,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:63](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L63)*
+*Defined in [types.ts:63](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L63)*
___
@@ -2465,7 +2465,7 @@ ___
• **value**: *string*
-*Defined in [types.ts:64](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L64)*
+*Defined in [types.ts:64](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L64)*
@@ -2490,7 +2490,7 @@ ___
• **approved**: *string*
-*Defined in [types.ts:99](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L99)*
+*Defined in [types.ts:99](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L99)*
___
@@ -2498,7 +2498,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:98](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L98)*
+*Defined in [types.ts:98](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L98)*
___
@@ -2506,7 +2506,7 @@ ___
• **tokenId**: *string*
-*Defined in [types.ts:100](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L100)*
+*Defined in [types.ts:100](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L100)*
@@ -2531,7 +2531,7 @@ ___
• **from**: *string*
-*Defined in [types.ts:86](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L86)*
+*Defined in [types.ts:86](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L86)*
___
@@ -2539,7 +2539,7 @@ ___
• **to**: *string*
-*Defined in [types.ts:87](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L87)*
+*Defined in [types.ts:87](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L87)*
___
@@ -2547,7 +2547,7 @@ ___
• **tokenId**: *string*
-*Defined in [types.ts:88](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L88)*
+*Defined in [types.ts:88](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L88)*
@@ -2572,7 +2572,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:191](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L191)*
+*Defined in [types.ts:191](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L191)*
___
@@ -2580,7 +2580,7 @@ ___
• **orderEpoch**: *string*
-*Defined in [types.ts:193](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L193)*
+*Defined in [types.ts:193](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L193)*
___
@@ -2588,7 +2588,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:192](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L192)*
+*Defined in [types.ts:192](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L192)*
@@ -2621,7 +2621,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:165](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L165)*
+*Defined in [types.ts:165](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L165)*
___
@@ -2629,7 +2629,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:162](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L162)*
+*Defined in [types.ts:162](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L162)*
___
@@ -2637,7 +2637,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:171](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L171)*
+*Defined in [types.ts:171](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L171)*
___
@@ -2645,7 +2645,7 @@ ___
• **makerAssetFilledAmount**: *string*
-*Defined in [types.ts:166](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L166)*
+*Defined in [types.ts:166](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L166)*
___
@@ -2653,7 +2653,7 @@ ___
• **makerFeePaid**: *string*
-*Defined in [types.ts:168](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L168)*
+*Defined in [types.ts:168](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L168)*
___
@@ -2661,7 +2661,7 @@ ___
• **orderHash**: *string*
-*Defined in [types.ts:170](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L170)*
+*Defined in [types.ts:170](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L170)*
___
@@ -2669,7 +2669,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:164](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L164)*
+*Defined in [types.ts:164](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L164)*
___
@@ -2677,7 +2677,7 @@ ___
• **takerAddress**: *string*
-*Defined in [types.ts:163](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L163)*
+*Defined in [types.ts:163](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L163)*
___
@@ -2685,7 +2685,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:172](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L172)*
+*Defined in [types.ts:172](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L172)*
___
@@ -2693,7 +2693,7 @@ ___
• **takerAssetFilledAmount**: *string*
-*Defined in [types.ts:167](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L167)*
+*Defined in [types.ts:167](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L167)*
___
@@ -2701,7 +2701,7 @@ ___
• **takerFeePaid**: *string*
-*Defined in [types.ts:169](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L169)*
+*Defined in [types.ts:169](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L169)*
@@ -2737,7 +2737,7 @@ ___
• **exchangeAddress**: *string*
-*Defined in [types.ts:49](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L49)*
+*Defined in [types.ts:49](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L49)*
___
@@ -2745,7 +2745,7 @@ ___
• **expirationTimeSeconds**: *string*
-*Defined in [types.ts:51](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L51)*
+*Defined in [types.ts:51](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L51)*
___
@@ -2753,7 +2753,7 @@ ___
• **feeRecipientAddress**: *string*
-*Defined in [types.ts:50](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L50)*
+*Defined in [types.ts:50](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L50)*
___
@@ -2761,7 +2761,7 @@ ___
• **makerAddress**: *string*
-*Defined in [types.ts:40](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L40)*
+*Defined in [types.ts:40](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L40)*
___
@@ -2769,7 +2769,7 @@ ___
• **makerAssetAmount**: *string*
-*Defined in [types.ts:44](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L44)*
+*Defined in [types.ts:44](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L44)*
___
@@ -2777,7 +2777,7 @@ ___
• **makerAssetData**: *string*
-*Defined in [types.ts:46](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L46)*
+*Defined in [types.ts:46](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L46)*
___
@@ -2785,7 +2785,7 @@ ___
• **makerFee**: *string*
-*Defined in [types.ts:42](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L42)*
+*Defined in [types.ts:42](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L42)*
___
@@ -2793,7 +2793,7 @@ ___
• **salt**: *string*
-*Defined in [types.ts:48](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L48)*
+*Defined in [types.ts:48](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L48)*
___
@@ -2801,7 +2801,7 @@ ___
• **senderAddress**: *string*
-*Defined in [types.ts:39](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L39)*
+*Defined in [types.ts:39](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L39)*
___
@@ -2809,7 +2809,7 @@ ___
• **signature**: *string*
-*Defined in [types.ts:52](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L52)*
+*Defined in [types.ts:52](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L52)*
___
@@ -2817,7 +2817,7 @@ ___
• **takerAddress**: *string*
-*Defined in [types.ts:41](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L41)*
+*Defined in [types.ts:41](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L41)*
___
@@ -2825,7 +2825,7 @@ ___
• **takerAssetAmount**: *string*
-*Defined in [types.ts:45](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L45)*
+*Defined in [types.ts:45](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L45)*
___
@@ -2833,7 +2833,7 @@ ___
• **takerAssetData**: *string*
-*Defined in [types.ts:47](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L47)*
+*Defined in [types.ts:47](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L47)*
___
@@ -2841,7 +2841,7 @@ ___
• **takerFee**: *string*
-*Defined in [types.ts:43](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L43)*
+*Defined in [types.ts:43](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L43)*
@@ -2865,7 +2865,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:212](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L212)*
+*Defined in [types.ts:212](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L212)*
___
@@ -2873,7 +2873,7 @@ ___
• **value**: *string*
-*Defined in [types.ts:213](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L213)*
+*Defined in [types.ts:213](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L213)*
@@ -2897,7 +2897,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:202](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L202)*
+*Defined in [types.ts:202](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L202)*
___
@@ -2905,7 +2905,7 @@ ___
• **value**: *string*
-*Defined in [types.ts:203](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L203)*
+*Defined in [types.ts:203](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L203)*
@@ -2929,7 +2929,7 @@ ___
• **accepted**: *[AcceptedOrderInfo](#interface-acceptedorderinfo)[]*
-*Defined in [types.ts:399](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L399)*
+*Defined in [types.ts:399](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L399)*
___
@@ -2937,7 +2937,7 @@ ___
• **rejected**: *[RejectedOrderInfo](#interface-rejectedorderinfo)[]*
-*Defined in [types.ts:400](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L400)*
+*Defined in [types.ts:400](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L400)*
@@ -2961,7 +2961,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:207](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L207)*
+*Defined in [types.ts:207](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L207)*
___
@@ -2969,7 +2969,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:208](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L208)*
+*Defined in [types.ts:208](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L208)*
@@ -2993,7 +2993,7 @@ ___
• **owner**: *string*
-*Defined in [types.ts:197](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L197)*
+*Defined in [types.ts:197](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L197)*
___
@@ -3001,7 +3001,7 @@ ___
• **value**: *BigNumber*
-*Defined in [types.ts:198](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L198)*
+*Defined in [types.ts:198](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L198)*
@@ -3025,7 +3025,7 @@ ___
• **type**: *string*
-*Defined in [types.ts:419](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L419)*
+*Defined in [types.ts:419](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L419)*
___
@@ -3033,7 +3033,7 @@ ___
• **utf8Data**: *string*
-*Defined in [types.ts:420](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L420)*
+*Defined in [types.ts:420](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L420)*
@@ -3068,7 +3068,7 @@ reconnectDelay: time in milliseconds after which to attempt to reconnect to WS s
• **clientConfig**? : *[ClientConfig](#interface-clientconfig)*
-*Defined in [types.ts:34](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L34)*
+*Defined in [types.ts:34](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L34)*
___
@@ -3076,7 +3076,7 @@ ___
• **headers**? : *undefined | __type*
-*Defined in [types.ts:32](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L32)*
+*Defined in [types.ts:32](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L32)*
___
@@ -3084,7 +3084,7 @@ ___
• **protocol**? : *undefined | string*
-*Defined in [types.ts:33](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L33)*
+*Defined in [types.ts:33](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L33)*
___
@@ -3092,7 +3092,7 @@ ___
• **reconnectDelay**? : *undefined | number*
-*Defined in [types.ts:35](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L35)*
+*Defined in [types.ts:35](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L35)*
___
@@ -3100,7 +3100,7 @@ ___
• **timeout**? : *undefined | number*
-*Defined in [types.ts:31](https://github.com/0xProject/0x-mesh/blob/aa55bae/packages/rpc-client/src/types.ts#L31)*
+*Defined in [types.ts:31](https://github.com/0xProject/0x-mesh/blob/8df8910/packages/rpc-client/src/types.ts#L31)*
diff --git a/docs/rpc_api.md b/docs/rpc_api.md
index eaa03d2c9..1d1a4de4c 100644
--- a/docs/rpc_api.md
+++ b/docs/rpc_api.md
@@ -1,4 +1,4 @@
-[![Version](https://img.shields.io/badge/version-9.2.1-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
+[![Version](https://img.shields.io/badge/version-9.3.0-orange.svg)](https://github.com/0xProject/0x-mesh/releases)
# 0x Mesh JSON-RPC API Documentation
diff --git a/docs/summary.md b/docs/summary.md
index 6e56bf2fc..b4b81eec0 100644
--- a/docs/summary.md
+++ b/docs/summary.md
@@ -11,6 +11,7 @@
## Advanced topics
+* [Custom order filters](custom_order_filters.md)
* [Syncing an external DB with Mesh](db_syncing.md)
## JSON-RPC clients
diff --git a/ethereum/contract_addresses.go b/ethereum/contract_addresses.go
index 5442b6c36..030e0afb4 100644
--- a/ethereum/contract_addresses.go
+++ b/ethereum/contract_addresses.go
@@ -132,7 +132,7 @@ func ganacheAddresses() ContractAddresses {
Exchange: common.HexToAddress("0x48bacb9266a570d521063ef5dd96e61686dbe788"),
Coordinator: common.HexToAddress("0x4d3d5c850dd5bd9d6f4adda3dd039a3c8054ca29"),
CoordinatorRegistry: common.HexToAddress("0xaa86dda78e9434aca114b6676fc742a18d15a1cc"),
- DevUtils: common.HexToAddress("0xa31e64ea55b9b6bbb9d6a676738e9a5b23149f84"),
+ DevUtils: common.HexToAddress("0xb23672f74749bf7916ba6827c64111a4d6de7f11"),
WETH9: common.HexToAddress("0x0b1ba0af832d7c05fd64161e0db78e85978e8082"),
ZRXToken: common.HexToAddress("0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c"),
ChaiBridge: common.HexToAddress("0x0000000000000000000000000000000000000000"),
diff --git a/expirationwatch/expiration_watcher.go b/expirationwatch/expiration_watcher.go
index e18390de9..f5915b9ac 100644
--- a/expirationwatch/expiration_watcher.go
+++ b/expirationwatch/expiration_watcher.go
@@ -72,7 +72,7 @@ func (w *Watcher) Remove(expirationTimestamp time.Time, id string) {
}
}
-// Prune checks for any expired items given a timestamp and removes any expired
+// Prune checks for any expired items given a timestamp and removes any expired
// items from the expiration watcher and returns them to the caller
func (w *Watcher) Prune(timestamp time.Time) []ExpiredItem {
pruned := []ExpiredItem{}
@@ -85,7 +85,7 @@ func (w *Watcher) Prune(timestamp time.Time) []ExpiredItem {
}
expirationTimeSeconds := int64(*key.(*rbt.Int64Key))
expirationTime := time.Unix(expirationTimeSeconds, 0)
- if !timestamp.After(expirationTime) {
+ if timestamp.Before(expirationTime) {
break
}
ids := value.(stringset.Set)
diff --git a/expirationwatch/expiration_watcher_test.go b/expirationwatch/expiration_watcher_test.go
index 1f2504b30..7a7e55275 100644
--- a/expirationwatch/expiration_watcher_test.go
+++ b/expirationwatch/expiration_watcher_test.go
@@ -57,6 +57,21 @@ func TestPrunesTwoExpiredItemsWithSameExpiration(t *testing.T) {
}
}
+func TestPrunesBarelyExpiredItem(t *testing.T) {
+ watcher := New()
+
+ current := time.Now().Truncate(time.Second)
+ expiryEntryOne := ExpiredItem{
+ ExpirationTimestamp: current,
+ ID: "0x8e209dda7e515025d0c34aa61a0d1156a631248a4318576a2ce0fb408d97385e",
+ }
+ watcher.Add(expiryEntryOne.ExpirationTimestamp, expiryEntryOne.ID)
+
+ pruned := watcher.Prune(current)
+ assert.Len(t, pruned, 1, "one expired item should get pruned")
+ assert.Equal(t, expiryEntryOne, pruned[0])
+}
+
func TestKeepsUnexpiredItem(t *testing.T) {
watcher := New()
diff --git a/integration-tests/browser_integration_test.go b/integration-tests/browser_integration_test.go
index ab4e0b461..1d0adc717 100644
--- a/integration-tests/browser_integration_test.go
+++ b/integration-tests/browser_integration_test.go
@@ -7,6 +7,7 @@ package integrationtests
import (
"context"
"fmt"
+ "math/big"
"net/http"
"net/http/httptest"
"strconv"
@@ -15,11 +16,12 @@ import (
"testing"
"time"
+ "github.com/0xProject/0x-mesh/constants"
"github.com/0xProject/0x-mesh/rpc"
"github.com/0xProject/0x-mesh/scenario"
+ "github.com/0xProject/0x-mesh/scenario/orderopts"
"github.com/0xProject/0x-mesh/zeroex"
"github.com/chromedp/chromedp"
- "github.com/ethereum/go-ethereum/ethclient"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@@ -65,8 +67,18 @@ func TestBrowserIntegration(t *testing.T) {
// standaloneOrder is an order that will be sent to the network by the
// standalone node.
- ethClient := ethclient.NewClient(ethRPCClient)
- standaloneOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ standaloneOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true))
+
+ // We also need to set up the maker state for the order that will be created in the browser (we don't care
+ // if this order exactly matches the one created in the browser, we just care about makerAddress,
+ // makerAssetData, and makerAssetAmount).
+ scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAddress(constants.GanacheAccount1),
+ orderopts.MakerAssetData(scenario.ZRXAssetData),
+ orderopts.MakerAssetAmount(big.NewInt(1000)),
+ )
+
// Creating a valid order involves transferring sufficient funds to the maker, and setting their allowance for
// the maker asset. These transactions must be mined and Mesh's BlockWatcher poller must process these blocks
// in order for the order validation run at order submission to occur at a block number equal or higher then
diff --git a/integration-tests/constants.go b/integration-tests/constants.go
index 94422efc0..4e0a775f4 100644
--- a/integration-tests/constants.go
+++ b/integration-tests/constants.go
@@ -1,11 +1,5 @@
package integrationtests
-import (
- "math/big"
-
- "github.com/0xProject/0x-mesh/constants"
-)
-
const (
ethereumRPCURL = "http://localhost:8545"
ethereumChainID = 1337
@@ -27,11 +21,3 @@ const (
bootstrapList = "/ip4/127.0.0.1/tcp/60500/ws/ipfs/16Uiu2HAmGd949LwaV4KNvK2WDSiMVy7xEmW983VH75CMmefmMpP7"
bootstrapDataDir = "./data/bootstrap-0"
)
-
-var (
- makerAddress = constants.GanacheAccount1
- takerAddress = constants.GanacheAccount2
- eighteenDecimalsInBaseUnits = new(big.Int).Exp(big.NewInt(10), big.NewInt(18), nil)
- wethAmount = new(big.Int).Mul(big.NewInt(50), eighteenDecimalsInBaseUnits)
- zrxAmount = new(big.Int).Mul(big.NewInt(100), eighteenDecimalsInBaseUnits)
-)
diff --git a/integration-tests/rpc_integration_test.go b/integration-tests/rpc_integration_test.go
index 340968375..d3729b03f 100644
--- a/integration-tests/rpc_integration_test.go
+++ b/integration-tests/rpc_integration_test.go
@@ -6,7 +6,6 @@ import (
"context"
"encoding/json"
"fmt"
- "math/big"
"strconv"
"sync"
"sync/atomic"
@@ -14,13 +13,12 @@ import (
"time"
"github.com/0xProject/0x-mesh/common/types"
-
"github.com/0xProject/0x-mesh/constants"
"github.com/0xProject/0x-mesh/ethereum/ratelimit"
"github.com/0xProject/0x-mesh/rpc"
"github.com/0xProject/0x-mesh/scenario"
+ "github.com/0xProject/0x-mesh/scenario/orderopts"
"github.com/0xProject/0x-mesh/zeroex"
- "github.com/ethereum/go-ethereum/ethclient"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@@ -61,8 +59,7 @@ func runAddOrdersSuccessTest(t *testing.T, rpcEndpointPrefix, rpcServerType stri
require.NoError(t, err)
// Create a new valid order.
- ethClient := ethclient.NewClient(ethRPCClient)
- signedTestOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedTestOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true))
// Creating a valid order involves transferring sufficient funds to the maker, and setting their allowance for
// the maker asset. These transactions must be mined and Mesh's BlockWatcher poller must process these blocks
// in order for the order validation run at order submission to occur at a block number equal or higher then
@@ -130,16 +127,9 @@ func runGetOrdersTest(t *testing.T, rpcEndpointPrefix, rpcServerType string, rpc
require.NoError(t, err)
// Create 10 new valid orders.
- ethClient := ethclient.NewClient(ethRPCClient)
- // NOTE(jalextowle): The default balances are not sufficient to create 10 valid
- // orders, so we modify the zrx and weth amounts for this test
numOrders := 10
- newWethAmount := new(big.Int).Div(wethAmount, big.NewInt(int64(numOrders)))
- newZrxAmount := new(big.Int).Div(zrxAmount, big.NewInt(int64(numOrders)))
- signedTestOrders := make([]*zeroex.SignedOrder, numOrders)
- for i := 0; i < numOrders; i++ {
- signedTestOrders[i] = scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, newWethAmount, newZrxAmount)
- }
+ orderOptions := scenario.OptionsForAll(orderopts.SetupMakerState(true))
+ signedTestOrders := scenario.NewSignedTestOrdersBatch(t, numOrders, orderOptions)
// Creating a valid order involves transferring sufficient funds to the maker, and setting their allowance for
// the maker asset. These transactions must be mined and Mesh's BlockWatcher poller must process these blocks
// in order for the order validation run at order submission to occur at a block number equal or higher then
@@ -312,8 +302,7 @@ func TestOrdersSubscription(t *testing.T) {
assert.NotNil(t, clientSubscription, "clientSubscription not nil")
// Create a valid order and send it to the rpc client's "AddOrders" endpoint.
- ethClient := ethclient.NewClient(ethRPCClient)
- signedTestOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedTestOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true))
// Creating a valid order involves transferring sufficient funds to the maker, and setting their allowance for
// the maker asset. These transactions must be mined and Mesh's BlockWatcher poller must process these blocks
// in order for the order validation run at order submission to occur at a block number equal or higher then
diff --git a/p2p/node.go b/p2p/node.go
index 48e9df20c..ee9f5782b 100644
--- a/p2p/node.go
+++ b/p2p/node.go
@@ -569,6 +569,9 @@ func (n *Node) receiveAndHandleMessages(ctx context.Context) error {
if err != nil {
return err
}
+ if len(incoming) == 0 {
+ return nil
+ }
if err := n.messageHandler.HandleMessages(ctx, incoming); err != nil {
return fmt.Errorf("could not validate or store messages: %s", err.Error())
}
diff --git a/p2p/node_test.go b/p2p/node_test.go
index 7ba15f2c6..5d4b5132b 100644
--- a/p2p/node_test.go
+++ b/p2p/node_test.go
@@ -212,7 +212,7 @@ func TestPingPong(t *testing.T) {
// opened on both sides, the ping message might *still* not be received by the
// other peer. Waiting for 1 second gives each peer enough time to finish
// setting up GossipSub. I couldn't find any way to avoid this hack :(
- time.Sleep(2 * time.Second)
+ time.Sleep(5 * time.Second)
// Send ping from node0 to node1
pingMessage := &Message{From: node0.host.ID(), Data: []byte("ping\n")}
diff --git a/packages/browser-lite/package.json b/packages/browser-lite/package.json
index f8214bdac..33dd88496 100644
--- a/packages/browser-lite/package.json
+++ b/packages/browser-lite/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/mesh-browser-lite",
- "version": "9.2.1",
+ "version": "9.3.0",
"description": "TypeScript and JavaScript bindings for running Mesh directly in the browser. To use this packages, you must use your own copy of the Mesh WebAssembly Binary",
"main": "./lib/index.js",
"license": "Apache-2.0",
diff --git a/packages/browser-lite/src/index.ts b/packages/browser-lite/src/index.ts
index e77f0c3d3..550671d8d 100644
--- a/packages/browser-lite/src/index.ts
+++ b/packages/browser-lite/src/index.ts
@@ -1,5 +1,13 @@
export * from './mesh';
+// If needed, add a polyfill for instantiateStreaming
+if (!WebAssembly.instantiateStreaming) {
+ WebAssembly.instantiateStreaming = async (resp: any, importObject: any) => {
+ const source = await (await resp).arrayBuffer();
+ return WebAssembly.instantiate(source, importObject);
+ };
+}
+
/**
* Loads the Wasm module that is provided by fetching a url.
* @param url The URL to query for the Wasm binary.
@@ -14,6 +22,7 @@ export async function loadMeshStreamingWithURLAsync(url: string): Promise
*/
export async function loadMeshStreamingAsync(response: Response | Promise): Promise {
const go = new Go();
+
const module = await WebAssembly.instantiateStreaming(response, go.importObject);
// NOTE(jalextowle): Wrapping the `go.run(module.instance)` statement in `setImmediate`
// prevents the statement from blocking when `await` is used with this load function.
diff --git a/packages/browser-lite/src/types.ts b/packages/browser-lite/src/types.ts
index 1f9cdd997..23d815a12 100644
--- a/packages/browser-lite/src/types.ts
+++ b/packages/browser-lite/src/types.ts
@@ -6,6 +6,7 @@ export { SignedOrder } from '@0x/order-utils';
export { BigNumber } from '@0x/utils';
export { SupportedProvider } from 'ethereum-types';
+/** @ignore */
export interface WrapperGetOrdersResponse {
snapshotID: string;
snapshotTimestamp: string;
@@ -18,6 +19,7 @@ export interface GetOrdersResponse {
ordersInfos: OrderInfo[];
}
+/** @ignore */
export interface WrapperOrderInfo {
orderHash: string;
signedOrder: WrapperSignedOrder;
@@ -210,14 +212,20 @@ export enum Verbosity {
Trace = 6,
}
-// The global entrypoint for creating a new MeshWrapper.
+/**
+ * The global entrypoint for creating a new MeshWrapper.
+ * @ignore
+ */
export interface ZeroExMesh {
newWrapperAsync(config: WrapperConfig): Promise;
}
-// A direct translation of the MeshWrapper type in Go. Its API exposes only
-// simple JavaScript types like number and string, some of which will be
-// converted. For example, we will convert some strings to BigNumbers.
+/**
+ * A direct translation of the MeshWrapper type in Go. Its API exposes only
+ * simple JavaScript types like number and string, some of which will be
+ * converted. For example, we will convert some strings to BigNumbers.
+ * @ignore
+ */
export interface MeshWrapper {
startAsync(): Promise;
onError(handler: (err: Error) => void): void;
@@ -227,7 +235,10 @@ export interface MeshWrapper {
addOrdersAsync(orders: WrapperSignedOrder[], pinned: boolean): Promise;
}
-// The type for configuration exposed by MeshWrapper.
+/**
+ * The type for configuration exposed by MeshWrapper.
+ * @ignore
+ */
export interface WrapperConfig {
verbosity?: number;
ethereumRPCURL?: string;
@@ -245,9 +256,12 @@ export interface WrapperConfig {
web3Provider?: ZeroExProvider; // Standardized ZeroExProvider instead the more permissive SupportedProvider interface
}
-// The type for signed orders exposed by MeshWrapper. Unlike other types, the
-// analog isn't defined here. Instead we re-use the definition in
-// @0x/order-utils.
+/**
+ * The type for signed orders exposed by MeshWrapper. Unlike other types, the
+ * analog isn't defined here. Instead we re-use the definition in
+ * @0x/order-utils.
+ * @ignore
+ */
export interface WrapperSignedOrder {
makerAddress: string;
makerAssetData: string;
@@ -274,6 +288,7 @@ export interface ERC20TransferEvent {
value: BigNumber;
}
+/** @ignore */
export interface WrapperERC20TransferEvent {
from: string;
to: string;
@@ -286,6 +301,7 @@ export interface ERC20ApprovalEvent {
value: BigNumber;
}
+/** @ignore */
export interface WrapperERC20ApprovalEvent {
owner: string;
spender: string;
@@ -298,6 +314,7 @@ export interface ERC721TransferEvent {
tokenId: BigNumber;
}
+/** @ignore */
export interface WrapperERC721TransferEvent {
from: string;
to: string;
@@ -310,6 +327,7 @@ export interface ERC721ApprovalEvent {
tokenId: BigNumber;
}
+/** @ignore */
export interface WrapperERC721ApprovalEvent {
owner: string;
approved: string;
@@ -330,6 +348,7 @@ export interface ERC1155TransferSingleEvent {
value: BigNumber;
}
+/** @ignore */
export interface WrapperERC1155TransferSingleEvent {
operator: string;
from: string;
@@ -346,6 +365,7 @@ export interface ERC1155TransferBatchEvent {
values: BigNumber[];
}
+/** @ignore */
export interface WrapperERC1155TransferBatchEvent {
operator: string;
from: string;
@@ -377,6 +397,7 @@ export interface ExchangeFillEvent {
takerFeeAssetData: string;
}
+/** @ignore */
export interface WrapperExchangeFillEvent {
makerAddress: string;
takerAddress: string;
@@ -409,6 +430,7 @@ export interface ExchangeCancelUpToEvent {
orderEpoch: BigNumber;
}
+/** @ignore */
export interface WrapperExchangeCancelUpToEvent {
makerAddress: string;
orderSenderAddress: string;
@@ -420,6 +442,7 @@ export interface WethWithdrawalEvent {
value: BigNumber;
}
+/** @ignore */
export interface WrapperWethWithdrawalEvent {
owner: string;
value: string;
@@ -430,6 +453,7 @@ export interface WethDepositEvent {
value: BigNumber;
}
+/** @ignore */
export interface WrapperWethDepositEvent {
owner: string;
value: string;
@@ -451,6 +475,7 @@ export enum ContractEventKind {
WethWithdrawalEvent = 'WethWithdrawalEvent',
}
+/** @ignore */
export type WrapperContractEventParameters =
| WrapperERC20TransferEvent
| WrapperERC20ApprovalEvent
@@ -466,6 +491,7 @@ export type WrapperContractEventParameters =
| WrapperERC1155TransferBatchEvent
| ERC1155ApprovalForAllEvent;
+/** @ignore */
export type ContractEventParameters =
| ERC20TransferEvent
| ERC20ApprovalEvent
@@ -492,7 +518,10 @@ export interface ContractEvent {
parameters: ContractEventParameters;
}
-// The type for order events exposed by MeshWrapper.
+/**
+ * The type for order events exposed by MeshWrapper.
+ * @ignore
+ */
export interface WrapperContractEvent {
blockHash: string;
txHash: string;
@@ -517,6 +546,7 @@ export enum OrderEventEndState {
StoppedWatching = 'STOPPED_WATCHING',
}
+/** @ignore */
export interface WrapperOrderEvent {
timestamp: string;
orderHash: string;
@@ -539,13 +569,13 @@ export interface OrderEvent {
contractEvents: ContractEvent[];
}
-// The type for validation results exposed by MeshWrapper.
+/** @ignore */
export interface WrapperValidationResults {
accepted: WrapperAcceptedOrderInfo[];
rejected: WrapperRejectedOrderInfo[];
}
-// The type for accepted orders exposed by MeshWrapper.
+/** @ignore */
export interface WrapperAcceptedOrderInfo {
orderHash: string;
signedOrder: WrapperSignedOrder;
@@ -553,7 +583,7 @@ export interface WrapperAcceptedOrderInfo {
isNew: boolean;
}
-// The type for rejected orders exposed by MeshWrapper.
+/** @ignore */
export interface WrapperRejectedOrderInfo {
orderHash: string;
signedOrder: WrapperSignedOrder;
@@ -613,6 +643,7 @@ export interface LatestBlock {
hash: string;
}
+/** @ignore */
export interface WrapperStats {
version: string;
pubSubTopic: string;
diff --git a/packages/browser-lite/src/wasm_exec.ts b/packages/browser-lite/src/wasm_exec.ts
index 0e003ea8a..8237edb9e 100644
--- a/packages/browser-lite/src/wasm_exec.ts
+++ b/packages/browser-lite/src/wasm_exec.ts
@@ -4,7 +4,14 @@
// license that can be found in the GO_LICENSE file.
/* tslint:disable */
-
+/**
+ * @hidden
+ */
+
+/**
+ * NOTE(jalextowle): This comment must be here so that typedoc knows that the above
+ * comment is a module comment
+ */
(() => {
// Map multiple JavaScript environments to a single common API,
// preferring web standards over Node.js API.
diff --git a/packages/browser-lite/src/wrapper_conversion.ts b/packages/browser-lite/src/wrapper_conversion.ts
index 9d0ebda90..4aea6f696 100644
--- a/packages/browser-lite/src/wrapper_conversion.ts
+++ b/packages/browser-lite/src/wrapper_conversion.ts
@@ -1,3 +1,11 @@
+/**
+ * @hidden
+ */
+
+/**
+ * NOTE(jalextowle): This comment must be here so that typedoc knows that the above
+ * comment is a module comment
+ */
import { SignedOrder } from '@0x/order-utils';
import { BigNumber, providerUtils } from '@0x/utils';
diff --git a/packages/browser/package.json b/packages/browser/package.json
index 10c0564d9..a8c3362de 100644
--- a/packages/browser/package.json
+++ b/packages/browser/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/mesh-browser",
- "version": "9.2.1",
+ "version": "9.3.0",
"description": "TypeScript and JavaScript bindings for running Mesh directly in the browser.",
"main": "./lib/index.js",
"license": "Apache-2.0",
@@ -20,7 +20,7 @@
"docsPath": "../../docs/browser-bindings/browser"
},
"dependencies": {
- "@0x/mesh-browser-lite": "^9.2.1",
+ "@0x/mesh-browser-lite": "^9.3.0",
"base64-arraybuffer": "^0.2.0",
"browserfs": "^1.4.3",
"ethereum-types": "^3.0.0"
diff --git a/packages/integration-tests/src/index.ts b/packages/integration-tests/src/index.ts
index 14ee4dfbf..b3dd720f7 100644
--- a/packages/integration-tests/src/index.ts
+++ b/packages/integration-tests/src/index.ts
@@ -21,12 +21,12 @@ provider.start();
makerAddress: '0x6ecbe1db9ef729cbe972c83fb886247691fb6beb',
makerAssetData: '0xf47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c',
makerFeeAssetData: '0x',
- makerAssetAmount: new BigNumber('100000000000000000000'),
+ makerAssetAmount: new BigNumber('1000'),
makerFee: new BigNumber('0'),
takerAddress: '0x0000000000000000000000000000000000000000',
takerAssetData: '0xf47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082',
takerFeeAssetData: '0x',
- takerAssetAmount: new BigNumber('50000000000000000000'),
+ takerAssetAmount: new BigNumber('5000'),
takerFee: new BigNumber('0'),
senderAddress: '0x0000000000000000000000000000000000000000',
exchangeAddress: '0x48bacb9266a570d521063ef5dd96e61686dbe788',
diff --git a/packages/rpc-client/package.json b/packages/rpc-client/package.json
index 644aa160c..8bae28fff 100644
--- a/packages/rpc-client/package.json
+++ b/packages/rpc-client/package.json
@@ -1,6 +1,6 @@
{
"name": "@0x/mesh-rpc-client",
- "version": "9.2.1",
+ "version": "9.3.0",
"engines": {
"node": ">=6.12"
},
diff --git a/scenario/orderopts/orderopts.go b/scenario/orderopts/orderopts.go
new file mode 100644
index 000000000..04b6a6d8e
--- /dev/null
+++ b/scenario/orderopts/orderopts.go
@@ -0,0 +1,114 @@
+package orderopts
+
+import (
+ "math/big"
+
+ "github.com/0xProject/0x-mesh/zeroex"
+ "github.com/ethereum/go-ethereum/common"
+)
+
+type Config struct {
+ Order *zeroex.Order
+ SetupMakerState bool
+ SetupTakerAddress common.Address
+}
+
+type Option func(order *Config) error
+
+// Apply applies the given options to the config, returning the first error
+// encountered (if any).
+func (cfg *Config) Apply(opts ...Option) error {
+ for _, opt := range opts {
+ if opt == nil {
+ continue
+ }
+ if err := opt(cfg); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func MakerAddress(address common.Address) Option {
+ return func(cfg *Config) error {
+ cfg.Order.MakerAddress = address
+ return nil
+ }
+}
+
+func MakerAssetData(assetData []byte) Option {
+ return func(cfg *Config) error {
+ cfg.Order.MakerAssetData = assetData
+ return nil
+ }
+}
+
+func MakerAssetAmount(amount *big.Int) Option {
+ return func(cfg *Config) error {
+ cfg.Order.MakerAssetAmount = amount
+ return nil
+ }
+}
+
+func TakerAssetData(assetData []byte) Option {
+ return func(cfg *Config) error {
+ cfg.Order.TakerAssetData = assetData
+ return nil
+ }
+}
+
+func TakerAssetAmount(amount *big.Int) Option {
+ return func(cfg *Config) error {
+ cfg.Order.TakerAssetAmount = amount
+ return nil
+ }
+}
+
+func ExpirationTimeSeconds(expirationTimeSeconds *big.Int) Option {
+ return func(cfg *Config) error {
+ cfg.Order.ExpirationTimeSeconds = expirationTimeSeconds
+ return nil
+ }
+}
+
+func MakerFeeAssetData(assetData []byte) Option {
+ return func(cfg *Config) error {
+ cfg.Order.MakerFeeAssetData = assetData
+ return nil
+ }
+}
+
+func MakerFee(amount *big.Int) Option {
+ return func(cfg *Config) error {
+ cfg.Order.MakerFee = amount
+ return nil
+ }
+}
+
+func SenderAddress(address common.Address) Option {
+ return func(cfg *Config) error {
+ cfg.Order.SenderAddress = address
+ return nil
+ }
+}
+
+func FeeRecipientAddress(address common.Address) Option {
+ return func(cfg *Config) error {
+ cfg.Order.FeeRecipientAddress = address
+ return nil
+ }
+}
+
+func SetupMakerState(b bool) Option {
+ return func(cfg *Config) error {
+ cfg.SetupMakerState = b
+ return nil
+ }
+}
+
+func SetupTakerAddress(takerAddress common.Address) Option {
+ return func(cfg *Config) error {
+ cfg.SetupTakerAddress = takerAddress
+ return nil
+ }
+}
diff --git a/scenario/scenario.go b/scenario/scenario.go
index a04276b62..453a5639c 100644
--- a/scenario/scenario.go
+++ b/scenario/scenario.go
@@ -1,6 +1,9 @@
+// Package scenario allows creating orders for testing purposes with a variety of options.
+// It also supports setting up the necessary on-chain state for both the taker and maker.
package scenario
import (
+ "bytes"
"context"
"fmt"
"math/big"
@@ -11,465 +14,417 @@ import (
"github.com/0xProject/0x-mesh/ethereum"
"github.com/0xProject/0x-mesh/ethereum/signer"
"github.com/0xProject/0x-mesh/ethereum/wrappers"
+ "github.com/0xProject/0x-mesh/scenario/orderopts"
"github.com/0xProject/0x-mesh/zeroex"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/ethclient"
+ "github.com/ethereum/go-ethereum/rpc"
"github.com/stretchr/testify/require"
)
-var ganacheAddresses = ethereum.GanacheAddresses
+var (
+ ethClient *ethclient.Client
+ ganacheAddresses = ethereum.GanacheAddresses
+ ZRXAssetData = common.Hex2Bytes("f47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c")
+ WETHAssetData = common.Hex2Bytes("f47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082")
+)
-// CreateZRXForWETHSignedTestOrder creates a valid 0x orders where the maker wishes to trade ZRX for WETH
-func CreateZRXForWETHSignedTestOrder(t *testing.T, ethClient *ethclient.Client, makerAddress, takerAddress common.Address, wethAmount *big.Int, zrxAmount *big.Int) *zeroex.SignedOrder {
- expirationTime := time.Now().Add(24 * time.Hour)
- return createZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount, expirationTime)
+func init() {
+ rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
+ if err != nil {
+ panic(err)
+ }
+ ethClient = ethclient.NewClient(rpcClient)
}
-// CreateZRXForWETHSignedTestOrder creates a valid 0x orders where the maker wishes to trade ZRX for WETH
-func createZRXForWETHSignedTestOrder(t *testing.T, ethClient *ethclient.Client, makerAddress, takerAddress common.Address, wethAmount *big.Int, zrxAmount *big.Int, expirationTime time.Time) *zeroex.SignedOrder {
- // Create order
- testOrder := &zeroex.Order{
+func defaultTestOrder() *zeroex.Order {
+ return &zeroex.Order{
ChainID: big.NewInt(constants.TestChainID),
- MakerAddress: makerAddress,
+ MakerAddress: constants.GanacheAccount1,
TakerAddress: constants.NullAddress,
SenderAddress: constants.NullAddress,
- FeeRecipientAddress: common.HexToAddress("0xa258b39954cef5cb142fd567a46cddb31a670124"),
- MakerAssetData: common.Hex2Bytes("f47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c"),
+ FeeRecipientAddress: constants.NullAddress,
+ MakerAssetData: ZRXAssetData,
MakerFeeAssetData: constants.NullBytes,
- TakerAssetData: common.Hex2Bytes("f47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082"),
+ TakerAssetData: WETHAssetData,
TakerFeeAssetData: constants.NullBytes,
Salt: big.NewInt(int64(time.Now().Nanosecond())),
MakerFee: big.NewInt(0),
TakerFee: big.NewInt(0),
- MakerAssetAmount: zrxAmount,
- TakerAssetAmount: wethAmount,
- ExpirationTimeSeconds: big.NewInt(expirationTime.Unix()),
+ MakerAssetAmount: big.NewInt(100),
+ TakerAssetAmount: big.NewInt(42),
+ ExpirationTimeSeconds: big.NewInt(time.Now().Add(24 * time.Hour).Unix()),
ExchangeAddress: ganacheAddresses.Exchange,
}
+}
- // Sign Order
- signedTestOrder, err := zeroex.SignTestOrder(testOrder)
- require.NoError(t, err, "could not sign order")
-
- // Set up balances/allowances
-
- // All 1 billion ZRX start in this address
- zrxCoinbase := constants.GanacheAccount0
- if makerAddress == zrxCoinbase {
- t.Errorf("makerAddress cannot be set to the ZRX coinbase address (e.g., the address with the 1 billion ZRX at Genesis)")
+func defaultConfig() *orderopts.Config {
+ return &orderopts.Config{
+ Order: defaultTestOrder(),
+ SetupMakerState: false,
+ SetupTakerAddress: constants.NullAddress,
}
+}
- weth9, err := wrappers.NewWETH9(ganacheAddresses.WETH9, ethClient)
- require.NoError(t, err)
+func NewTestOrder(t *testing.T, opts ...orderopts.Option) *zeroex.Order {
+ cfg := defaultConfig()
+ require.NoError(t, cfg.Apply(opts...))
+ return newTestOrder(cfg)
+}
- // Convert ETH-WETH
- opts := &bind.TransactOpts{
- From: takerAddress,
- Value: wethAmount,
- Signer: GetTestSignerFn(takerAddress),
- }
- txn, err := weth9.Deposit(opts)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+func newTestOrder(cfg *orderopts.Config) *zeroex.Order {
+ return cfg.Order
+}
- zrx, err := wrappers.NewZRXToken(ganacheAddresses.ZRXToken, ethClient)
- require.NoError(t, err)
+func NewSignedTestOrder(t *testing.T, opts ...orderopts.Option) *zeroex.SignedOrder {
+ cfg := defaultConfig()
+ require.NoError(t, cfg.Apply(opts...))
- // Transfer ZRX to makerAddress
- opts = &bind.TransactOpts{
- From: zrxCoinbase,
- Signer: GetTestSignerFn(zrxCoinbase),
- }
- txn, err = zrx.Transfer(opts, makerAddress, zrxAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+ order := newTestOrder(cfg)
+ signedOrder, err := zeroex.SignTestOrder(order)
+ require.NoError(t, err, "could not sign order")
- // SET ZRX allowance
- opts = &bind.TransactOpts{
- From: makerAddress,
- Signer: GetTestSignerFn(makerAddress),
+ if cfg.SetupMakerState {
+ setupMakerState(t, signedOrder)
}
- txn, err = zrx.Approve(opts, ganacheAddresses.ERC20Proxy, zrxAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- // SET WETH allowance
- opts = &bind.TransactOpts{
- From: takerAddress,
- Signer: GetTestSignerFn(takerAddress),
+ if cfg.SetupTakerAddress != constants.NullAddress {
+ setupTakerState(t, signedOrder, cfg.SetupTakerAddress)
}
- txn, err = weth9.Approve(opts, ganacheAddresses.ERC20Proxy, wethAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
- return signedTestOrder
+ return signedOrder
}
-// CreateSignedTestOrderWithExpirationTime creates a valid 0x orders where the maker wishes to trade ZRX for WETH
-func CreateSignedTestOrderWithExpirationTime(t *testing.T, ethClient *ethclient.Client, makerAddress, takerAddress common.Address, expirationTime time.Time) *zeroex.SignedOrder {
- return createZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, big.NewInt(1000), big.NewInt(1000), expirationTime)
-}
+// NewSignedTestOrdersBatch effeciently creates numOrders orders with independent options.
+// If the options require setting up maker or taker state, that state will be set up effeciently
+// with one transaction per address.
+//
+// optionsForIndex is a function which returns the options for creating the order at a specific
+// index (between 0 and numOrders). For example, you can create ERC721 orders which each have a unique
+// token ID. optionsForIndex can be nil to always use the default options. It can return nil to
+// use the default options for an order at a specific index.
+func NewSignedTestOrdersBatch(t *testing.T, numOrders int, optionsForIndex func(index int) []orderopts.Option) []*zeroex.SignedOrder {
+ allRequiredBalances := map[common.Address]*tokenBalances{}
+
+ allOrders := make([]*zeroex.SignedOrder, numOrders)
+ for i := 0; i < numOrders; i++ {
+ // Apply the options (if any) for the order we will create at this index.
+ cfg := defaultConfig()
+ if optionsForIndex != nil {
+ opts := optionsForIndex(i)
+ if opts != nil {
+ require.NoError(t, cfg.Apply(opts...))
+ }
+ }
-// CreateWETHForZRXSignedTestOrder creates a valid 0x orders where the maker wishes to trade WETH for ZRX
-func CreateWETHForZRXSignedTestOrder(t *testing.T, ethClient *ethclient.Client, makerAddress, takerAddress common.Address, wethAmount *big.Int, zrxAmount *big.Int) *zeroex.SignedOrder {
- // Create order
- testOrder := &zeroex.Order{
- ChainID: big.NewInt(constants.TestChainID),
- MakerAddress: makerAddress,
- TakerAddress: constants.NullAddress,
- SenderAddress: constants.NullAddress,
- FeeRecipientAddress: common.HexToAddress("0xa258b39954cef5cb142fd567a46cddb31a670124"),
- MakerAssetData: common.Hex2Bytes("f47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082"),
- MakerFeeAssetData: constants.NullBytes,
- TakerAssetData: common.Hex2Bytes("f47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c"),
- TakerFeeAssetData: constants.NullBytes,
- Salt: big.NewInt(int64(time.Now().Nanosecond())),
- MakerFee: big.NewInt(0),
- TakerFee: big.NewInt(0),
- MakerAssetAmount: wethAmount,
- TakerAssetAmount: zrxAmount,
- ExpirationTimeSeconds: big.NewInt(time.Now().Add(24 * time.Hour).Unix()),
- ExchangeAddress: ganacheAddresses.Exchange,
+ // Create the order based on the cfg.
+ order := newTestOrder(cfg)
+ signedOrder, err := zeroex.SignTestOrder(order)
+ require.NoError(t, err, "could not sign order")
+ allOrders[i] = signedOrder
+
+ // Add maker and taker balances as needed to the set of required balances.
+ if cfg.SetupMakerState {
+ makerBalancesForThisOrder := requiredMakerBalances(t, signedOrder)
+ makerBalances, found := allRequiredBalances[signedOrder.MakerAddress]
+ if !found {
+ allRequiredBalances[order.MakerAddress] = makerBalancesForThisOrder
+ } else {
+ makerBalances.add(makerBalancesForThisOrder)
+ }
+ }
+ if cfg.SetupTakerAddress != constants.NullAddress {
+ takerBalancesForThisOrder := requiredTakerBalances(t, signedOrder)
+ takerBalances, found := allRequiredBalances[cfg.SetupTakerAddress]
+ if !found {
+ allRequiredBalances[cfg.SetupTakerAddress] = takerBalancesForThisOrder
+ } else {
+ takerBalances.add(takerBalancesForThisOrder)
+ }
+ }
}
- // Sign Order
- signedTestOrder, err := zeroex.SignTestOrder(testOrder)
- require.NoError(t, err, "could not sign order")
-
- // Set up balances/allowances
-
- // All 1 billion ZRX start in this address
- zrxCoinbase := constants.GanacheAccount0
- if takerAddress == zrxCoinbase {
- t.Errorf("takerAddress cannot be set to the ZRX coinbase address (e.g., the address with the 1 billion ZRX at Genesis)")
+ // Setup all the required balances.
+ for traderAddress, requiredBalances := range allRequiredBalances {
+ setupBalanceAndAllowance(t, traderAddress, requiredBalances)
}
- weth9, err := wrappers.NewWETH9(ganacheAddresses.WETH9, ethClient)
- require.NoError(t, err)
+ return allOrders
+}
- // Convert ETH-WETH
- opts := &bind.TransactOpts{
- From: makerAddress,
- Value: wethAmount,
- Signer: GetTestSignerFn(makerAddress),
+// OptionsForAll is a convenience function which can be used in combination with NewSignedTestOrdersBatch
+// when you want all orders to be created with the same options. It returns a function which can be used
+// as optionsForIndex which always returns the given options, regardless of the index.
+func OptionsForAll(opts ...orderopts.Option) func(_ int) []orderopts.Option {
+ return func(_ int) []orderopts.Option {
+ return opts
}
- txn, err := weth9.Deposit(opts)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- zrx, err := wrappers.NewZRXToken(ganacheAddresses.ZRXToken, ethClient)
- require.NoError(t, err)
+}
- // Transfer ZRX to takerAddress
- opts = &bind.TransactOpts{
- From: zrxCoinbase,
- Signer: GetTestSignerFn(zrxCoinbase),
- }
- txn, err = zrx.Transfer(opts, takerAddress, zrxAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+type tokenBalances struct {
+ zrx *big.Int
+ weth *big.Int
+ erc721Tokens []*big.Int
+ erc1155Tokens []erc1155TokenAmount
+}
- // SET ZRX allowance
- opts = &bind.TransactOpts{
- From: takerAddress,
- Signer: GetTestSignerFn(takerAddress),
- }
- txn, err = zrx.Approve(opts, ganacheAddresses.ERC20Proxy, zrxAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+type erc1155TokenAmount struct {
+ tokenID *big.Int
+ amount *big.Int
+}
- // SET WETH allowance
- opts = &bind.TransactOpts{
- From: makerAddress,
- Signer: GetTestSignerFn(makerAddress),
+func newTokenBalances() *tokenBalances {
+ return &tokenBalances{
+ zrx: big.NewInt(0),
+ weth: big.NewInt(0),
+ erc721Tokens: []*big.Int{},
+ erc1155Tokens: []erc1155TokenAmount{},
}
- txn, err = weth9.Approve(opts, ganacheAddresses.ERC20Proxy, wethAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- return signedTestOrder
}
-// CreateNFTForZRXSignedTestOrder creates a valid 0x orders where the maker wishes to trade an NFT for ZRX
-func CreateNFTForZRXSignedTestOrder(t *testing.T, ethClient *ethclient.Client, makerAddress, takerAddress common.Address, tokenID *big.Int, zrxAmount *big.Int) *zeroex.SignedOrder {
- dummyERC721Token, err := wrappers.NewDummyERC721Token(constants.GanacheDummyERC721TokenAddress, ethClient)
- require.NoError(t, err)
-
- makerOpts := &bind.TransactOpts{
- From: makerAddress,
- Signer: GetTestSignerFn(makerAddress),
+func (x *tokenBalances) add(y *tokenBalances) {
+ x.zrx.Add(x.zrx, y.zrx)
+ x.weth.Add(x.weth, y.weth)
+ x.erc721Tokens = append(x.erc721Tokens, y.erc721Tokens...)
+ for _, yToken := range y.erc1155Tokens {
+ found := false
+ for xIndex, xToken := range x.erc1155Tokens {
+ if xToken.tokenID.Cmp(yToken.tokenID) == 0 {
+ found = true
+ x.erc1155Tokens[xIndex] = erc1155TokenAmount{
+ tokenID: xToken.tokenID,
+ amount: xToken.amount.Add(xToken.amount, yToken.amount),
+ }
+ }
+ }
+ if !found {
+ x.erc1155Tokens = append(x.erc1155Tokens, yToken)
+ }
}
- txn, err := dummyERC721Token.Mint(makerOpts, makerAddress, tokenID)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- makerAssetDataHex := fmt.Sprintf("%s000000000000000000000000%s000000000000000000000000000000000000000000000000000000000000000%s", zeroex.ERC721AssetDataID, constants.GanacheDummyERC721TokenAddress.Hex()[2:], tokenID)
- makerAssetData := common.Hex2Bytes(
- makerAssetDataHex,
- )
+}
- // Create order
- testOrder := &zeroex.Order{
- ChainID: big.NewInt(constants.TestChainID),
- MakerAddress: makerAddress,
- TakerAddress: constants.NullAddress,
- SenderAddress: constants.NullAddress,
- FeeRecipientAddress: common.HexToAddress("0xa258b39954cef5cb142fd567a46cddb31a670124"),
- MakerAssetData: makerAssetData,
- MakerFeeAssetData: constants.NullBytes,
- TakerAssetData: common.Hex2Bytes("f47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c"),
- TakerFeeAssetData: constants.NullBytes,
- Salt: big.NewInt(int64(time.Now().Nanosecond())),
- MakerFee: big.NewInt(0),
- TakerFee: big.NewInt(0),
- MakerAssetAmount: big.NewInt(1),
- TakerAssetAmount: zrxAmount,
- ExpirationTimeSeconds: big.NewInt(time.Now().Add(24 * time.Hour).Unix()),
- ExchangeAddress: ganacheAddresses.Exchange,
- }
+var zero = big.NewInt(0)
- // Sign Order
- signedTestOrder, err := zeroex.SignTestOrder(testOrder)
- require.NoError(t, err, "could not sign order")
+func isZero(x *big.Int) bool {
+ return x.Cmp(zero) == 0
+}
- // Set up balances/allowances
+// setupMakerState sets up all the on-chain state in order to make the order fillable. This includes
+// setting allowances and transferring the required balances.
+func setupMakerState(t *testing.T, order *zeroex.SignedOrder) {
+ requiredMakerBalances := requiredMakerBalances(t, order)
+ setupBalanceAndAllowance(t, order.MakerAddress, requiredMakerBalances)
+}
- // SET NFT allowance
- txn, err = dummyERC721Token.SetApprovalForAll(makerOpts, ganacheAddresses.ERC721Proxy, true)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+// setupTakerState sets up all the on-chain state needed by taker in order to fill the order.
+// This includes setting allowances and transferring the required balances.
+func setupTakerState(t *testing.T, order *zeroex.SignedOrder, taker common.Address) {
+ requiredTakerBalances := requiredTakerBalances(t, order)
+ setupBalanceAndAllowance(t, taker, requiredTakerBalances)
+}
- // All 1 billion ZRX start in this address
- zrxCoinbase := constants.GanacheAccount0
- if takerAddress == zrxCoinbase {
- t.Errorf("takerAddress cannot be set to the ZRX coinbase address (e.g., the address with the 1 billion ZRX at Genesis)")
+func setupBalanceAndAllowance(t *testing.T, traderAddress common.Address, requiredBalances *tokenBalances) {
+ if !isZero(requiredBalances.zrx) {
+ setZRXBalanceAndAllowance(t, traderAddress, requiredBalances.zrx)
}
-
- zrx, err := wrappers.NewZRXToken(ganacheAddresses.ZRXToken, ethClient)
- require.NoError(t, err)
-
- // Transfer ZRX to takerAddress
- opts := &bind.TransactOpts{
- From: zrxCoinbase,
- Signer: GetTestSignerFn(zrxCoinbase),
+ if !isZero(requiredBalances.weth) {
+ setWETHBalanceAndAllowance(t, traderAddress, requiredBalances.weth)
}
- txn, err = zrx.Transfer(opts, takerAddress, zrxAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- // SET ZRX allowance
- opts = &bind.TransactOpts{
- From: takerAddress,
- Signer: GetTestSignerFn(takerAddress),
+ if len(requiredBalances.erc721Tokens) != 0 {
+ for _, tokenId := range requiredBalances.erc721Tokens {
+ setDummyERC721BalanceAndAllowance(t, traderAddress, tokenId)
+ }
+ }
+ if len(requiredBalances.erc1155Tokens) != 0 {
+ setDummyERC1155BalanceAndAllowance(t, traderAddress, requiredBalances.erc1155Tokens)
}
- txn, err = zrx.Approve(opts, ganacheAddresses.ERC20Proxy, zrxAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- return signedTestOrder
}
-// CreateNFTForZRXWithWETHMakerFeeSignedTestOrder creates a valid 0x order where
-// the maker wishes to trade an NFT for ZRX with WETH as the maker fee asset.
-func CreateNFTForZRXWithWETHMakerFeeSignedTestOrder(t *testing.T, ethClient *ethclient.Client, makerAddress, takerAddress common.Address, tokenID *big.Int, zrxAmount *big.Int, wethFeeAmount *big.Int) *zeroex.SignedOrder {
- dummyERC721Token, err := wrappers.NewDummyERC721Token(constants.GanacheDummyERC721TokenAddress, ethClient)
- require.NoError(t, err)
+func requiredMakerBalances(t *testing.T, order *zeroex.SignedOrder) *tokenBalances {
+ balances := newTokenBalances()
+ balances.add(requiredBalancesForAssetData(t, order.MakerAssetData, order.MakerAssetAmount))
+ if len(order.MakerFeeAssetData) != 0 && !isZero(order.MakerFee) {
+ balances.add(requiredBalancesForAssetData(t, order.MakerFeeAssetData, order.MakerFee))
+ }
+ return balances
+}
- makerOpts := &bind.TransactOpts{
- From: makerAddress,
- Signer: GetTestSignerFn(makerAddress),
+func requiredTakerBalances(t *testing.T, order *zeroex.SignedOrder) *tokenBalances {
+ balances := newTokenBalances()
+ balances.add(requiredBalancesForAssetData(t, order.TakerAssetData, order.TakerAssetAmount))
+ if len(order.TakerFeeAssetData) != 0 && !isZero(order.TakerFee) {
+ balances.add(requiredBalancesForAssetData(t, order.TakerFeeAssetData, order.TakerFee))
}
- txn, err := dummyERC721Token.Mint(makerOpts, makerAddress, tokenID)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+ return balances
+}
- makerAssetDataHex := fmt.Sprintf("%s000000000000000000000000%s000000000000000000000000000000000000000000000000000000000000000%s", zeroex.ERC721AssetDataID, constants.GanacheDummyERC721TokenAddress.Hex()[2:], tokenID)
- makerAssetData := common.Hex2Bytes(
- makerAssetDataHex,
- )
+func requiredBalancesForAssetData(t *testing.T, assetData []byte, assetAmount *big.Int) *tokenBalances {
+ balances := newTokenBalances()
+ assetDataDecoder := zeroex.NewAssetDataDecoder()
+ assetDataName, err := assetDataDecoder.GetName(assetData)
+ require.NoError(t, err)
+ switch assetDataName {
+ case "ERC20Token":
+ if bytes.Equal(assetData, ZRXAssetData) {
+ balances.zrx = assetAmount
+ return balances
+ } else if bytes.Equal(assetData, WETHAssetData) {
+ balances.weth = assetAmount
+ return balances
+ } else {
+ t.Fatalf("scenario: cannot setup on-chain state for ERC20 assetdata (unsupported token): %s", common.Bytes2Hex(assetData))
+ }
+ case "ERC721Token":
+ var decodedAssetData zeroex.ERC721AssetData
+ require.NoError(t, assetDataDecoder.Decode(assetData, &decodedAssetData))
+ if decodedAssetData.Address.Hex() == constants.GanacheDummyERC721TokenAddress.Hex() {
+ balances.erc721Tokens = []*big.Int{decodedAssetData.TokenId}
+ return balances
+ } else {
+ t.Fatalf("scneario: cannot setup on-chain state for ERC721 assetdata (only DummyERC721Token is supported): %s", common.Bytes2Hex(assetData))
+ }
+ case "ERC1155Assets":
+ var decodedAssetData zeroex.ERC1155AssetData
+ require.NoError(t, assetDataDecoder.Decode(assetData, &decodedAssetData))
- // Create order
- testOrder := &zeroex.Order{
- ChainID: big.NewInt(constants.TestChainID),
- ExchangeAddress: ganacheAddresses.Exchange,
- MakerAddress: makerAddress,
- TakerAddress: constants.NullAddress,
- SenderAddress: constants.NullAddress,
- FeeRecipientAddress: common.HexToAddress("0xa258b39954cef5cb142fd567a46cddb31a670124"),
- MakerAssetData: makerAssetData,
- MakerFeeAssetData: common.Hex2Bytes("f47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082"),
- TakerAssetData: common.Hex2Bytes("f47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c"),
- TakerFeeAssetData: constants.NullBytes,
- Salt: big.NewInt(1548619145450),
- MakerFee: wethFeeAmount,
- TakerFee: big.NewInt(0),
- MakerAssetAmount: big.NewInt(1),
- TakerAssetAmount: zrxAmount,
- ExpirationTimeSeconds: big.NewInt(time.Now().Add(24 * time.Hour).Unix()),
- }
+ if len(decodedAssetData.Ids) != len(decodedAssetData.Values) {
+ t.Fatalf("scenario: tokenIDs and amounts are not the same length (%d and %d respectively)", len(decodedAssetData.Ids), len(decodedAssetData.Values))
+ }
- // Sign Order
- signedTestOrder, err := zeroex.SignTestOrder(testOrder)
- require.NoError(t, err, "could not sign order")
+ if decodedAssetData.Address.Hex() == constants.GanacheDummyERC1155MintableAddress.Hex() {
+ balances.erc1155Tokens = make([]erc1155TokenAmount, len(decodedAssetData.Ids))
+ for i, tokenID := range decodedAssetData.Ids {
+ totalAmount := big.NewInt(0).Mul(decodedAssetData.Values[i], assetAmount)
+ balances.erc1155Tokens[i] = erc1155TokenAmount{
+ tokenID: tokenID,
+ amount: totalAmount,
+ }
+ }
+ return balances
+ } else {
+ t.Fatalf("scneario: cannot setup on-chain state for ERC1155 assetdata (only DummyERC1155Mintable is supported): %s", common.Bytes2Hex(assetData))
+ }
+ case "StaticCall":
+ var decodedAssetData zeroex.StaticCallAssetData
+ require.NoError(t, assetDataDecoder.Decode(assetData, &decodedAssetData))
+ staticCallDataName, err := assetDataDecoder.GetName(decodedAssetData.StaticCallData)
+ require.NoError(t, err)
+ if staticCallDataName != "checkGasPrice" {
+ t.Fatalf("scneario: cannot setup on-chain state for StaticCall assetdata (only checkGasPrice is supported): (%s) %s", staticCallDataName, common.Bytes2Hex(assetData))
+ }
+ // Note(albrow): So far there is no additional state required for the types of StaticCall asset data that we support.
+ return balances
+ }
- // Set up balances/allowances
+ // Note(albrow): We don't currently support setting balances and allowances for MAP orders. If needed in
+ // the future, we an support MAP orders by recursively calling requiredBalancesForAssetData and adding the
+ // result to balances.
- // SET NFT allowance
- txn, err = dummyERC721Token.SetApprovalForAll(makerOpts, ganacheAddresses.ERC721Proxy, true)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+ t.Fatalf("scenario: cannot setup on-chain state for unsupported assetdata: (%s) %s", assetDataName, common.Bytes2Hex(assetData))
+ return nil
+}
+// setWETHBalanceAndAllowance unwraps amount WETH for traderAddress. In other words, the given amount
+// will be added to traderAddress's WETH balance.
+func setWETHBalanceAndAllowance(t *testing.T, traderAddress common.Address, amount *big.Int) {
weth9, err := wrappers.NewWETH9(ganacheAddresses.WETH9, ethClient)
require.NoError(t, err)
- // Convert ETH-WETH for MakerFee
+ // Convert ETH to WETH
opts := &bind.TransactOpts{
- From: makerAddress,
- Value: wethFeeAmount,
- Signer: GetTestSignerFn(makerAddress),
+ From: traderAddress,
+ Value: amount,
+ Signer: GetTestSignerFn(traderAddress),
}
- txn, err = weth9.Deposit(opts)
+ txn, err := weth9.Deposit(opts)
require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+ waitTxnSuccessfullyMined(t, txn)
- // All 1 billion ZRX start in this address
- zrxCoinbase := constants.GanacheAccount0
- if takerAddress == zrxCoinbase {
- t.Errorf("takerAddress cannot be set to the ZRX coinbase address (e.g., the address with the 1 billion ZRX at Genesis)")
+ // Set WETH allowance
+ opts = &bind.TransactOpts{
+ From: traderAddress,
+ Signer: GetTestSignerFn(traderAddress),
}
+ txn, err = weth9.Approve(opts, ganacheAddresses.ERC20Proxy, amount)
+ require.NoError(t, err)
+ waitTxnSuccessfullyMined(t, txn)
+}
+// setZRXBalanceAndAllowance transfers amount ZRX to traderAddress and sets the appropriate allowance.
+func setZRXBalanceAndAllowance(t *testing.T, traderAddress common.Address, amount *big.Int) {
zrx, err := wrappers.NewZRXToken(ganacheAddresses.ZRXToken, ethClient)
require.NoError(t, err)
- // Transfer ZRX to takerAddress
- opts = &bind.TransactOpts{
+ // Transfer ZRX to traderAddress
+ zrxCoinbase := constants.GanacheAccount0
+ opts := &bind.TransactOpts{
From: zrxCoinbase,
Signer: GetTestSignerFn(zrxCoinbase),
}
- txn, err = zrx.Transfer(opts, takerAddress, zrxAmount)
+ txn, err := zrx.Transfer(opts, traderAddress, amount)
require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+ waitTxnSuccessfullyMined(t, txn)
- // SET ZRX allowance
+ // Set ZRX allowance
opts = &bind.TransactOpts{
- From: takerAddress,
- Signer: GetTestSignerFn(takerAddress),
+ From: traderAddress,
+ Signer: GetTestSignerFn(traderAddress),
}
- txn, err = zrx.Approve(opts, ganacheAddresses.ERC20Proxy, zrxAmount)
+ txn, err = zrx.Approve(opts, ganacheAddresses.ERC20Proxy, amount)
+ require.NoError(t, err)
+ waitTxnSuccessfullyMined(t, txn)
+}
+
+func setDummyERC721BalanceAndAllowance(t *testing.T, traderAddress common.Address, tokenID *big.Int) {
+ // Transfer NFT to traderAddress
+ dummyERC721Token, err := wrappers.NewDummyERC721Token(constants.GanacheDummyERC721TokenAddress, ethClient)
require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
- // SET WETH allowance
- opts = &bind.TransactOpts{
- From: makerAddress,
- Signer: GetTestSignerFn(makerAddress),
+ opts := &bind.TransactOpts{
+ From: traderAddress,
+ Signer: GetTestSignerFn(traderAddress),
}
- txn, err = weth9.Approve(opts, ganacheAddresses.ERC20Proxy, wethFeeAmount)
+ txn, err := dummyERC721Token.Mint(opts, traderAddress, tokenID)
require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
+ waitTxnSuccessfullyMined(t, txn)
- return signedTestOrder
+ // Set allowance
+ txn, err = dummyERC721Token.Approve(opts, ganacheAddresses.ERC721Proxy, tokenID)
+ require.NoError(t, err)
+ waitTxnSuccessfullyMined(t, txn)
}
-// CreateERC1155ForZRXSignedTestOrder creates a valid 0x orders where the maker wishes to trade an ERC1155 for ZRX
-func CreateERC1155ForZRXSignedTestOrder(t *testing.T, ethClient *ethclient.Client, makerAddress, takerAddress common.Address, tokenID *big.Int, zrxAmount, erc1155FungibleAmount *big.Int) *zeroex.SignedOrder {
+func setDummyERC1155BalanceAndAllowance(t *testing.T, traderAddress common.Address, tokenAmounts []erc1155TokenAmount) {
+ // Mint the necessary ERC1155 tokens
erc1155Mintable, err := wrappers.NewERC1155Mintable(constants.GanacheDummyERC1155MintableAddress, ethClient)
require.NoError(t, err)
- // Withdraw maker's WETH
// HACK(fabio): For some reason the txn fails with "out of gas" error with the
// estimated gas amount
gasLimit := uint64(50000)
- makerOpts := &bind.TransactOpts{
- From: makerAddress,
- Signer: GetTestSignerFn(makerAddress),
+ opts := &bind.TransactOpts{
+ From: traderAddress,
+ Signer: GetTestSignerFn(traderAddress),
GasLimit: gasLimit,
}
- uri := ""
- txn, err := erc1155Mintable.CreateWithType(makerOpts, tokenID, uri)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- txn, err = erc1155Mintable.MintFungible(makerOpts, tokenID, []common.Address{makerAddress}, []*big.Int{erc1155FungibleAmount})
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
- devUtils, err := wrappers.NewDevUtils(ganacheAddresses.DevUtils, ethClient)
- require.NoError(t, err)
+ for _, tokenAmount := range tokenAmounts {
+ uri := ""
+ txn, err := erc1155Mintable.CreateWithType(opts, tokenAmount.tokenID, uri)
+ require.NoError(t, err)
+ waitTxnSuccessfullyMined(t, txn)
- callOpts := &bind.CallOpts{
- From: makerAddress,
+ txn, err = erc1155Mintable.MintFungible(opts, tokenAmount.tokenID, []common.Address{traderAddress}, []*big.Int{tokenAmount.amount})
+ require.NoError(t, err)
+ waitTxnSuccessfullyMined(t, txn)
}
- erc1155AssetData, err := devUtils.EncodeERC1155AssetData(
- callOpts,
- constants.GanacheDummyERC1155MintableAddress,
- []*big.Int{tokenID},
- []*big.Int{erc1155FungibleAmount},
- []byte{},
- )
- require.NoError(t, err)
-
- // Create order
- testOrder := &zeroex.Order{
- ChainID: big.NewInt(constants.TestChainID),
- MakerAddress: makerAddress,
- TakerAddress: constants.NullAddress,
- SenderAddress: constants.NullAddress,
- FeeRecipientAddress: common.HexToAddress("0xa258b39954cef5cb142fd567a46cddb31a670124"),
- MakerAssetData: erc1155AssetData,
- MakerFeeAssetData: constants.NullBytes,
- TakerAssetData: common.Hex2Bytes("f47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c"),
- TakerFeeAssetData: constants.NullBytes,
- Salt: big.NewInt(int64(time.Now().Nanosecond())),
- MakerFee: big.NewInt(0),
- TakerFee: big.NewInt(0),
- MakerAssetAmount: big.NewInt(1),
- TakerAssetAmount: zrxAmount,
- ExpirationTimeSeconds: big.NewInt(time.Now().Add(24 * time.Hour).Unix()),
- ExchangeAddress: ganacheAddresses.Exchange,
- }
-
- // Sign Order
- signedTestOrder, err := zeroex.SignTestOrder(testOrder)
- require.NoError(t, err, "could not sign order")
-
- // Set up balances/allowances
-
- // SET ERC1155 allowance
- txn, err = erc1155Mintable.SetApprovalForAll(makerOpts, ganacheAddresses.ERC1155Proxy, true)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- // All 1 billion ZRX start in this address
- zrxCoinbase := constants.GanacheAccount0
- if takerAddress == zrxCoinbase {
- t.Errorf("takerAddress cannot be set to the ZRX coinbase address (e.g., the address with the 1 billion ZRX at Genesis)")
- }
-
- zrx, err := wrappers.NewZRXToken(ganacheAddresses.ZRXToken, ethClient)
- require.NoError(t, err)
- // Transfer ZRX to takerAddress
- opts := &bind.TransactOpts{
- From: zrxCoinbase,
- Signer: GetTestSignerFn(zrxCoinbase),
- }
- txn, err = zrx.Transfer(opts, takerAddress, zrxAmount)
+ // Set ERC1155 allowance
+ // HACK(albrow): erc1155Mintable does not allow setting allowance per token id.
+ txn, err := erc1155Mintable.SetApprovalForAll(opts, ganacheAddresses.ERC1155Proxy, true)
require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- // SET ZRX allowance
- opts = &bind.TransactOpts{
- From: takerAddress,
- Signer: GetTestSignerFn(takerAddress),
- }
- txn, err = zrx.Approve(opts, ganacheAddresses.ERC20Proxy, zrxAmount)
- require.NoError(t, err)
- waitTxnSuccessfullyMined(t, ethClient, txn)
-
- return signedTestOrder
+ waitTxnSuccessfullyMined(t, txn)
}
// GetTestSignerFn returns a test signer function that can be used to sign Ethereum transactions
@@ -484,7 +439,30 @@ func GetTestSignerFn(signerAddress common.Address) func(signer types.Signer, add
}
}
-func waitTxnSuccessfullyMined(t *testing.T, ethClient *ethclient.Client, txn *types.Transaction) {
+func GetDummyERC721AssetData(tokenID *big.Int) []byte {
+ makerAssetDataHex := fmt.Sprintf("%s000000000000000000000000%s000000000000000000000000000000000000000000000000000000000000000%s", zeroex.ERC721AssetDataID, constants.GanacheDummyERC721TokenAddress.Hex()[2:], tokenID)
+ return common.Hex2Bytes(makerAssetDataHex)
+}
+
+func GetDummyERC1155AssetData(t *testing.T, tokenIDs []*big.Int, amounts []*big.Int) []byte {
+ devUtils, err := wrappers.NewDevUtils(ganacheAddresses.DevUtils, ethClient)
+ require.NoError(t, err)
+
+ callOpts := &bind.CallOpts{
+ From: constants.GanacheAccount1,
+ }
+ assetData, err := devUtils.EncodeERC1155AssetData(
+ callOpts,
+ constants.GanacheDummyERC1155MintableAddress,
+ tokenIDs,
+ amounts,
+ []byte{},
+ )
+ require.NoError(t, err)
+ return assetData
+}
+
+func waitTxnSuccessfullyMined(t *testing.T, txn *types.Transaction) {
ctx, cancelFn := context.WithTimeout(context.Background(), 4*time.Second)
defer cancelFn()
receipt, err := bind.WaitMined(ctx, ethClient, txn)
diff --git a/yarn.lock b/yarn.lock
index 1b46e00f6..9da89fd91 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -175,7 +175,7 @@
"@0x/mesh-browser@file:packages/browser":
version "1.0.0"
dependencies:
- "@0x/mesh-browser-lite" "file:../Library/Caches/Yarn/v6/npm-@0x-mesh-browser-1.0.0-c54ad8fb-bbd6-45d5-8686-a737dc580d67-1583272830805/node_modules/@0x/browser-lite"
+ "@0x/mesh-browser-lite" "file:../../../Library/Caches/Yarn/v6/npm-@0x-mesh-browser-1.0.0-ab91c9fc-ef16-4275-82e1-cdf8f89a0249-1586207556607/node_modules/@0x/browser-lite"
base64-arraybuffer "^0.2.0"
browserfs "^1.4.3"
ethereum-types "^3.0.0"
diff --git a/zeroex/ordervalidator/order_validator_test.go b/zeroex/ordervalidator/order_validator_test.go
index 97bcb82bd..915dd5a99 100644
--- a/zeroex/ordervalidator/order_validator_test.go
+++ b/zeroex/ordervalidator/order_validator_test.go
@@ -21,6 +21,7 @@ import (
"github.com/0xProject/0x-mesh/ethereum/signer"
"github.com/0xProject/0x-mesh/ethereum/wrappers"
"github.com/0xProject/0x-mesh/scenario"
+ "github.com/0xProject/0x-mesh/scenario/orderopts"
"github.com/0xProject/0x-mesh/zeroex"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
@@ -42,12 +43,6 @@ const (
)
var (
- makerAddress = constants.GanacheAccount1
- takerAddress = constants.GanacheAccount2
- eighteenDecimalsInBaseUnits = new(big.Int).Exp(big.NewInt(10), big.NewInt(18), nil)
- wethAmount = new(big.Int).Mul(big.NewInt(50), eighteenDecimalsInBaseUnits)
- zrxAmount = new(big.Int).Mul(big.NewInt(100), eighteenDecimalsInBaseUnits)
-
unsupportedAssetData = common.Hex2Bytes("a2cb61b000000000000000000000000034d402f14d58e001d8efbe6585051bf9706aa064")
malformedAssetData = []byte("9HJhsAAAAAAAAAAAAAAAAInSSmtMyxtvqiYl")
malformedSignature = []byte("9HJhsAAAAAAAAAAAAAAAAInSSmtMyxtvqiYl")
@@ -66,35 +61,18 @@ func init() {
flag.Parse()
}
-var testSignedOrder = zeroex.SignedOrder{
- Order: zeroex.Order{
- ChainID: big.NewInt(constants.TestChainID),
- MakerAddress: makerAddress,
- TakerAddress: constants.NullAddress,
- SenderAddress: constants.NullAddress,
- FeeRecipientAddress: constants.GanacheAccount3,
- MakerAssetData: common.Hex2Bytes("f47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c"),
- MakerFeeAssetData: constants.NullBytes,
- TakerAssetData: common.Hex2Bytes("f47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082"),
- TakerFeeAssetData: constants.NullBytes,
- Salt: big.NewInt(1548619145450),
- MakerFee: big.NewInt(0),
- TakerFee: big.NewInt(0),
- MakerAssetAmount: big.NewInt(1000),
- TakerAssetAmount: big.NewInt(2000),
- ExpirationTimeSeconds: big.NewInt(time.Now().Add(48 * time.Hour).Unix()),
- ExchangeAddress: ganacheAddresses.Exchange,
- },
-}
-
type testCase struct {
- SignedOrder zeroex.SignedOrder
+ SignedOrder *zeroex.SignedOrder
IsValid bool
ExpectedRejectedOrderStatus RejectedOrderStatus
}
-var rpcClient *ethrpc.Client
-var blockchainLifecycle *ethereum.BlockchainLifecycle
+var (
+ rpcClient *ethrpc.Client
+ blockchainLifecycle *ethereum.BlockchainLifecycle
+ ethClient *ethclient.Client
+ ethRPCClient ethrpcclient.Client
+)
func init() {
var err error
@@ -106,63 +84,65 @@ func init() {
if err != nil {
panic(err)
}
+ rateLimiter := ratelimit.NewUnlimited()
+ rpcClient, err = rpc.Dial(constants.GanacheEndpoint)
+ if err != nil {
+ panic(err)
+ }
+ ethClient = ethclient.NewClient(rpcClient)
+ ethRPCClient, err = ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
+ if err != nil {
+ panic(err)
+ }
}
func TestBatchValidateOffChainCases(t *testing.T) {
var testCases = []testCase{
testCase{
- SignedOrder: signedOrderWithCustomMakerAssetAmount(t, testSignedOrder, big.NewInt(0)),
+ SignedOrder: scenario.NewSignedTestOrder(t, orderopts.MakerAssetAmount(big.NewInt(0))),
IsValid: false,
ExpectedRejectedOrderStatus: ROInvalidMakerAssetAmount,
},
testCase{
- SignedOrder: signedOrderWithCustomTakerAssetAmount(t, testSignedOrder, big.NewInt(0)),
+ SignedOrder: scenario.NewSignedTestOrder(t, orderopts.TakerAssetAmount(big.NewInt(0))),
IsValid: false,
ExpectedRejectedOrderStatus: ROInvalidTakerAssetAmount,
},
testCase{
- SignedOrder: signedOrderWithCustomMakerAssetData(t, testSignedOrder, multiAssetAssetData),
+ SignedOrder: scenario.NewSignedTestOrder(t, orderopts.MakerAssetData(multiAssetAssetData)),
IsValid: true,
},
testCase{
- SignedOrder: signedOrderWithCustomMakerAssetData(t, testSignedOrder, malformedAssetData),
+ SignedOrder: scenario.NewSignedTestOrder(t, orderopts.MakerAssetData(malformedAssetData)),
IsValid: false,
ExpectedRejectedOrderStatus: ROInvalidMakerAssetData,
},
testCase{
- SignedOrder: signedOrderWithCustomTakerAssetData(t, testSignedOrder, malformedAssetData),
+ SignedOrder: scenario.NewSignedTestOrder(t, orderopts.TakerAssetData(malformedAssetData)),
IsValid: false,
ExpectedRejectedOrderStatus: ROInvalidTakerAssetData,
},
testCase{
- SignedOrder: signedOrderWithCustomMakerAssetData(t, testSignedOrder, unsupportedAssetData),
+ SignedOrder: scenario.NewSignedTestOrder(t, orderopts.MakerAssetData(unsupportedAssetData)),
IsValid: false,
ExpectedRejectedOrderStatus: ROInvalidMakerAssetData,
},
testCase{
- SignedOrder: signedOrderWithCustomTakerAssetData(t, testSignedOrder, unsupportedAssetData),
+ SignedOrder: scenario.NewSignedTestOrder(t, orderopts.TakerAssetData(unsupportedAssetData)),
IsValid: false,
ExpectedRejectedOrderStatus: ROInvalidTakerAssetData,
},
testCase{
- SignedOrder: signedOrderWithCustomSignature(t, testSignedOrder, malformedSignature),
+ SignedOrder: signedOrderWithCustomSignature(t, malformedSignature),
IsValid: false,
ExpectedRejectedOrderStatus: ROInvalidSignature,
},
}
for _, testCase := range testCases {
-
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
-
signedOrders := []*zeroex.SignedOrder{
- &testCase.SignedOrder,
+ testCase.SignedOrder,
}
-
orderValidator, err := New(ethClient, constants.TestChainID, constants.TestMaxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -183,19 +163,11 @@ func TestBatchValidateAValidOrder(t *testing.T) {
teardownSubTest := setupSubTest(t)
defer teardownSubTest(t)
- ethClient := ethclient.NewClient(rpcClient)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
-
+ signedOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true))
signedOrders := []*zeroex.SignedOrder{
signedOrder,
}
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
-
orderValidator, err := New(ethRPCClient, constants.TestChainID, constants.TestMaxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -217,13 +189,11 @@ func TestBatchOffchainValidateUnsupportedStaticCall(t *testing.T) {
teardownSubTest := setupSubTest(t)
defer teardownSubTest(t)
-
- ethClient := ethclient.NewClient(rpcClient)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
// NOTE(jalextowle): This asset data encodes a staticcall to a function called `unsupportedStaticCall`
- testSignedOrder := signedOrderWithCustomMakerFeeAssetData(t, *signedOrder, common.Hex2Bytes("c339d10a000000000000000000000000692a70d2e424a56d2c6c27aa97d1a86395877b3a0000000000000000000000000000000000000000000000000000000000000060c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47000000000000000000000000000000000000000000000000000000000000000048b24020700000000000000000000000000000000000000000000000000000000"))
+ makerFeeAssetData := common.Hex2Bytes("c339d10a000000000000000000000000692a70d2e424a56d2c6c27aa97d1a86395877b3a0000000000000000000000000000000000000000000000000000000000000060c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47000000000000000000000000000000000000000000000000000000000000000048b24020700000000000000000000000000000000000000000000000000000000")
+ signedTestOrder := scenario.NewSignedTestOrder(t, orderopts.MakerFeeAssetData(makerFeeAssetData))
signedOrders := []*zeroex.SignedOrder{
- &testSignedOrder,
+ signedTestOrder,
}
rateLimiter := ratelimit.NewUnlimited()
@@ -238,8 +208,8 @@ func TestBatchOffchainValidateUnsupportedStaticCall(t *testing.T) {
accepted, rejected := orderValidator.BatchOffchainValidation(signedOrders)
assert.Len(t, accepted, 0)
require.Len(t, rejected, 1)
- testSignedOrder.ResetHash()
- expectedOrderHash, err := testSignedOrder.ComputeOrderHash()
+ signedTestOrder.ResetHash()
+ expectedOrderHash, err := signedTestOrder.ComputeOrderHash()
require.NoError(t, err)
assert.Equal(t, expectedOrderHash, rejected[0].OrderHash)
require.Equal(t, ROInvalidMakerFeeAssetData, rejected[0].Status)
@@ -254,12 +224,6 @@ func TestBatchOffchainValidateMaxGasPriceOrder(t *testing.T) {
t.Skip("Serial tests (tests which cannot run in parallel) are disabled. You can enable them with the --serial flag")
}
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethClient := ethclient.NewClient(rpcClient)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
orderValidator, err := New(ethRPCClient, constants.TestChainID, constants.TestMaxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -270,18 +234,17 @@ func TestBatchOffchainValidateMaxGasPriceOrder(t *testing.T) {
teardownSubTest := setupSubTest(t)
// Create the signed order with the staticcall asset data as its MakerFeeAssetData
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
- testSignedOrder := signedOrderWithCustomMakerFeeAssetData(t, *signedOrder, staticCallAssetData)
+ signedOrder := scenario.NewSignedTestOrder(t, orderopts.MakerFeeAssetData(staticCallAssetData))
signedOrders := []*zeroex.SignedOrder{
- &testSignedOrder,
+ signedOrder,
}
// Ensure that the order is accepted by offchain validation
accepted, rejected := orderValidator.BatchOffchainValidation(signedOrders)
assert.Len(t, accepted, 1)
require.Len(t, rejected, 0)
- testSignedOrder.ResetHash()
- expectedOrderHash, err := testSignedOrder.ComputeOrderHash()
+ signedOrder.ResetHash()
+ expectedOrderHash, err := signedOrder.ComputeOrderHash()
require.NoError(t, err)
actualOrderHash, err := accepted[0].ComputeOrderHash()
require.NoError(t, err)
@@ -289,7 +252,6 @@ func TestBatchOffchainValidateMaxGasPriceOrder(t *testing.T) {
teardownSubTest(t)
}
-
}
func TestBatchValidateMaxGasPriceOrder(t *testing.T) {
@@ -297,12 +259,6 @@ func TestBatchValidateMaxGasPriceOrder(t *testing.T) {
t.Skip("Serial tests (tests which cannot run in parallel) are disabled. You can enable them with the --serial flag")
}
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethClient := ethclient.NewClient(rpcClient)
- rateLimiter := ratelimit.NewUnlimited()
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
orderValidator, err := New(ethRPCClient, constants.TestChainID, constants.TestMaxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -314,10 +270,9 @@ func TestBatchValidateMaxGasPriceOrder(t *testing.T) {
teardownSubTest := setupSubTest(t)
// Create the signed order with the staticcall asset data as its MakerFeeAssetData
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
- testSignedOrder := signedOrderWithCustomMakerFeeAssetData(t, *signedOrder, staticCallAssetData)
+ signedOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true), orderopts.MakerFeeAssetData(staticCallAssetData))
signedOrders := []*zeroex.SignedOrder{
- &testSignedOrder,
+ signedOrder,
}
// Ensure that the order is accepted by offchain validation
@@ -327,31 +282,20 @@ func TestBatchValidateMaxGasPriceOrder(t *testing.T) {
validationResults := orderValidator.BatchValidate(ctx, signedOrders, areNewOrders, latestBlock.Number)
assert.Len(t, validationResults.Accepted, 1)
require.Len(t, validationResults.Rejected, 0)
- expectedOrderHash, err := testSignedOrder.ComputeOrderHash()
+ expectedOrderHash, err := signedOrder.ComputeOrderHash()
require.NoError(t, err)
assert.Equal(t, expectedOrderHash, validationResults.Accepted[0].OrderHash)
teardownSubTest(t)
}
-
}
func TestBatchValidateSignatureInvalid(t *testing.T) {
- signedOrder := &testSignedOrder
- // Add a correctly formatted signature that does not correspond to this order
- signedOrder.Signature = common.Hex2Bytes("1c3582f06356a1314dbf1c0e534c4d8e92e59b056ee607a7ff5a825f5f2cc5e6151c5cc7fdd420f5608e4d5bef108e42ad90c7a4b408caef32e24374cf387b0d7603")
-
- orderHash, err := signedOrder.ComputeOrderHash()
- require.NoError(t, err)
-
+ signedOrder := signedOrderWithCustomSignature(t, malformedSignature)
signedOrders := []*zeroex.SignedOrder{
signedOrder,
}
-
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
+ orderHash, err := signedOrder.ComputeOrderHash()
require.NoError(t, err)
orderValidator, err := New(ethRPCClient, constants.TestChainID, constants.TestMaxContentLength, ganacheAddresses)
@@ -367,26 +311,16 @@ func TestBatchValidateSignatureInvalid(t *testing.T) {
assert.Equal(t, orderHash, validationResults.Rejected[0].OrderHash)
}
-func TestBatchValidateUnregisteredCoordinatorSoftCancels(t *testing.T) {
- signedOrder, err := zeroex.SignTestOrder(&testSignedOrder.Order)
- require.NoError(t, err)
- signedOrder.SenderAddress = ganacheAddresses.Coordinator
- // Address for which there is no entry in the Coordinator registry
+func TestBatchValidateUnregisteredCoordinator(t *testing.T) {
+ // FeeRecipientAddress is an address for which there is no entry in the Coordinator registry
+ signedOrder := scenario.NewSignedTestOrder(t, orderopts.SenderAddress(ganacheAddresses.Coordinator), orderopts.FeeRecipientAddress(constants.GanacheAccount4))
signedOrder.FeeRecipientAddress = constants.GanacheAccount4
-
orderHash, err := signedOrder.ComputeOrderHash()
require.NoError(t, err)
-
signedOrders := []*zeroex.SignedOrder{
signedOrder,
}
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
-
orderValidator, err := New(ethRPCClient, constants.TestChainID, constants.TestMaxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -408,21 +342,17 @@ func TestBatchValidateCoordinatorSoftCancels(t *testing.T) {
teardownSubTest := setupSubTest(t)
defer teardownSubTest(t)
- signedOrder, err := zeroex.SignTestOrder(&testSignedOrder.Order)
- require.NoError(t, err)
- signedOrder.SenderAddress = ganacheAddresses.Coordinator
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SenderAddress(ganacheAddresses.Coordinator),
+ orderopts.SetupMakerState(true),
+ orderopts.FeeRecipientAddress(constants.GanacheAccount3),
+ )
orderHash, err := signedOrder.ComputeOrderHash()
require.NoError(t, err)
signedOrders := []*zeroex.SignedOrder{
signedOrder,
}
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
-
orderValidator, err := New(ethRPCClient, constants.TestChainID, constants.TestMaxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -449,8 +379,6 @@ func TestBatchValidateCoordinatorSoftCancels(t *testing.T) {
},
}
- ethClient, err := ethclient.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
coordinatorRegistryAddress := ganacheAddresses.CoordinatorRegistry
coordinatorRegistry, err := wrappers.NewCoordinatorRegistry(coordinatorRegistryAddress, ethClient)
require.NoError(t, err)
@@ -470,15 +398,7 @@ func TestBatchValidateCoordinatorSoftCancels(t *testing.T) {
const singleOrderPayloadSize = 2236
func TestComputeOptimalChunkSizesMaxContentLengthTooLow(t *testing.T) {
- signedOrder, err := zeroex.SignTestOrder(&testSignedOrder.Order)
- require.NoError(t, err)
-
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
-
+ signedOrder := scenario.NewSignedTestOrder(t)
maxContentLength := singleOrderPayloadSize - 10
orderValidator, err := New(ethRPCClient, constants.TestChainID, maxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -490,15 +410,7 @@ func TestComputeOptimalChunkSizesMaxContentLengthTooLow(t *testing.T) {
}
func TestComputeOptimalChunkSizes(t *testing.T) {
- signedOrder, err := zeroex.SignTestOrder(&testSignedOrder.Order)
- require.NoError(t, err)
-
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
-
+ signedOrder := scenario.NewSignedTestOrder(t)
maxContentLength := singleOrderPayloadSize * 3
orderValidator, err := New(ethRPCClient, constants.TestChainID, maxContentLength, ganacheAddresses)
require.NoError(t, err)
@@ -509,38 +421,9 @@ func TestComputeOptimalChunkSizes(t *testing.T) {
assert.Equal(t, expectedChunkSizes, chunkSizes)
}
-var testMultiAssetSignedOrder = zeroex.SignedOrder{
- Order: zeroex.Order{
- ChainID: big.NewInt(constants.TestChainID),
- MakerAddress: constants.GanacheAccount0,
- TakerAddress: constants.NullAddress,
- SenderAddress: constants.NullAddress,
- FeeRecipientAddress: common.HexToAddress("0x6ecbe1db9ef729cbe972c83fb886247691fb6beb"),
- MakerAssetData: common.Hex2Bytes("94cfcdd7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000024f47261b00000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000204a7cb5fb70000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"),
- MakerFeeAssetData: constants.NullBytes,
- TakerAssetData: common.Hex2Bytes("f47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082"),
- TakerFeeAssetData: constants.NullBytes,
- Salt: big.NewInt(1548619145450),
- MakerFee: big.NewInt(0),
- TakerFee: big.NewInt(0),
- MakerAssetAmount: big.NewInt(1000),
- TakerAssetAmount: big.NewInt(2000),
- ExpirationTimeSeconds: big.NewInt(time.Now().Add(48 * time.Hour).Unix()),
- ExchangeAddress: ganacheAddresses.Exchange,
- },
-}
-
func TestComputeOptimalChunkSizesMultiAssetOrder(t *testing.T) {
- signedOrder, err := zeroex.SignTestOrder(&testSignedOrder.Order)
- require.NoError(t, err)
- signedMultiAssetOrder, err := zeroex.SignTestOrder(&testMultiAssetSignedOrder.Order)
- require.NoError(t, err)
-
- rateLimiter := ratelimit.NewUnlimited()
- rpcClient, err := rpc.Dial(constants.GanacheEndpoint)
- require.NoError(t, err)
- ethRPCClient, err := ethrpcclient.New(rpcClient, defaultEthRPCTimeout, rateLimiter)
- require.NoError(t, err)
+ signedOrder := scenario.NewSignedTestOrder(t)
+ signedMultiAssetOrder := scenario.NewSignedTestOrder(t, orderopts.MakerAssetData(multiAssetAssetData))
maxContentLength := singleOrderPayloadSize * 3
orderValidator, err := New(ethRPCClient, constants.TestChainID, maxContentLength, ganacheAddresses)
@@ -559,55 +442,8 @@ func setupSubTest(t *testing.T) func(t *testing.T) {
}
}
-func signedOrderWithCustomMakerAssetAmount(t *testing.T, signedOrder zeroex.SignedOrder, makerAssetAmount *big.Int) zeroex.SignedOrder {
- signedOrder.MakerAssetAmount = makerAssetAmount
- signedOrder.ResetHash()
- signedOrderWithSignature, err := zeroex.SignTestOrder(&signedOrder.Order)
- require.NoError(t, err)
- return *signedOrderWithSignature
-}
-
-func signedOrderWithCustomTakerAssetAmount(t *testing.T, signedOrder zeroex.SignedOrder, takerAssetAmount *big.Int) zeroex.SignedOrder {
- signedOrder.TakerAssetAmount = takerAssetAmount
- signedOrder.ResetHash()
- signedOrderWithSignature, err := zeroex.SignTestOrder(&signedOrder.Order)
- require.NoError(t, err)
- return *signedOrderWithSignature
-}
-
-func signedOrderWithCustomMakerAssetData(t *testing.T, signedOrder zeroex.SignedOrder, makerAssetData []byte) zeroex.SignedOrder {
- signedOrder.MakerAssetData = makerAssetData
- signedOrder.ResetHash()
- signedOrderWithSignature, err := zeroex.SignTestOrder(&signedOrder.Order)
- require.NoError(t, err)
- return *signedOrderWithSignature
-}
-
-func signedOrderWithCustomMakerFeeAssetData(t *testing.T, signedOrder zeroex.SignedOrder, makerFeeAssetData []byte) zeroex.SignedOrder {
- signedOrder.MakerFeeAssetData = makerFeeAssetData
- signedOrder.ResetHash()
- signedOrderWithSignature, err := zeroex.SignTestOrder(&signedOrder.Order)
- require.NoError(t, err)
- return *signedOrderWithSignature
-}
-
-func signedOrderWithCustomTakerAssetData(t *testing.T, signedOrder zeroex.SignedOrder, takerAssetData []byte) zeroex.SignedOrder {
- signedOrder.TakerAssetData = takerAssetData
- signedOrder.ResetHash()
- signedOrderWithSignature, err := zeroex.SignTestOrder(&signedOrder.Order)
- require.NoError(t, err)
- return *signedOrderWithSignature
-}
-
-func signedOrderWithCustomExpirationTimeSeconds(t *testing.T, signedOrder zeroex.SignedOrder, expirationTimeSeconds *big.Int) zeroex.SignedOrder {
- signedOrder.ExpirationTimeSeconds = expirationTimeSeconds
- signedOrder.ResetHash()
- signedOrderWithSignature, err := zeroex.SignTestOrder(&signedOrder.Order)
- require.NoError(t, err)
- return *signedOrderWithSignature
-}
-
-func signedOrderWithCustomSignature(t *testing.T, signedOrder zeroex.SignedOrder, signature []byte) zeroex.SignedOrder {
+func signedOrderWithCustomSignature(t *testing.T, signature []byte) *zeroex.SignedOrder {
+ signedOrder := scenario.NewSignedTestOrder(t)
signedOrder.Signature = signature
return signedOrder
}
diff --git a/zeroex/orderwatch/order_watcher.go b/zeroex/orderwatch/order_watcher.go
index e4773e1c2..0a6b5519f 100644
--- a/zeroex/orderwatch/order_watcher.go
+++ b/zeroex/orderwatch/order_watcher.go
@@ -582,10 +582,6 @@ func (w *Watcher) handleBlockEvents(
}
return err
}
- // Ignores approvals set to anyone except the AssetProxy
- if approvalEvent.Approved != w.contractAddresses.ERC721Proxy {
- continue
- }
contractEvent.Parameters = approvalEvent
orders, err = w.findOrdersByTokenAddressAndTokenID(approvalEvent.Owner, log.Address, approvalEvent.TokenId)
if err != nil {
diff --git a/zeroex/orderwatch/order_watcher_test.go b/zeroex/orderwatch/order_watcher_test.go
index e690c99a4..6fc3e2698 100644
--- a/zeroex/orderwatch/order_watcher_test.go
+++ b/zeroex/orderwatch/order_watcher_test.go
@@ -19,8 +19,10 @@ import (
"github.com/0xProject/0x-mesh/ethereum/wrappers"
"github.com/0xProject/0x-mesh/meshdb"
"github.com/0xProject/0x-mesh/scenario"
+ "github.com/0xProject/0x-mesh/scenario/orderopts"
"github.com/0xProject/0x-mesh/zeroex"
"github.com/0xProject/0x-mesh/zeroex/ordervalidator"
+ "github.com/davecgh/go-spew/spew"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
@@ -42,13 +44,7 @@ const (
)
var (
- makerAddress = constants.GanacheAccount1
- takerAddress = constants.GanacheAccount2
eighteenDecimalsInBaseUnits = new(big.Int).Exp(big.NewInt(10), big.NewInt(18), nil)
- wethAmount = new(big.Int).Mul(big.NewInt(50), eighteenDecimalsInBaseUnits)
- zrxAmount = new(big.Int).Mul(big.NewInt(100), eighteenDecimalsInBaseUnits)
- erc1155FungibleAmount = big.NewInt(100)
- tokenID = big.NewInt(1)
)
var (
@@ -73,9 +69,7 @@ func init() {
flag.BoolVar(&serialTestsEnabled, "serial", false, "enable serial tests")
testing.Init()
flag.Parse()
-}
-func init() {
var err error
rpcClient, err = ethrpc.Dial(constants.GanacheEndpoint)
if err != nil {
@@ -128,17 +122,17 @@ func TestOrderWatcherUnfundedInsufficientERC20Balance(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true))
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Transfer makerAsset out of maker address
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
- txn, err := zrx.Transfer(opts, constants.GanacheAccount4, zrxAmount)
+ txn, err := zrx.Transfer(opts, constants.GanacheAccount4, signedOrder.MakerAssetAmount)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -170,16 +164,23 @@ func TestOrderWatcherUnfundedInsufficientERC20BalanceForMakerFee(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
+ makerAssetData := scenario.GetDummyERC721AssetData(big.NewInt(1))
wethFeeAmount := new(big.Int).Mul(big.NewInt(5), eighteenDecimalsInBaseUnits)
- signedOrder := scenario.CreateNFTForZRXWithWETHMakerFeeSignedTestOrder(t, ethClient, makerAddress, takerAddress, tokenID, zrxAmount, wethFeeAmount)
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetData(makerAssetData),
+ orderopts.MakerAssetAmount(big.NewInt(1)),
+ orderopts.MakerFeeAssetData(scenario.WETHAssetData),
+ orderopts.MakerFee(wethFeeAmount),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Transfer makerAsset out of maker address
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
txn, err := weth.Transfer(opts, constants.GanacheAccount4, wethFeeAmount)
require.NoError(t, err)
@@ -212,17 +213,23 @@ func TestOrderWatcherUnfundedInsufficientERC721Balance(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateNFTForZRXSignedTestOrder(t, ethClient, makerAddress, takerAddress, tokenID, zrxAmount)
+ tokenID := big.NewInt(1)
+ makerAssetData := scenario.GetDummyERC721AssetData(tokenID)
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetAmount(big.NewInt(1)),
+ orderopts.MakerAssetData(makerAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Transfer makerAsset out of maker address
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
- txn, err := dummyERC721Token.TransferFrom(opts, makerAddress, constants.GanacheAccount4, tokenID)
+ txn, err := dummyERC721Token.TransferFrom(opts, signedOrder.MakerAddress, constants.GanacheAccount4, tokenID)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -254,17 +261,24 @@ func TestOrderWatcherUnfundedInsufficientERC721Allowance(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateNFTForZRXSignedTestOrder(t, ethClient, makerAddress, takerAddress, tokenID, zrxAmount)
+ tokenID := big.NewInt(1)
+ makerAssetData := scenario.GetDummyERC721AssetData(tokenID)
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetAmount(big.NewInt(1)),
+ orderopts.MakerAssetData(makerAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
- // Remove Maker's NFT approval to ERC721Proxy
+ // Remove Maker's NFT approval to ERC721Proxy. We do this by setting the
+ // operator/spender to the null address.
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
- txn, err := dummyERC721Token.SetApprovalForAll(opts, ganacheAddresses.ERC721Proxy, false)
+ txn, err := dummyERC721Token.Approve(opts, constants.NullAddress, tokenID)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -296,15 +310,20 @@ func TestOrderWatcherUnfundedInsufficientERC1155Allowance(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateERC1155ForZRXSignedTestOrder(t, ethClient, makerAddress, takerAddress, tokenID, zrxAmount, erc1155FungibleAmount)
+ makerAssetData := scenario.GetDummyERC1155AssetData(t, []*big.Int{big.NewInt(1)}, []*big.Int{big.NewInt(100)})
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetAmount(big.NewInt(1)),
+ orderopts.MakerAssetData(makerAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Remove Maker's ERC1155 approval to ERC1155Proxy
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
txn, err := erc1155Mintable.SetApprovalForAll(opts, ganacheAddresses.ERC1155Proxy, false)
require.NoError(t, err)
@@ -338,17 +357,24 @@ func TestOrderWatcherUnfundedInsufficientERC1155Balance(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateERC1155ForZRXSignedTestOrder(t, ethClient, makerAddress, takerAddress, tokenID, zrxAmount, erc1155FungibleAmount)
+ tokenID := big.NewInt(1)
+ tokenAmount := big.NewInt(100)
+ makerAssetData := scenario.GetDummyERC1155AssetData(t, []*big.Int{tokenID}, []*big.Int{tokenAmount})
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetAmount(big.NewInt(1)),
+ orderopts.MakerAssetData(makerAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Reduce Maker's ERC1155 balance
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
- txn, err := erc1155Mintable.SafeTransferFrom(opts, makerAddress, constants.GanacheAccount4, tokenID, erc1155FungibleAmount, []byte{})
+ txn, err := erc1155Mintable.SafeTransferFrom(opts, signedOrder.MakerAddress, constants.GanacheAccount4, tokenID, tokenAmount, []byte{})
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -380,15 +406,18 @@ func TestOrderWatcherUnfundedInsufficientERC20Allowance(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetData(scenario.ZRXAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Remove Maker's ZRX approval to ERC20Proxy
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
txn, err := zrx.Approve(opts, ganacheAddresses.ERC20Proxy, big.NewInt(0))
require.NoError(t, err)
@@ -422,17 +451,21 @@ func TestOrderWatcherUnfundedThenFundedAgain(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetData(scenario.ZRXAssetData),
+ orderopts.TakerAssetData(scenario.WETHAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Transfer makerAsset out of maker address
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
- txn, err := zrx.Transfer(opts, constants.GanacheAccount4, zrxAmount)
+ txn, err := zrx.Transfer(opts, constants.GanacheAccount4, signedOrder.MakerAssetAmount)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -458,7 +491,7 @@ func TestOrderWatcherUnfundedThenFundedAgain(t *testing.T) {
From: zrxCoinbase,
Signer: scenario.GetTestSignerFn(zrxCoinbase),
}
- txn, err = zrx.Transfer(opts, makerAddress, zrxAmount)
+ txn, err = zrx.Transfer(opts, signedOrder.MakerAddress, signedOrder.MakerAssetAmount)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -490,7 +523,11 @@ func TestOrderWatcherNoChange(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetData(scenario.ZRXAssetData),
+ orderopts.TakerAssetData(scenario.WETHAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, _ := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
@@ -508,7 +545,7 @@ func TestOrderWatcherNoChange(t *testing.T) {
From: zrxCoinbase,
Signer: scenario.GetTestSignerFn(zrxCoinbase),
}
- txn, err := zrx.Transfer(opts, makerAddress, zrxAmount)
+ txn, err := zrx.Transfer(opts, signedOrder.MakerAddress, signedOrder.MakerAssetAmount)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -535,21 +572,25 @@ func TestOrderWatcherWETHWithdrawAndDeposit(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateWETHForZRXSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.MakerAssetData(scenario.WETHAssetData),
+ orderopts.TakerAssetData(scenario.ZRXAssetData),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
- // Withdraw maker's WETH
+ // Withdraw maker's WETH (i.e. decrease WETH balance)
// HACK(fabio): For some reason the txn fails with "out of gas" error with the
// estimated gas amount
gasLimit := uint64(50000)
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
GasLimit: gasLimit,
}
- txn, err := weth.Withdraw(opts, wethAmount)
+ txn, err := weth.Withdraw(opts, signedOrder.MakerAssetAmount)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -568,10 +609,11 @@ func TestOrderWatcherWETHWithdrawAndDeposit(t *testing.T) {
assert.Equal(t, orderEvent.OrderHash, orders[0].Hash)
assert.Equal(t, true, orders[0].IsRemoved)
+ // Deposit maker's ETH (i.e. increase WETH balance)
opts = &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
- Value: wethAmount,
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
+ Value: signedOrder.MakerAssetAmount,
}
txn, err = weth.Deposit(opts)
require.NoError(t, err)
@@ -605,15 +647,15 @@ func TestOrderWatcherCanceled(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true))
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Cancel order
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
trimmedOrder := signedOrder.Trim()
txn, err := exchange.CancelOrder(opts, trimmedOrder)
@@ -648,15 +690,15 @@ func TestOrderWatcherCancelUpTo(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ signedOrder := scenario.NewSignedTestOrder(t, orderopts.SetupMakerState(true))
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
// Cancel order with epoch
opts := &bind.TransactOpts{
- From: makerAddress,
- Signer: scenario.GetTestSignerFn(makerAddress),
+ From: signedOrder.MakerAddress,
+ Signer: scenario.GetTestSignerFn(signedOrder.MakerAddress),
}
targetOrderEpoch := signedOrder.Salt
txn, err := exchange.CancelOrdersUpTo(opts, targetOrderEpoch)
@@ -691,7 +733,11 @@ func TestOrderWatcherERC20Filled(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ takerAddress := constants.GanacheAccount3
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.SetupTakerAddress(takerAddress),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
@@ -703,7 +749,7 @@ func TestOrderWatcherERC20Filled(t *testing.T) {
Value: big.NewInt(100000000000000000),
}
trimmedOrder := signedOrder.Trim()
- txn, err := exchange.FillOrder(opts, trimmedOrder, wethAmount, signedOrder.Signature)
+ txn, err := exchange.FillOrder(opts, trimmedOrder, signedOrder.TakerAssetAmount, signedOrder.Signature)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -735,7 +781,11 @@ func TestOrderWatcherERC20PartiallyFilled(t *testing.T) {
meshDB, err := meshdb.New("/tmp/leveldb_testing/"+uuid.New().String(), ganacheAddresses)
require.NoError(t, err)
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, wethAmount, zrxAmount)
+ takerAddress := constants.GanacheAccount3
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.SetupTakerAddress(takerAddress),
+ )
ctx, cancelFn := context.WithCancel(context.Background())
defer cancelFn()
blockWatcher, orderEventsChan := setupOrderWatcherScenario(ctx, t, ethClient, meshDB, signedOrder)
@@ -747,7 +797,7 @@ func TestOrderWatcherERC20PartiallyFilled(t *testing.T) {
Value: big.NewInt(100000000000000000),
}
trimmedOrder := signedOrder.Trim()
- halfAmount := new(big.Int).Div(wethAmount, big.NewInt(2))
+ halfAmount := new(big.Int).Div(signedOrder.TakerAssetAmount, big.NewInt(2))
txn, err := exchange.FillOrder(opts, trimmedOrder, halfAmount, signedOrder.Signature)
require.NoError(t, err)
waitTxnSuccessfullyMined(t, ethClient, txn)
@@ -785,7 +835,11 @@ func TestOrderWatcherOrderExpiredThenUnexpired(t *testing.T) {
// Create and add an order (which will later become expired) to OrderWatcher
expirationTime := time.Now().Add(24 * time.Hour)
- signedOrder := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, expirationTime)
+ expirationTimeSeconds := big.NewInt(expirationTime.Unix())
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.ExpirationTimeSeconds(expirationTimeSeconds),
+ )
blockwatcher, orderWatcher := setupOrderWatcher(ctx, t, ethRPCClient, meshDB)
watchOrder(ctx, t, orderWatcher, blockwatcher, ethClient, signedOrder)
@@ -894,9 +948,17 @@ func TestOrderWatcherDecreaseExpirationTime(t *testing.T) {
blockWatcher, orderWatcher := setupOrderWatcher(ctx, t, ethRPCClient, meshDB)
orderWatcher.maxOrders = 20
- // create and watch maxOrders orders
- for i := 0; i < orderWatcher.maxOrders; i++ {
- signedOrder := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, time.Now().Add(10*time.Minute+time.Duration(i)*time.Minute))
+ // Create and watch maxOrders orders. Each order has a different expiration time.
+ optionsForIndex := func(index int) []orderopts.Option {
+ expirationTime := time.Now().Add(10*time.Minute + time.Duration(index)*time.Minute)
+ expirationTimeSeconds := big.NewInt(expirationTime.Unix())
+ return []orderopts.Option{
+ orderopts.SetupMakerState(true),
+ orderopts.ExpirationTimeSeconds(expirationTimeSeconds),
+ }
+ }
+ signedOrders := scenario.NewSignedTestOrdersBatch(t, orderWatcher.maxOrders, optionsForIndex)
+ for _, signedOrder := range signedOrders {
watchOrder(ctx, t, orderWatcher, blockWatcher, ethClient, signedOrder)
}
@@ -907,7 +969,12 @@ func TestOrderWatcherDecreaseExpirationTime(t *testing.T) {
// The next order should cause some orders to be removed and the appropriate
// events to fire.
- signedOrder := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, time.Now().Add(10*time.Minute+1*time.Second))
+ expirationTime := time.Now().Add(10*time.Minute + 1*time.Second)
+ expirationTimeSeconds := big.NewInt(expirationTime.Unix())
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.ExpirationTimeSeconds(expirationTimeSeconds),
+ )
watchOrder(ctx, t, orderWatcher, blockWatcher, ethClient, signedOrder)
expectedOrderEvents := int(float64(orderWatcher.maxOrders)*(1-maxOrdersTrimRatio)) + 1
orderEvents := waitForOrderEvents(t, orderEventsChan, expectedOrderEvents, 4*time.Second)
@@ -956,11 +1023,17 @@ func TestOrderWatcherBatchEmitsAddedEvents(t *testing.T) {
orderEventsChan := make(chan []*zeroex.OrderEvent, 10)
orderWatcher.Subscribe(orderEventsChan)
- signedOrders := []*zeroex.SignedOrder{}
- for i := 0; i < 2; i++ {
- signedOrder := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, big.NewInt(1000), big.NewInt(1000))
- signedOrders = append(signedOrders, signedOrder)
- }
+ // Create numOrders test orders in a batch.
+ numOrders := 2
+ orderOptions := scenario.OptionsForAll(orderopts.SetupMakerState(true))
+ signedOrders := scenario.NewSignedTestOrdersBatch(t, numOrders, orderOptions)
+
+ // Creating a valid order involves transferring sufficient funds to the maker, and setting their allowance for
+ // the maker asset. These transactions must be mined and Mesh's BlockWatcher poller must process these blocks
+ // in order for the order validation run at order submission to occur at a block number equal or higher then
+ // the one where these state changes were included. With the BlockWatcher poller configured to run every 200ms,
+ // we wait 500ms here to give it ample time to run before submitting the above order to the Mesh node.
+ time.Sleep(500 * time.Millisecond)
err = blockWatcher.SyncToLatestBlock()
require.NoError(t, err)
@@ -970,7 +1043,7 @@ func TestOrderWatcherBatchEmitsAddedEvents(t *testing.T) {
require.NoError(t, err)
orderEvents := <-orderEventsChan
- require.Len(t, orderEvents, 2)
+ require.Len(t, orderEvents, numOrders)
for _, orderEvent := range orderEvents {
assert.Equal(t, zeroex.ESOrderAdded, orderEvent.EndState)
}
@@ -978,7 +1051,7 @@ func TestOrderWatcherBatchEmitsAddedEvents(t *testing.T) {
var orders []*meshdb.Order
err = meshDB.Orders.FindAll(&orders)
require.NoError(t, err)
- require.Len(t, orders, 2)
+ require.Len(t, orders, numOrders)
}
func TestOrderWatcherCleanup(t *testing.T) {
@@ -997,10 +1070,11 @@ func TestOrderWatcherCleanup(t *testing.T) {
blockWatcher, orderWatcher := setupOrderWatcher(ctx, t, ethRPCClient, meshDB)
// Create and add two orders to OrderWatcher
- amount := big.NewInt(10000)
- signedOrderOne := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, amount, amount)
+ orderOptions := scenario.OptionsForAll(orderopts.SetupMakerState(true))
+ signedOrders := scenario.NewSignedTestOrdersBatch(t, 2, orderOptions)
+ signedOrderOne := signedOrders[0]
watchOrder(ctx, t, orderWatcher, blockWatcher, ethClient, signedOrderOne)
- signedOrderTwo := scenario.CreateZRXForWETHSignedTestOrder(t, ethClient, makerAddress, takerAddress, amount, amount)
+ signedOrderTwo := signedOrders[1]
watchOrder(ctx, t, orderWatcher, blockWatcher, ethClient, signedOrderTwo)
signedOrderOneHash, err := signedOrderTwo.ComputeOrderHash()
require.NoError(t, err)
@@ -1203,8 +1277,14 @@ func TestOrderWatcherHandleOrderExpirationsExpired(t *testing.T) {
// Create and add an order (which will later become expired) to OrderWatcher
expirationTime := time.Now().Add(24 * time.Hour)
- signedOrderOne := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, expirationTime)
- signedOrderTwo := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, expirationTime)
+ expirationTimeSeconds := big.NewInt(expirationTime.Unix())
+ orderOptions := scenario.OptionsForAll(
+ orderopts.SetupMakerState(true),
+ orderopts.ExpirationTimeSeconds(expirationTimeSeconds),
+ )
+ signedOrders := scenario.NewSignedTestOrdersBatch(t, 2, orderOptions)
+ signedOrderOne := signedOrders[0]
+ signedOrderTwo := signedOrders[1]
blockwatcher, orderWatcher := setupOrderWatcher(ctx, t, ethRPCClient, meshDB)
watchOrder(ctx, t, orderWatcher, blockwatcher, ethClient, signedOrderOne)
watchOrder(ctx, t, orderWatcher, blockwatcher, ethClient, signedOrderTwo)
@@ -1265,8 +1345,14 @@ func TestOrderWatcherHandleOrderExpirationsUnexpired(t *testing.T) {
// Create and add an order (which will later become expired) to OrderWatcher
expirationTime := time.Now().Add(24 * time.Hour)
- signedOrderOne := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, expirationTime)
- signedOrderTwo := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, expirationTime)
+ expirationTimeSeconds := big.NewInt(expirationTime.Unix())
+ orderOptions := scenario.OptionsForAll(
+ orderopts.SetupMakerState(true),
+ orderopts.ExpirationTimeSeconds(expirationTimeSeconds),
+ )
+ signedOrders := scenario.NewSignedTestOrdersBatch(t, 2, orderOptions)
+ signedOrderOne := signedOrders[0]
+ signedOrderTwo := signedOrders[1]
blockwatcher, orderWatcher := setupOrderWatcher(ctx, t, ethRPCClient, meshDB)
watchOrder(ctx, t, orderWatcher, blockwatcher, ethClient, signedOrderOne)
watchOrder(ctx, t, orderWatcher, blockwatcher, ethClient, signedOrderTwo)
@@ -1426,9 +1512,13 @@ func TestConvertValidationResultsIntoOrderEventsUnexpired(t *testing.T) {
// Create and add an order (which will later become expired) to OrderWatcher
expirationTime := time.Now().Add(24 * time.Hour)
- signedOrderOne := scenario.CreateSignedTestOrderWithExpirationTime(t, ethClient, makerAddress, takerAddress, expirationTime)
+ expirationTimeSeconds := big.NewInt(expirationTime.Unix())
+ signedOrder := scenario.NewSignedTestOrder(t,
+ orderopts.SetupMakerState(true),
+ orderopts.ExpirationTimeSeconds(expirationTimeSeconds),
+ )
blockwatcher, orderWatcher := setupOrderWatcher(ctx, t, ethRPCClient, meshDB)
- watchOrder(ctx, t, orderWatcher, blockwatcher, ethClient, signedOrderOne)
+ watchOrder(ctx, t, orderWatcher, blockwatcher, ethClient, signedOrder)
orderEventsChan := make(chan []*zeroex.OrderEvent, 2*orderWatcher.maxOrders)
orderWatcher.Subscribe(orderEventsChan)
@@ -1456,10 +1546,10 @@ func TestConvertValidationResultsIntoOrderEventsUnexpired(t *testing.T) {
orderEvents := waitForOrderEvents(t, orderEventsChan, 1, 4*time.Second)
assert.Equal(t, zeroex.ESOrderExpired, orderEvents[0].EndState)
- signedOrderOneHash, err := signedOrderOne.ComputeOrderHash()
+ orderHash, err := signedOrder.ComputeOrderHash()
require.NoError(t, err)
var orderOne meshdb.Order
- err = meshDB.Orders.FindByID(signedOrderOneHash.Bytes(), &orderOne)
+ err = meshDB.Orders.FindByID(orderHash.Bytes(), &orderOne)
require.NoError(t, err)
ordersColTxn := meshDB.Orders.OpenTransaction()
@@ -1470,20 +1560,20 @@ func TestConvertValidationResultsIntoOrderEventsUnexpired(t *testing.T) {
validationResults := ordervalidator.ValidationResults{
Accepted: []*ordervalidator.AcceptedOrderInfo{
&ordervalidator.AcceptedOrderInfo{
- OrderHash: signedOrderOneHash,
- SignedOrder: signedOrderOne,
- FillableTakerAssetAmount: big.NewInt(1).Div(signedOrderOne.TakerAssetAmount, big.NewInt(2)),
+ OrderHash: orderHash,
+ SignedOrder: signedOrder,
+ FillableTakerAssetAmount: big.NewInt(1).Div(signedOrder.TakerAssetAmount, big.NewInt(2)),
IsNew: false,
},
},
Rejected: []*ordervalidator.RejectedOrderInfo{},
}
orderHashToDBOrder := map[common.Hash]*meshdb.Order{
- signedOrderOneHash: &orderOne,
+ orderHash: &orderOne,
}
exchangeFillEvent := "ExchangeFillEvent"
orderHashToEvents := map[common.Hash][]*zeroex.ContractEvent{
- signedOrderOneHash: []*zeroex.ContractEvent{
+ orderHash: []*zeroex.ContractEvent{
&zeroex.ContractEvent{
Kind: exchangeFillEvent,
},
@@ -1495,11 +1585,11 @@ func TestConvertValidationResultsIntoOrderEventsUnexpired(t *testing.T) {
require.Len(t, orderEvents, 2)
orderEventTwo := orderEvents[0]
- assert.Equal(t, signedOrderOneHash, orderEventTwo.OrderHash)
+ assert.Equal(t, orderHash, orderEventTwo.OrderHash)
assert.Equal(t, zeroex.ESOrderUnexpired, orderEventTwo.EndState)
assert.Len(t, orderEventTwo.ContractEvents, 0)
orderEventOne := orderEvents[1]
- assert.Equal(t, signedOrderOneHash, orderEventOne.OrderHash)
+ assert.Equal(t, orderHash, orderEventOne.OrderHash)
assert.Equal(t, zeroex.ESOrderFilled, orderEventOne.EndState)
assert.Len(t, orderEventOne.ContractEvents, 1)
assert.Equal(t, orderEventOne.ContractEvents[0].Kind, exchangeFillEvent)
@@ -1507,10 +1597,10 @@ func TestConvertValidationResultsIntoOrderEventsUnexpired(t *testing.T) {
err = ordersColTxn.Commit()
require.NoError(t, err)
- var orderTwo meshdb.Order
- err = meshDB.Orders.FindByID(signedOrderOneHash.Bytes(), &orderTwo)
+ var existingOrder meshdb.Order
+ err = meshDB.Orders.FindByID(orderHash.Bytes(), &existingOrder)
require.NoError(t, err)
- assert.Equal(t, false, orderTwo.IsRemoved)
+ assert.Equal(t, false, existingOrder.IsRemoved)
}
func TestDrainAllBlockEventsChan(t *testing.T) {
@@ -1577,6 +1667,9 @@ func watchOrder(ctx context.Context, t *testing.T, orderWatcher *Watcher, blockW
validationResults, err := orderWatcher.ValidateAndStoreValidOrders(ctx, []*zeroex.SignedOrder{signedOrder}, false, constants.TestChainID)
require.NoError(t, err)
+ if len(validationResults.Rejected) != 0 {
+ spew.Dump(validationResults.Rejected)
+ }
require.Len(t, validationResults.Accepted, 1, "Expected order to pass validation and get added to OrderWatcher")
}