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") }